Commit Graph

2 Commits

Author SHA1 Message Date
d4f90976da refactor(joinir): Phase 244 - ConditionLoweringBox trait unification
Unify condition lowering logic across Pattern 2/4 with trait-based API.

New infrastructure:
- condition_lowering_box.rs: ConditionLoweringBox trait + ConditionContext (293 lines)
- ExprLowerer implements ConditionLoweringBox trait (+51 lines)

Pattern migrations:
- Pattern 2 (loop_with_break_minimal.rs): Use trait API
- Pattern 4 (loop_with_continue_minimal.rs): Use trait API

Benefits:
- Unified condition lowering interface
- Extensible for future lowering strategies
- Clean API boundary between patterns and lowering logic
- Zero code duplication

Test results: 911/911 PASS (+2 new tests)

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-11 02:35:31 +09:00
02c689216b feat(joinir): Phase 216 Selfhost if-sum production test validation
Completes Phase 216: Validates Pattern 3 if-sum implementation with
actual selfhost test case from apps/tests/phase212_if_sum_min.hako.

## Test Results (All Passing)

### Primary Target
- phase212_if_sum_min.hako: RC=2 
  - Loop: i=0..2, sum increments when i>0
  - Expected: sum=2 (at i=1 and i=2)
  - Actual: RC=2

### Regression Tests
- loop_if_phi.hako (Pattern 3): RC=2 
- loop_min_while.hako (Pattern 1): RC=2 
- joinir_min_loop.hako (Pattern 2): RC=2 

## Validation

Confirmed Phase 215-2 fixes are production-ready:
1. JoinIR lowerer creates expr_result correctly
2. Boundary builder passes expr_result to pipeline
3. Final return uses merge result (not Void)
4. ExprResult contract matches Pattern 2

## Architecture

Pattern 3 if-sum flow:
- Source code → Parser → AST → Pattern3IfPhi detection
- JoinIR lowerer (AST extraction + expr_result creation)
- JoinInlineBoundary with expr_result
- JoinIRConversionPipeline returns merge result
- Pattern dispatcher returns expr_result (not Void)
- Final MIR function uses actual sum value
- VM execution: RC=2 (correct value, not 0)

## Documentation

- Added: docs/development/current/main/phase216-selfhost-if-sum-production.md
- Updated: CURRENT_TASK.md (Phase 213-216 complete status)

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

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-10 01:45:15 +09:00