|
|
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 |
|