Skip to main content

route_refusals

Function route_refusals 

Source
pub fn route_refusals(
    stmts: &[Stmt<'_>],
    interner: &Interner,
    is_record: &dyn Fn(Symbol) -> bool,
) -> Vec<(Symbol, Symbol, NotLowerable)>
Expand description

Every ## Route this program cannot lower, and why — computed ONCE where the whole program is visible, for the tiers whose per-statement walk cannot see it.

A route’s lowerability depends on the COMPONENTS beside it (a -> View template may place one), so it is not a property of the Stmt::RouteDef alone. The VM’s statement walk and the AOT emitter each reach a route with no program in hand; asking there with an empty component list refuses every route that places a component, which is a loud wrong answer where the parser already knew the right one. Both read this instead.