Skip to main content

resolve_module_bodies

Function resolve_module_bodies 

Source
pub fn resolve_module_bodies(
    bindings: &mut [(Text, Expr)],
    locals: &mut [(Text, Expr)],
    main: Option<&mut Expr>,
    imports: &[Text],
    iotas: &[Text],
    frame: &[Text],
) -> Result<(), ParseError>
Expand description

Resolve a module’s bodies in place. Item names are sorted to provide a stable index space for order-independent mutual recursion.

Lookup order: enclosing binders $\to$ imports $\to$ module members (iotas $\to$ items $\to$ locals) $\to$ root frame $\to$ builtin aliases.

Iotas are searched before items to prefer the iota in re-exporting forms (false = const). Imports are searched before items to prefer the frame slot in re-exporting forms (Foo = import "spec").