Phase 142-loopstmt P0: Statement-level normalization 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
19 lines
1.5 KiB
Markdown
19 lines
1.5 KiB
Markdown
# Self Current Task — Decisions (main)
|
||
|
||
2025‑12‑13
|
||
- JoinIR lowering の name-based 変数解決は、dev-only(`normalized_dev`)で BindingId-based に段階移行する(dual-path を維持)。
|
||
- promoted carriers(DigitPos/Trim などの synthetic name)は、`BindingId(original) → BindingId(promoted) → ValueId(join)` の鎖で接続し、by-name ルール分岐は導入しない。
|
||
- debug/観測は既存のフラグ(例: `NYASH_JOINIR_DEBUG`)に集約し、新しい環境変数のスパローは避ける。
|
||
|
||
2025‑12‑19
|
||
- return の表現力拡張は「パターン総当たり」ではなく、pure expression を扱う `NormalizedExprLowererBox`(AST walker)へ収束させる(Phase 140)。
|
||
- Call/MethodCall は effects + typing の論点が増えるため、pure とは分離して Phase 141+ で段階投入する。
|
||
- out-of-scope は `Ok(None)` で既存経路へフォールバックし、既定挙動不変を維持する(strict は “close-but-unsupported” のみ fail-fast)。
|
||
|
||
2025‑09‑08
|
||
- ループ制御は既存命令(Branch/Jump/Phi)で表現し、新命令は導入しない。
|
||
- Builder に loop_ctx({head, exit})を導入し、continue/break を分岐で降ろす。
|
||
- Verifier の支配関係/SSA を崩さないよう、単一 exit と post‑terminated 後の emit 禁止を徹底。
|
||
- VInvoke(vector 経路)の戻り値は、短期は「既知メソッドの整数返り」を特例扱いで保持し、
|
||
中期は nyash.toml の戻り型ヒント or NyRT シムの期待フラグで正道化。
|