Phase 8.8: Pack transparency system core implementation completed

Co-authored-by: moe-charm <217100418+moe-charm@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2025-08-15 10:52:35 +00:00
parent 6b62209da9
commit 8dfa9a50b5
6 changed files with 235 additions and 48 deletions

View File

@ -961,20 +961,18 @@ impl NyashInterpreter {
// 親クラスの継承チェーンを再帰的に解決 (Multi-delegation) 🚀
for parent_name in &box_decl.extends {
// 🔥 ビルトインBoxかチェック
let mut builtin_boxes = vec![
"IntegerBox", "StringBox", "BoolBox", "ArrayBox", "MapBox",
"FileBox", "ResultBox", "FutureBox", "ChannelBox", "MathBox",
"TimeBox", "DateTimeBox", "TimerBox", "RandomBox", "SoundBox",
"DebugBox", "MethodBox", "NullBox", "ConsoleBox", "FloatBox",
"BufferBox", "RegexBox", "JSONBox", "StreamBox", "HTTPClientBox",
"IntentBox", "P2PBox"
];
// 🔥 Phase 8.8: pack透明化システム - ビルトインBox判定
use crate::box_trait::is_builtin_box;
let mut is_builtin = is_builtin_box(parent_name);
// GUI機能が有効な場合はEguiBoxも追加判定
#[cfg(all(feature = "gui", not(target_arch = "wasm32")))]
builtin_boxes.push("EguiBox");
let is_builtin = builtin_boxes.contains(&parent_name.as_str());
{
if parent_name == "EguiBox" {
is_builtin = true;
}
}
if is_builtin {
// ビルトインBoxの場合、フィールドやメソッドは継承しない