l0_name_resolver.py
Module: l0_name_resolver
Source: compiler/stage1_py/l0_name_resolver.py Language: Python
Symbols
Namespace l0_name_resolver
Class l0_name_resolver::NameResolver
Stage-1 name resolver for module-level symbols.
This resolver:
Builds a ModuleEnv for each module in a CompilationUnit.
Collects top-level symbols (functions, structs, enums, variants, aliases).
Processes imports by injecting imported symbols into the importer’s scope.
Detects duplicate definitions and import conflicts.
Member Data l0_name_resolver.NameResolver.cu
1
l0_name_resolver.NameResolver::cu
Function l0_name_resolver.NameResolver.__init__
1
l0_name_resolver.NameResolver.__init__(self, CompilationUnit cu)
Initialize the name resolver.
Parameters:
1
Dict[str, ModuleEnv] l0_name_resolver.NameResolver.resolve(self)
Resolve names for all modules in the compilation unit.
Returns: A mapping from module names to their populated ModuleEnv objects.
Function l0_name_resolver.NameResolver._collect_locals
1
None l0_name_resolver.NameResolver._collect_locals(self, ModuleEnv env)
Collect local symbols from module declarations.
Parameters:
1
None l0_name_resolver.NameResolver._define_local(self, ModuleEnv env, str name, Symbol sym)
Define a local symbol, checking for duplicates.
Parameters:
env: The environment to define the symbol in.name: The name of the symbol.sym: The Symbol object.Function
l0_name_resolver.NameResolver._open_imports
1
None l0_name_resolver.NameResolver._open_imports(self, ModuleEnv env)
Process imports for a module environment.
Parameters:
env: The module environment whose imports should be opened.Function
l0_name_resolver.NameResolver._extern_signatures_compatible
1
bool l0_name_resolver.NameResolver._extern_signatures_compatible(self, Symbol local, Symbol imported)
Check if two extern function signatures are compatible.