Skip to content

symbols

Build variable-like semantic symbols that need local-style qualified names.

Functions:

variable_symbol

variable_symbol(
    symbol_id: str,
    module_key: ModuleKey,
    name: str,
    type_: DataType,
    *,
    is_mutable: bool,
    declaration: AST | None,
    kind: str = "variable",
) -> SemanticSymbol
Source code in packages/irx/src/irx/analysis/symbols.py
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
@public
@typechecked
def variable_symbol(
    symbol_id: str,
    module_key: ModuleKey,
    name: str,
    type_: astx.DataType,
    *,
    is_mutable: bool,
    declaration: astx.AST | None,
    kind: str = "variable",
) -> SemanticSymbol:
    """
    title: Create a variable-like symbol.
    parameters:
      symbol_id:
        type: str
      module_key:
        type: ModuleKey
      name:
        type: str
      type_:
        type: astx.DataType
      is_mutable:
        type: bool
      declaration:
        type: astx.AST | None
      kind:
        type: str
    returns:
      type: SemanticSymbol
    """
    return SemanticSymbol(
        symbol_id=symbol_id,
        name=name,
        type_=type_,
        is_mutable=is_mutable,
        kind=kind,
        declaration=declaration,
        module_key=module_key,
        qualified_name=qualified_local_name(module_key, kind, name, symbol_id),
    )