feat(joinir): phase 100 P1 - pinned local analyzer and wiring into CapturedEnv
- Implement PinnedLocalAnalyzer box to identify pinned loop-outer locals * Pure AST analysis (no MIR dependencies) * Detects locals: defined before loop, referenced in loop, NOT assigned in loop * 5 unit tests covering all edge cases (no assignment, assigned, empty body, etc.) - Integrate PinnedLocalAnalyzer into pattern2_with_break.rs * Call analyzer with loop body AST and candidate locals from variable_map * Wire pinned locals into CapturedEnv with CapturedKind::Pinned * Fail-Fast on host_id lookup failure or analyzer errors - Update loop_body_local_init.rs resolver to search CapturedEnv * New search order: LoopBodyLocalEnv → ConditionEnv → CapturedEnv * Access via cond_env.captured (already integrated in ConditionEnv) * Updated error message to show full search order - All existing tests pass (1101 passed, 1 unrelated failure) - Smoke tests verified: phase96_json_loader_next_non_ws_vm, phase94_p5b_escape_e2e 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@ -743,4 +743,7 @@ pub use trim_detector::{TrimDetectionResult, TrimDetector};
|
||||
|
||||
// Phase 79: BindingMapProvider trait (centralize feature gate)
|
||||
pub mod binding_map_provider;
|
||||
|
||||
// Phase 100 P1-2: Pinned Local Analyzer
|
||||
pub mod pinned_local_analyzer;
|
||||
pub use binding_map_provider::BindingMapProvider;
|
||||
|
||||
Reference in New Issue
Block a user