e404746612
refactor(mir): Phase 139-P3-B - RoutingDecision を enum 対応 + レガシー削除
...
- RoutingDecision の missing_caps を Vec<CapabilityTag> に変更(型安全化)
- error_tags は to_tag() メソッドで自動生成
- 全 callsite を enum variant に修正
- capability_tags モジュール(文字列定数群)を完全削除
- 全テスト PASS(型安全性向上を確認)
- フォーマット適用
2025-12-16 07:02:14 +09:00
29d96b94e6
fix(test): Phase 131-11-E テスト修正 - is_infinite_loop 初期化追加
...
## 問題
- src/mir/loop_pattern_detection/tests.rs でビルドエラー
- `LoopFeatures` に `is_infinite_loop` フィールドが欠けていた
## 修正
- classify_body() で `is_infinite_loop: false` を追加
- テストでは通常ループ(finite loop)を想定
## 検証
- ✅ ビルド成功
- ✅ Case C MIR: `%3: Integer = phi [%2, bb0], [%8, bb7]`
- ✅ Case C VM: `Result: 3`
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2025-12-14 19:02:18 +09:00
af6f95cd4b
Phase 33 NORM canon test: enforce normalized dev route for P1/P2/JP mini
2025-12-11 20:54:33 +09:00
8900a3cc44
feat(joinir): Phase 247-EX - DigitPos dual-value architecture
...
Extends DigitPos promotion to generate TWO carriers for Pattern A/B support:
- Boolean carrier (is_digit_pos) for break conditions
- Integer carrier (digit_value) for NumberAccumulation
## Implementation
1. **DigitPosPromoter** (loop_body_digitpos_promoter.rs)
- Generates dual carriers: is_<var> (bool) + <base>_value (int)
- Smart naming: "digit_pos" → "digit" (removes "_pos" suffix)
2. **UpdateEnv** (update_env.rs)
- Context-aware promoted variable resolution
- Priority: <base>_value (int) → is_<var> (bool) → standard
- Pass promoted_loopbodylocals from CarrierInfo
3. **Integration** (loop_with_break_minimal.rs)
- UpdateEnv constructor updated to pass promoted list
## Test Results
- **Before**: 925 tests PASS
- **After**: 931 tests PASS (+6 new tests, 0 failures)
## New Tests
- test_promoted_variable_resolution_digit_pos - Full dual-value
- test_promoted_variable_resolution_fallback_to_bool - Fallback
- test_promoted_variable_not_a_carrier - Error handling
## Impact
| Pattern | Before | After |
|---------|--------|-------|
| _parse_number | ✅ Works (bool only) | ✅ Works (bool used, int unused) |
| _atoi | ❌ Failed (missing int) | ✅ READY (int carrier available!) |
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2025-12-11 15:08:14 +09:00
d4597dacfa
feat(joinir): Phase 245C - Function parameter capture + test fix
...
Extend CapturedEnv to include function parameters used in loop conditions,
enabling ExprLowerer to resolve variables like `s` in `loop(p < s.length())`.
Phase 245C changes:
- function_scope_capture.rs: Add collect_names_in_loop_parts() helper
- function_scope_capture.rs: Extend analyze_captured_vars_v2() with param capture logic
- function_scope_capture.rs: Add 4 new comprehensive tests
Test fix:
- expr_lowerer/ast_support.rs: Accept all MethodCall nodes for syntax support
(validation happens during lowering in MethodCallLowerer)
Problem solved: "Variable not found: s" errors in loop conditions
Test results: 924/924 PASS (+13 from baseline 911)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-11 13:13:08 +09:00