durables

Function durables 

Source
pub fn durables(
    signals: &[SignalDecl],
    resolve: &mut dyn FnMut(&Ty) -> Ty,
) -> Vec<(Arc<str>, Ty)>
Expand description

Every durable a set of signal declarations holds, labelled exactly as Graph::build labels it, in declaration order.

crate::split reads this off the graph. The checker has to answer the same question before a graph exists, because a test block’s state is typed against the accumulator and a fused one is a type the program did not write. Both go through here so the two cannot disagree about how many folds there are or what their fields are called.

resolve is the caller’s substitution: mid-check a declaration’s type is still a variable, and after checking it is not.