# Phase 265 — EdgeCFG Fragments(compose/verify の合成則) Status: Completed ✅ SSOT (design): `docs/development/current/main/design/edgecfg-fragments.md` ## ゴール - Structured→CFG lowering を **ExitKind + Frag 合成**として表現する入口を育てる(pattern番号列挙を将来縮退させる) - 既存の JoinIR/merge/Pattern6/7/8 は触らず、**API と合成則だけ**を段階投入する ## 完了内容 - P0: `compose`/`verify` の形を固定(入口SSOT迷子防止) - P1: `compose::loop_` の配線(Break/Continue → wires)を実装(test-only PoC) - P2: **wires/exits 分離**を導入し、`loop_`/`seq`/`if_` を合成則で実装 - `exits`: `target=None` のみ(上位へ伝搬する未配線 exit) - `wires`: `target=Some(...)` のみ(内部で解決済み配線) - `if_` は `join_frag: Frag` を受け取り、Normal が「join 以降」を表すようにする ## 主要ファイル - `src/mir/builder/control_flow/edgecfg/api/compose.rs` - `src/mir/builder/control_flow/edgecfg/api/frag.rs` - `src/mir/builder/control_flow/edgecfg/api/edge_stub.rs` - `src/mir/builder/control_flow/edgecfg/api/verify.rs` ## コミット(参考) - `ab1510920` Phase 265 P0 - `cda034fe8` Phase 265 P1 - `21387f381` Phase 265 P2 ## 次フェーズ - Phase 266: `wires → MIR terminator` の SSOT(test-only PoC) - Phase 267: Branch 生成 + JoinIR/NormalizedShadow への実適用(段階導入)