Phase 3 Complete: Parser extended with weak field support

Co-authored-by: moe-charm <217100418+moe-charm@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2025-08-12 20:27:20 +00:00
parent 0f0edeeb9c
commit 56af6c612f
5 changed files with 92 additions and 3 deletions

View File

@ -104,6 +104,7 @@ pub enum StructureNode {
methods: Vec<ASTNode>,
constructors: Vec<ASTNode>,
init_fields: Vec<String>,
weak_fields: Vec<String>, // 🔗 weak修飾子が付いたフィールドのリスト
is_interface: bool,
extends: Vec<String>, // 🚀 Multi-delegation: Changed from Option<String> to Vec<String>
implements: Vec<String>,
@ -449,6 +450,7 @@ pub enum ASTNode {
methods: HashMap<String, ASTNode>, // method_name -> FunctionDeclaration
constructors: HashMap<String, ASTNode>, // constructor_key -> FunctionDeclaration
init_fields: Vec<String>, // initブロック内のフィールド定義
weak_fields: Vec<String>, // 🔗 weak修飾子が付いたフィールドのリスト
is_interface: bool, // interface box かどうか
extends: Vec<String>, // 🚀 Multi-delegation: Changed from Option<String> to Vec<String>
implements: Vec<String>, // 実装するinterface名のリスト
@ -935,9 +937,13 @@ mod tests {
methods,
constructors: HashMap::new(),
init_fields: vec![],
weak_fields: vec![], // 🔗 No weak fields in test
is_interface: false,
extends: vec![], // 🚀 Multi-delegation: Changed from None to vec![]
implements: vec![],
type_parameters: vec![], // No generics in test
is_static: false,
static_init: None,
span: Span::unknown(),
};