l0_resolve.py

l0_resolve.py

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

1
Optional symbol

Member Data l0_resolve.SymbolResolution.error

1
Optional error

Member Data l0_resolve.SymbolResolution.module_name

1
str module_name

Member Data l0_resolve.SymbolResolution.name

1
str 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

1
Optional type

Member Data l0_resolve.TypeResolution.error

1
Optional error

Member Data l0_resolve.TypeResolution.module_name

1
str module_name

Member Data l0_resolve.TypeResolution.name

1
str name

Member Data l0_resolve.TypeResolution.symbol

1
Optional symbol

Member Data l0_resolve.TypeResolution.ambiguous_modules

1
Optional ambiguous_modules