Files
hakorune/docs/development/current/main/phases/phase-284/P0-INSTRUCTIONS.md

1.6 KiB
Raw Blame History

Phase 284 P0docs-only: Return as ExitKind SSOT

目的: return を pattern 個別実装へ散らさず、ExitKind::Returncompose::* / emit_frag() に収束させるための SSOT を固定する。

このP0でやることコード変更なし

  1. SSOT を 1 枚にまとめる
    • docs/development/current/main/phases/phase-284/README.md を SSOT として整える(用語・責務・境界)。
  2. 既存SSOTとの整合を取る
    • Phase 282 の “SSOT=extract / pattern_kind=safety valve / lower re-extract” と矛盾しないこと。
  3. “移行期間の穴” を塞ぐ言い方にする
    • close-but-unsupported は Ok(None) ではなく ErrFail-Fastであることを明記。

文書に必ず入れる事項(チェックリスト)

  • return exprExitKind::Return で表現するpattern の特例は禁止)
  • Return edge の返り値は EdgeArgs(または Return 用 argsで運ぶ
  • terminator 生成は emit_frag() が SSOTReturn も例外なし)
  • extractor の返り値境界: Ok(None)Err の意味を固定(黙殺禁止)
  • Phase 284 の P1+(実装)で “どこを触る” かの導線を箇条書きで残す(ただしコードは書かない)

SSOTリンク

  • docs/development/current/main/phases/phase-284/README.md
  • docs/development/current/main/design/edgecfg-fragments.md
  • src/mir/builder/control_flow/edgecfg/api/compose/mod.rs
  • src/mir/builder/control_flow/edgecfg/api/emit.rs
  • docs/development/current/main/phases/phase-282/README.md