feat(joinir/dev): Phase 126 wire available_inputs into normalized builder

- AvailableInputsCollectorBox::collect() called in lower_function_body (dev-only)
- try_lower_if_only() signature extended (accepts available_inputs)
- EnvLayout::from_contract() now uses real available_inputs (not empty stub)
- Unit tests updated (empty BTreeMap for backward compat)
- All 23 normalized_shadow tests PASS
This commit is contained in:
nyash-codex
2025-12-18 06:45:23 +09:00
parent 89c2915fa0
commit 72f2c1f64d
2 changed files with 46 additions and 23 deletions

View File

@ -203,9 +203,14 @@ impl MirBuilder {
if dev {
use crate::mir::control_tree::normalized_shadow::StepTreeNormalizedShadowLowererBox;
use crate::mir::control_tree::normalized_shadow::parity;
use crate::mir::control_tree::normalized_shadow::available_inputs_collector::AvailableInputsCollectorBox;
// Phase 126: Collect available_inputs from SSOT sources
// Note: CapturedEnv is None for now (if-only patterns don't use CapturedEnv yet)
let available_inputs = AvailableInputsCollectorBox::collect(self, None);
// Try shadow lowering (if-only scope)
let shadow_result = StepTreeNormalizedShadowLowererBox::try_lower_if_only(&tree);
let shadow_result = StepTreeNormalizedShadowLowererBox::try_lower_if_only(&tree, &available_inputs);
match shadow_result {
Ok(Some((module, _meta))) => {