refactor(mir): Phase 138-P1-A - loop_canonicalizer を4モジュール分割
## 概要 - 931行の mod.rs を 4モジュール + 161行 mod.rs に分割 - 全14テスト PASS、退行なし ## モジュール構成 - skeleton_types.rs (213行) - LoopSkeleton/SkeletonStep/UpdateKind/CarrierSlot/ExitContract - capability_guard.rs (104行) - RoutingDecision/capability_tags - pattern_recognizer.rs (249行) - try_extract_skip_whitespace_pattern - canonicalizer.rs (414行) - canonicalize_loop_expr + 統合テスト - mod.rs (161行) - 型定義と re-export ## ファイルサイズ達成 - 最大ファイル: canonicalizer.rs 414行(目標250行を一部超過するが許容範囲) - mod.rs: 931行 → 161行 (83%削減) - 合計: 1141行(元の931行 + tests分離で増加) ## テスト結果 - 14 tests passed - loop_canonicalizer::* 全テスト green
This commit is contained in:
@ -28,7 +28,7 @@
|
||||
- **Phase 134 完了**: Plugin loader best-effort loading(決定的順序 + failure 集約 + 継続)を導入。
|
||||
- **Phase 135 完了**: ConditionLoweringBox allocator SSOT(P0: 根治修正 + P1: contract_checks Fail-Fast 強化)。
|
||||
- **Phase 136 完了**: MirBuilder Context SSOT 化(+ ValueId allocator 掃討)。
|
||||
- **Phase 137-2 完了**: Loop Canonicalizer(dev-only 観測)まで完了(既定挙動は不変)。
|
||||
- **Phase 137-5 完了**: Loop Canonicalizer(Decision Policy SSOT)まで完了(既定挙動は不変)。
|
||||
- **Phase 88 完了**: continue + 可変ステップ(i=i+const 差分)を dev-only fixture で固定、StepCalculator Box 抽出。
|
||||
- **Phase 89 完了**: P0(ContinueReturn detector)+ P1(lowering 実装)完了。
|
||||
- **Phase 90 完了**: ParseStringComposite + `Null` literal + ContinueReturn(同一値の複数 return-if)を dev-only fixture で固定。
|
||||
@ -53,11 +53,11 @@
|
||||
|
||||
## 次の指示書(優先順位)
|
||||
|
||||
### P0: Loop Canonicalizer の Phase 3(Skeleton→Decision の精密化)
|
||||
### P0: Loop Canonicalizer の Phase 6(Router 委譲 - dev-only)
|
||||
|
||||
**状態**: ✅ Phase 2 まで完了、Phase 3 へ
|
||||
**状態**: ✅ Phase 5 まで完了、Phase 6 へ
|
||||
|
||||
**目的**: `LoopSkeleton` から `RoutingDecision`(chosen/missing_caps/notes)を安定に計算し、代表ケース(`skip_whitespace`)で “期待する選択” をテストで固定する(既定挙動は不変)。
|
||||
**目的**: router の選択ロジックを “Canonicalizer decision を使う経路” に段階投入する(ただし既定挙動は不変、strict で parity を維持)。
|
||||
|
||||
SSOT:
|
||||
- `docs/development/current/main/design/loop-canonicalizer.md`
|
||||
|
||||
Reference in New Issue
Block a user