Files
hakorune/src/mir/builder/control_flow/edgecfg/api/mod.rs

41 lines
1.3 KiB
Rust
Raw Normal View History

//! EdgeCFG Fragment APIPhase 264: 入口SSOT
//!
//! # コア概念
//! - [`ExitKind`]: 脱出種別(一次概念)
//! - [`EdgeStub`]: 未配線エッジ
//! - [`Frag`]: CFG断片
//! - [`compose`]: 合成関数群Phase 264: TODO実装、pub(crate)
//!
//! # 設計原則
//! - ExitKind を一次概念にし、pattern番号は「形の認識」までに縮退
//! - 値の合流は EdgeCFG の block params + edge-args で表すPHI/推測/メタに逃げない)
//! - Fail-Fast: verify で不変条件を早期検証
//!
//! # 関連文書
//! - 北極星設計: `docs/development/current/main/design/edgecfg-fragments.md`
//! - EdgeCFG 基盤: `docs/development/current/main/design/join-explicit-cfg-construction.md`
pub mod exit_kind;
pub mod edge_stub;
pub mod frag;
pub mod compose;
pub mod verify;
pub mod emit; // Phase 266: 追加
pub mod branch_stub; // Phase 267 P0: 追加
// 公開型(安定)
pub use exit_kind::ExitKind;
pub use edge_stub::EdgeStub;
pub use frag::Frag;
pub use branch_stub::BranchStub; // Phase 267 P0: 追加
// 合成関数Phase 264: crate内のみ公開、Phase 265+でpub化
pub(crate) use compose::{seq, if_, loop_, cleanup};
// 検証関数
pub use verify::verify_frag_invariants;
// Phase 266: strict 版追加
// Phase 267 P0: wires + branches → MIR terminator 変換
pub use emit::emit_frag;