crates.sage_ir.modules.expand
4 anchors
| Anchor | Implementation | Tests |
|---|---|---|
| crates.sage_ir.modules.expand (4) | 4 Implemented | 2 Implemented4 TODO |
completeness | Implemented | ImplementedTODO |
Exhaustive absence requires complete expansion. Published symbols are safe to use even when expansion is incomplete, but an omitted symbol supports a definite negative answer only when expansion is complete for that semantic question. This is the expansion consequence of Incompleteness is an explicit terminal outcome. | ||
dependencies | Implemented | TODO |
Expansion observes expansion inputs, never checked semantic detail. A module expansion may depend on parsed item identities, macro resolution and definitions, generated output, and completeness facts. It must not depend on item signatures, trait solutions, or function bodies. | ||
direct_members | Implemented | TODO |
Expansion returns direct module members, not a visible-name environment. The result preserves deterministic order and provenance for source and generated direct items. Child-module members remain in the child, while imports and namespace lookup are interpreted later by resolution. | ||
recursion_and_fixpoint | Implemented | ImplementedTODO |
Recursive expansion and same-module fixed points are distinct. Recursive processing expands invocations emitted directly by another invocation. Salsa fixed-point recovery is used only when resolving a macro requires the provisional expanded members of that same module; convergence does not imply completeness. | ||