Files
hakorune/docs/development/current/main/phases/phase-266/README.md

32 lines
1.4 KiB
Markdown
Raw Normal View History

# Phase 266 — EdgeCFG wires → MIR terminatortest-only PoC
Status: Completed ✅
SSOT (design): `docs/development/current/main/design/edgecfg-fragments.md`
## ゴール
- `Frag.wires`(解決済み配線)を **MIR terminator** に落とす最小 PoC を作る
- JoinIR/NormalizedShadow には触らず、**MIR BasicBlockId 層だけ**で証明する
## 完了内容
- `emit_wires(function, wires)` を SSOT として追加Jump/Return のみ)
- `from` ごとにグループ化し **1 block = 1 terminator** を Fail-Fast で強制
- `Return``target=None` を許可target が意味を持たない)
- `Jump``set_jump_with_edge_args()`Phase 260 の SSOT ルール)
- `Return``set_terminator(Return) + set_return_env()`Return 専用メタ)
- `verify_frag_invariants_strict()` を追加(段階導入)
- 既存 `verify_frag_invariants()` は警告のまま維持
- strict は `wires/exits` 分離契約を Err 化PoC/emit 側のみ)
## 主要ファイル
- `src/mir/builder/control_flow/edgecfg/api/emit.rs`
- `src/mir/builder/control_flow/edgecfg/api/verify.rs`
- `src/mir/builder/control_flow/edgecfg/api/mod.rs`
## テスト
- `emit` のユニットテストJump/Return/unwired/multiple-fromを追加し PASS
## 次フェーズ
- Phase 267:
- Branch の生成wires → MIRを追加
- JoinIR/NormalizedShadow/Pattern6/7/8 の実適用(層境界を守って段階導入)