Skip to content

Package Namespace Resolution

Source: src/compiler/namespace.odin

Resolves package names and detects collisions.


Functions

init_namespace_resolution {#init_namespace_resolution}

Function: init_namespace_resolution Initializes the global_packages map for namespace resolution.


resolve_package_namespace {#resolve_package_namespace}

Function: resolve_package_namespace Resolves a package's namespace name. Defaults to the filename stem, then allows an explicit Namespace_Decl to override. Checks for collisions across the global registry and reports Fatal_Namespace on duplicates.


get_stmt_loc {#get_stmt_loc}

Function: get_stmt_loc Extracts the source location from any statement AST node. Returns an empty Src_Loc for unrecognized node types.


Types

Package {#package}

Type: Package Represents a loaded source file and its resolved namespace. Tracks the namespace name, source file path, parsed AST, and import alias mappings.


Variables

global_packages {#global_packages}

Variable: global_packages Global registry mapping namespace names to their Package objects. Used for namespace collision detection and cross-package lookups.