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:
@ -1,7 +1,7 @@
|
||||
# Phase 137: Loop Canonicalizer(前処理 SSOT)
|
||||
|
||||
## Status
|
||||
- 状態: 🔶 進行中(Phase 3 完了)
|
||||
- 状態: 🔶 進行中(Phase 5 完了)
|
||||
|
||||
## Goal
|
||||
- ループ形の組み合わせ爆発を抑えるため、`AST → LoopSkeleton → (capability/routing)` の前処理を SSOT 化する。
|
||||
@ -51,6 +51,13 @@
|
||||
- ExitContract が pattern 選択の決定要因として明確化
|
||||
- 構造的特徴(if-else 等)は `notes` に記録(将来の Pattern 細分化に備える)
|
||||
|
||||
## Phase 6(次): Router 委譲(dev-only / 段階投入)
|
||||
|
||||
- 目標: “既存 router の結果” を最終SSOTとして維持したまま、dev-only で Canonicalizer の `RoutingDecision` を router 選択に使う経路を用意する。
|
||||
- 方針:
|
||||
- まず dev-only で `RoutingDecision.chosen` を router に反映し、strict 時は parity を維持する(ズレたら Fail-Fast)。
|
||||
- 既定挙動(dev flags OFF)では現行 router をそのまま使う。
|
||||
|
||||
## SSOT
|
||||
|
||||
- 設計 SSOT: `docs/development/current/main/design/loop-canonicalizer.md`
|
||||
|
||||
Reference in New Issue
Block a user