nyash-codex
c213ecc3c0
refactor(mir): Phase 93 リファクタリング - 箱化モジュール化
## 概要
Phase 93 P0実装後のコード整理。スケジュール決定ロジックとbreak semanticsを
明確化し、デバッグログを統一。
## 変更内容
### 1. スケジュール決定ロジックの関数化 (step_schedule.rs)
- `ScheduleDecision`構造体追加(判定結果+理由+デバッグコンテキスト)
- `decide_pattern2_schedule()` - スケジュール決定のSSOT
- `build_pattern2_schedule_from_decision()` - 新しい決定ベースAPI
- 判定理由が4種類で明確化(ConditionOnly → body-local → loop-local → default)
- 後方互換性維持(`Pattern2ScheduleContext`はwrapperに)
### 2. ConditionOnlyRecipe強化 (condition_only_emitter.rs)
- `BreakSemantics` enum追加(WhenMatch vs WhenNotMatch)
- `generate_break_condition()` - semanticsに基づくAST生成
- `from_trim_helper_condition_only()` - factory method追加
- break semanticsがrecipeに明示的に含まれる
### 3. trim_loop_lowering.rs簡素化
- `generate_condition_only_break_condition()`削除(DRY原則)
- `recipe.generate_break_condition()`で統一
- break条件生成ロジックが1箇所に集約
### 4. デバッグログ統一
- `[phase93/schedule]` - スケジュール決定
- `[phase93/condition-only]` - ConditionOnlyレシピ作成
- `[phase93/break-cond]` - break条件生成
- 既存の`joinir_dev_enabled()`使用(新規env var不要)
## テスト結果
- step_schedule: 10 tests PASS
- condition_only_emitter: 4 tests PASS
- 後方互換性維持
## 統計
- 3ファイル変更
- +249行 / -57行 = +192 net
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-16 23:43:03 +09:00
..
2025-12-16 15:01:46 +09:00
2025-12-16 21:37:07 +09:00
2025-12-16 21:37:07 +09:00
2025-12-16 21:37:07 +09:00
2025-12-11 20:54:33 +09:00
2025-12-16 15:53:40 +09:00
2025-12-13 16:20:33 +09:00
2025-12-13 16:20:33 +09:00
2025-12-13 16:20:33 +09:00
2025-12-16 07:02:14 +09:00
2025-12-11 20:54:33 +09:00
2025-12-16 21:37:07 +09:00
2025-12-16 07:02:14 +09:00
2025-12-16 23:24:11 +09:00
2025-12-16 21:37:07 +09:00
2025-12-13 16:20:33 +09:00
2025-12-16 13:48:30 +09:00
2025-12-16 07:02:14 +09:00
2025-12-16 03:48:44 +09:00
2025-12-16 15:22:29 +09:00
2025-12-16 23:43:03 +09:00
2025-12-11 20:54:33 +09:00
2025-12-15 18:49:08 +09:00