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:
@ -27,9 +27,9 @@
|
||||
- Phase 136: MirBuilder の Context 分割を完了し、状態の SSOT を Context に一本化。
|
||||
- 詳細: `docs/development/current/main/phases/phase-136/README.md`
|
||||
|
||||
## 2025‑12‑16:Phase 137‑2(短報)
|
||||
## 2025‑12‑16:Phase 137‑5(短報)
|
||||
|
||||
- Loop Canonicalizer の Phase 2(dev-only 観測)まで完了(既定挙動は不変)。
|
||||
- Loop Canonicalizer の Phase 5(Decision Policy SSOT)まで完了(既定挙動は不変)。
|
||||
- 設計 SSOT: `docs/development/current/main/design/loop-canonicalizer.md`
|
||||
- 実装: `src/mir/loop_canonicalizer/mod.rs`(+ 観測: `src/mir/builder/control_flow/joinir/routing.rs`)
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# Loop Canonicalizer(設計 SSOT)
|
||||
|
||||
Status: Phase 3 done(skip_whitespace の安定認識まで)
|
||||
Status: Phase 5 done(Decision Policy SSOT まで)
|
||||
Scope: ループ形の組み合わせ爆発を抑えるための “前処理” の設計(fixture/shape guard/fail-fast と整合)
|
||||
Related:
|
||||
- SSOT (契約/不変条件): `docs/development/current/main/joinir-architecture-overview.md`
|
||||
|
||||
@ -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