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

1.4 KiB
Raw Blame 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 で強制
    • Returntarget=None を許可target が意味を持たない)
    • Jumpset_jump_with_edge_args()Phase 260 の SSOT ルール)
    • Returnset_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 の実適用(層境界を守って段階導入)