Module: l0_resolve
Source: compiler/stage1_py/l0_resolve.py Language: Python
Symbols
Namespace l0_resolve
Function l0_resolve._is_imported
1
| bool l0_resolve._is_imported(ModuleEnv current_env, str module_name)
|
Check if a module is explicitly imported by the current environment.
Function l0_resolve.resolve_symbol
1
| SymbolResolution l0_resolve.resolve_symbol(Dict[str, ModuleEnv] module_envs, str current_module, str name, Optional[List[str]] module_path=None, *bool require_import=True)
|
Resolve a symbol by name, optionally qualified by module path.
Parameters:
module_envs: The mapping of module names to their environments.current_module: The name of the module performing the lookup.name: The name of the symbol to resolve.module_path: Optional list of module components for qualified names.require_import: Whether to require an explicit import for qualified lookups.
Returns: A SymbolResolution object containing the result or error information.
Function l0_resolve.resolve_type_ref
1
| TypeResolution l0_resolve.resolve_type_ref(Dict[str, ModuleEnv] module_envs, str current_module, TypeRef tref, Optional[List[str]] module_path=None, *Optional[Callable[[Symbol], Optional[Type]]] resolve_alias=None, bool require_import=True)
|
Resolve an AST TypeRef into a semantic Type .
Parameters:
module_envs: The mapping of module names to their environments.current_module: The name of the module performing the resolution.tref: The TypeRef AST node.module_path: Optional list of module components for qualified types.resolve_alias: Optional callback to resolve type aliases.require_import: Whether to require an explicit import for qualified lookups.
Returns: A TypeResolution object containing the result or error information.
Class l0_resolve::ResolveErrorKind
Kinds of errors that can occur during symbol resolution.
Member Data l0_resolve.ResolveErrorKind.UNKNOWN_MODULE
1
| l0_resolve.ResolveErrorKind::UNKNOWN_MODULE
|
Member Data l0_resolve.ResolveErrorKind.MODULE_NOT_IMPORTED
1
| l0_resolve.ResolveErrorKind::MODULE_NOT_IMPORTED
|
Member Data l0_resolve.ResolveErrorKind.UNKNOWN_SYMBOL
1
| l0_resolve.ResolveErrorKind::UNKNOWN_SYMBOL
|
Member Data l0_resolve.ResolveErrorKind.AMBIGUOUS_SYMBOL
1
| l0_resolve.ResolveErrorKind::AMBIGUOUS_SYMBOL
|
Class l0_resolve::TypeResolveErrorKind
Kinds of errors that can occur during type resolution.
Member Data l0_resolve.TypeResolveErrorKind.UNKNOWN_TYPE
1
| l0_resolve.TypeResolveErrorKind::UNKNOWN_TYPE
|
Member Data l0_resolve.TypeResolveErrorKind.NOT_A_TYPE
1
| l0_resolve.TypeResolveErrorKind::NOT_A_TYPE
|
Member Data l0_resolve.TypeResolveErrorKind.UNRESOLVED_ALIAS
1
| l0_resolve.TypeResolveErrorKind::UNRESOLVED_ALIAS
|
Member Data l0_resolve.TypeResolveErrorKind.VARIANT_AS_TYPE
1
| l0_resolve.TypeResolveErrorKind::VARIANT_AS_TYPE
|
Member Data l0_resolve.TypeResolveErrorKind.UNKNOWN_MODULE
1
| l0_resolve.TypeResolveErrorKind::UNKNOWN_MODULE
|
Member Data l0_resolve.TypeResolveErrorKind.MODULE_NOT_IMPORTED
1
| l0_resolve.TypeResolveErrorKind::MODULE_NOT_IMPORTED
|
Member Data l0_resolve.TypeResolveErrorKind.INVALID_NULLABLE_VOID
1
| l0_resolve.TypeResolveErrorKind::INVALID_NULLABLE_VOID
|
Member Data l0_resolve.TypeResolveErrorKind.AMBIGUOUS_TYPE
1
| l0_resolve.TypeResolveErrorKind::AMBIGUOUS_TYPE
|
Class l0_resolve::SymbolResolution
The result of a symbol resolution attempt.
Member Data l0_resolve.SymbolResolution.symbol
Member Data l0_resolve.SymbolResolution.error
Member Data l0_resolve.SymbolResolution.module_name
Member Data l0_resolve.SymbolResolution.name
Member Data l0_resolve.SymbolResolution.ambiguous_modules
1
| Optional ambiguous_modules
|
Class l0_resolve::TypeResolution
The result of a type reference resolution attempt.
Member Data l0_resolve.TypeResolution.type
Member Data l0_resolve.TypeResolution.error
Member Data l0_resolve.TypeResolution.module_name
Member Data l0_resolve.TypeResolution.name
Member Data l0_resolve.TypeResolution.symbol
Member Data l0_resolve.TypeResolution.ambiguous_modules
1
| Optional ambiguous_modules
|