nyash-codex
73844dbe04
feat(builder): CalleeBoxKind構造ガードで静的/ランタイムBox混線を根絶
🎯 箱理論の実践: 「境界を作る」原則による構造レベル分離
## 問題
- StageBArgsBox.resolve_src内のargs.get(i)が
Stage1UsingResolverBox.getに化ける(静的Box名混入)
- 未定義ValueIdエラー発生(receiver定義なし)
## 解決策(構造ガード)
✅ CalleeBoxKind enum追加
- StaticCompiler: Stage-B/Stage-1コンパイラBox
- RuntimeData: MapBox/ArrayBox等ランタイムBox
- UserDefined: ユーザー定義Box
✅ classify_box_kind(): Box名から種別判定
- 静的Box群を明示的に列挙(1箇所に集約)
- ランタイムBox群を明示的に列挙
- 将来の拡張も容易
✅ apply_static_runtime_guard(): 混線検出・正規化
- me-call判定(receiver型==box_name → 静的降下に委ねる)
- 真の混線検出(receiver型≠box_name → 正規化)
- トレースログで可視化
## 効果
- 修正前: Invalid value ValueId(150/187)
- 修正後: Unknown method 'is_space' (別issue、StringBox実装不足)
- → 静的Box名混入問題を根絶!
## 箱理論原則
- ✅ 境界を作る: Static/Runtime/UserDefinedを構造的に分離
- ✅ Fail-Fast: フォールバックより明示的エラー
- ✅ 箱にする: CalleeBoxKindでBox種類を1箇所に集約
## ファイル
- src/mir/definitions/call_unified.rs: CalleeBoxKind enum
- src/mir/builder/calls/call_unified.rs: classify_box_kind()
- src/mir/builder/calls/emit.rs: apply_static_runtime_guard()
- docs/development/roadmap/phases/phase-25.1d/README.md: 箱化メモ更新
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 23:13:57 +09:00
..
2025-11-06 15:41:52 +09:00
2025-08-21 00:41:26 +09:00
2025-08-21 00:41:26 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-09-03 01:37:38 +09:00
2025-09-04 11:34:15 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-08-21 00:41:26 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-09-02 09:26:09 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-09-08 03:30:35 +09:00
2025-09-08 03:30:35 +09:00
2025-11-06 15:41:52 +09:00
2025-11-14 15:18:14 +09:00
2025-11-14 15:18:14 +09:00
2025-11-13 16:40:58 +09:00
2025-11-13 16:40:58 +09:00
2025-11-14 20:19:00 +09:00
2025-11-06 15:41:52 +09:00
2025-11-15 05:42:32 +09:00
2025-11-15 05:42:32 +09:00
2025-11-15 22:32:13 +09:00
2025-11-17 03:19:03 +09:00
2025-11-17 05:24:07 +09:00
2025-11-17 23:13:57 +09:00
2025-11-15 05:42:32 +09:00
2025-11-15 22:32:13 +09:00
2025-09-11 00:21:11 +09:00
2025-11-04 16:33:04 +09:00
2025-11-06 15:41:52 +09:00