1.4 KiB
1.4 KiB
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.rssrc/mir/builder/control_flow/edgecfg/api/frag.rssrc/mir/builder/control_flow/edgecfg/api/edge_stub.rssrc/mir/builder/control_flow/edgecfg/api/verify.rs
コミット(参考)
ab1510920Phase 265 P0cda034fe8Phase 265 P121387f381Phase 265 P2
次フェーズ
- Phase 266:
wires → MIR terminatorの SSOT(test-only PoC) - Phase 267: Branch 生成 + JoinIR/NormalizedShadow への実適用(段階導入)