Skip to main content

Module refine_polymorphic_value_info

Module refine_polymorphic_value_info 

Source
Expand description

refine_polymorphic_value_info — narrows the placeholder TYPE_TENSOR denotation stamped by the DSL recorder on every Contract-method NodeProto to each bound concrete’s actual Storage::TYPE.

Runs BEFORE run_pipeline (and therefore BEFORE type_solver) so the solver walks the narrowed denotations, not the placeholder ones. Because this pass needs access to BindingSpec it lives in Compiler::compile() alongside validate_all_slots_bound, not inside the canonical runner pipeline (which has no binding context). validate_all_slots_bound runs AFTER the pipeline to confirm every bound slot was used.

Pass order: refine_polymorphic_value_inforun_pipeline (containing type_solver) → validate_all_slots_bound.