🚀 feat: Phase 9.78b Step 1&2完了 - ChatGPT5による実装
ChatGPT5が実装したPhase 9.78b Step 1&2の統合 ## 🎯 実装内容 1. Phase 9.78b Step 1: BoxDeclarationをcore::modelへ移動 - src/core/mod.rs, model.rs 新規作成 - BoxDeclarationを純粋データモデルとして分離 2. Phase 9.78b Step 2: NyashRuntime骨組み作成 - src/runtime/nyash_runtime.rs 追加 - 統一Box管理の基盤 3. ビルドエラー修正 - Arc重複インポート修正 - as_str() → as_ref() 変更 - parent_name.to_string() 型変換 - インポートパス調整 ## 📊 ビルド結果 - ✅ フルビルド成功 (47.34秒) - ✅ ユニットテスト: 145/145成功 - ✅ 統合テスト: 16/16成功 - ✅ WASMビルド成功 (1.9MB) - ❌ MIRテスト: 1失敗 (ref_new命令) ## 🚀 次のステップ - Phase 9.78b Step 3: BoxFactory dyn化 - Codexの設計に基づく段階的実装継続
This commit is contained in:
29
src/core/model.rs
Normal file
29
src/core/model.rs
Normal file
@ -0,0 +1,29 @@
|
||||
//! Core model definitions for Nyash
|
||||
//!
|
||||
//! This module contains pure data models that are shared between
|
||||
//! the interpreter and the VM. Keep these types free of execution
|
||||
//! strategy details so they can be reused across backends.
|
||||
|
||||
use std::collections::HashMap;
|
||||
|
||||
use crate::ast::ASTNode;
|
||||
|
||||
/// Declaration of a user-defined Box type (class) in Nyash
|
||||
///
|
||||
/// Pure model data used by both the interpreter and VM layers.
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct BoxDeclaration {
|
||||
pub name: String,
|
||||
pub fields: Vec<String>,
|
||||
pub methods: HashMap<String, ASTNode>,
|
||||
pub constructors: HashMap<String, ASTNode>,
|
||||
pub init_fields: Vec<String>,
|
||||
pub weak_fields: Vec<String>,
|
||||
pub is_interface: bool,
|
||||
/// Supports multi-delegation: list of parent types
|
||||
pub extends: Vec<String>,
|
||||
pub implements: Vec<String>,
|
||||
/// Generic type parameters
|
||||
pub type_parameters: Vec<String>,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user