Files
hakorune/src/mir/builder/control_flow/joinir/patterns
nyash-codex ae741d97b4 feat(joinir): Phase 202-C Pattern 4 uses JoinValueSpace, unify dual counters
# Summary
Pattern 4 (Continue) now uses JoinValueSpace for unified ValueId allocation,
eliminating the dual counter system that was prone to ValueId collisions.

# Changes
- loop_with_continue_minimal.rs: Replace value_counter + join_value_counter with JoinValueSpace
  - Param region (100+): ConditionEnv variables
  - Local region (1000+): All intermediate values (Const, BinOp, etc.)
  - Eliminated manual counter management (value_counter = 0u32, join_value_counter++)
- pattern4_with_continue.rs: Create JoinValueSpace and pass to lowerer
- Added Phase 202-C documentation explaining the unification

# Test Results
 cargo test --release --lib continue: 11 passed (3 ignored)
 E2E apps/tests/loop_continue_pattern4.hako → 25 (single carrier)
 E2E apps/tests/loop_continue_multi_carrier.hako → 100, 10 (multi carrier)

# Benefits
- No ValueId collision risk (disjoint regions)
- Consistent with Pattern 2 architecture (Phase 201)
- Simplified allocation logic (no manual counter tracking)
- Better maintainability (single source of truth)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-09 19:20:46 +09:00
..