Commit Graph

8 Commits

Author SHA1 Message Date
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
2a18a66154 feat(joinir): Phase Next - parse_array/object 同型 fixture
## 実ループ制御構造の抽出
- parse_array_min.program.json (n=10 → acc=6)
- parse_object_min.program.json (n=10 → acc=7)

## 既存パターン再利用
- ContinueReturn lowering 活用(新規 lowering 不要)
- 優れたモジュール再利用の実証

## Tests
- +4 tests (ParseArray 2本 + ParseObject 2本)
- +1 test fixed (Phase 88 error message 更新)
- normalized_dev: 64→69 passed (+5)

## 箱化評価
- 単一責任: 
- 境界明確:  (SSOT)
- 再利用性:  (既存パターン活用)
- テスト容易性: 
- SSOT:  (dev_fixtures.rs)

## レガシー探索
- デッドコード: なし
- 重複コード: なし
- クリーンな状態維持

Impact:
- 実ループ寄せの基盤確立
- モジュール設計の成功実証
- 技術的負債ゼロ

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-14 04:09:46 +09:00
df57d3d320 refactor(joinir): Refactor-A+B - Null literal + ContinueReturn 一般化
## Refactor-A: Null literal 対応
- expr.rs に "Null" case 追加
- ConstValue::Null → JoinValue::Unit マッピング

## Refactor-B: ContinueReturn 一般化
- 複数 return-if 許可(同値のみ)
- json_values_equal() ヘルパー追加
- Fail-Fast: 異なる値は即エラー

## Fixtures & Tests
- null_literal_min.program.json (return null)
- continue_return_multi_min.program.json (複数 return null)
- +1 test (vm_bridge 検証)

Impact:
- normalized_dev: 63→64 passed (+1)
- lib: 993 passed (回帰なし)
- 箱化スコア: 5/5 (全項目満点)
- 実ループ(_parse_array/_parse_object) 準備完了

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-14 04:01:05 +09:00
45add0f5d3 feat(joinir): Phase 90 P0 - ParseStringComposite pattern
## Composite Pattern
- Continue(escape i+=2) + EarlyReturn(close quote)
- parse_string_composite_pattern.rs (50行、continue_return 再利用)
- 89% コード削減(450行→50行)

## Shape Detection
- BinOp Add const 2 検出(escape 特徴)
- LoopStepInspector 活用(Phase 89 リファクタ成果)

## SSOT Integration
- dev_fixtures.rs に登録
- StepCalculator 再利用(Phase 89-2 成果)

## Tests
- +2 tests (vm_bridge + 期待値 n=10→acc=5)
- normalized_dev: 61→63 passed
- lib: 993 passed (回帰なし)

Impact:
- Reuse over Duplication 実践
- Phase 89 リファクタ成果の完全活用
- 箱化原則 5/5 遵守

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-14 03:36:45 +09:00
730a80f33f feat(joinir): Phase 89 P1 - ContinueReturn lowering implementation
## ContinueReturn 独立箱
- continue_return_pattern.rs (457行)
- Continue + Early Return の JoinIR lowering
- StepCalculator 再利用(3箇所)
- Fail-Fast 原則徹底(5箇所検証)

## Dispatcher 配線
- mod.rs: LoopPattern::ContinueReturn 対応
- allowlist: pattern_continue_return_minimal 追加

## Fixture & Tests
- fixtures.rs: build_pattern_continue_return_min
- shapes.rs: +2 tests (vm_bridge + 期待値 n=10→acc=4)

Impact:
- normalized_dev: 61 passed (+2)
- lib tests: 993 passed (回帰なし)
- 箱化原則:単一責任・境界明確・再利用性高

Next: Phase 90 - _parse_string 合成 fixture

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-14 02:02:47 +09:00
b578eb7a65 test(joinir): Phase 88 - Fail-Fast validation for non-const i update
- Add test: rejects_non_const_then_i_update
- Validates that continue pattern requires `i = i + const` form
- Ensures Fail-Fast behavior for unsupported step patterns

Impact:
- 60 normalized_dev tests PASS (+1)
- Fail-Fast 仕様固定(非 const の i 更新を拒否)

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-14 00:38:47 +09:00
b71a18495d feat(joinir): Phase 88 - Pattern4 continue + variable step increment
Continue Pattern 拡張:
- then側の i=i+const 差分加算 + acc更新を許可
- continue_pattern.rs:193 で可変ステップ検出

Dev Router 許可:
- ast_lowerer/mod.rs:92 で normalized_dev feature時に新パターンを有効化

Fixtures & Tests:
- jsonparser_unescape_string_step2_min fixture追加(submodule)
- normalized_joinir_min.rs に shape テスト追加
- shapes.rs に expected shape 定義

Documentation:
- joinir-architecture-overview.md に Phase 88 到達点を追記

Impact:
- Pattern4 continue + 可変インクリメント(i+=1 or i+=2)対応
- _unescape_string 制御構造の土台確立
- normalized_dev tests PASS

Next: _unescape_string 残り複合ループ対応

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-14 00:29:56 +09:00
dd58b8bbe2 tests(normalized): split normalized_joinir_min into modules 2025-12-13 19:40:24 +09:00