Skip to main content

compile_program_with_mir_fallback

Function compile_program_with_mir_fallback 

Source
pub fn compile_program_with_mir_fallback(
    items: &[ResolvedTopLevel],
    symbols: &SymbolTable,
    arena: &mut Arena,
    analysis: Option<&AnalysisResult>,
) -> Result<(CodeStore, Vec<NanValue>), CompileError>
Expand description

Phase 4b of #252: compile with MIR-first dispatch + HIR fallback. Per fn: if the fn’s body lowers cleanly to MIR and MIR-emit produces bytecode, use that chunk; otherwise fall back to the existing HIR walker. The fallback is deliberate — every fn that lands in MirVmUnsupported territory (Match / Try / TailCall / Construct / Record* / Project / List / Tuple / Map / InterpolatedStr / IndependentProduct / builtin callees / first-class fn values) keeps the well-tested HIR shape.

Same I/O contract as [compile_program]; the only difference is the per-fn dispatch.