Commit Graph

4 Commits

Author SHA1 Message Date
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