From aa27cd4b0b7876d028f66fdc92a4636eb9c1dc90 Mon Sep 17 00:00:00 2001 From: Jeroen van Rijn Date: Thu, 27 Jun 2024 16:14:16 +0200 Subject: [PATCH] Allow core:odin to parse @(require) import --- core/odin/ast/ast.odin | 1 + core/odin/parser/parser.odin | 3 +++ 2 files changed, 4 insertions(+) diff --git a/core/odin/ast/ast.odin b/core/odin/ast/ast.odin index 229f03d3d..92d00b47c 100644 --- a/core/odin/ast/ast.odin +++ b/core/odin/ast/ast.odin @@ -513,6 +513,7 @@ Package_Decl :: struct { Import_Decl :: struct { using node: Decl, docs: ^Comment_Group, + attributes: [dynamic]^Attribute, // dynamic as parsing will add to them lazily is_using: bool, import_tok: tokenizer.Token, name: tokenizer.Token, diff --git a/core/odin/parser/parser.odin b/core/odin/parser/parser.odin index 6b0aa2888..03fb4d66d 100644 --- a/core/odin/parser/parser.odin +++ b/core/odin/parser/parser.odin @@ -1103,6 +1103,9 @@ parse_attribute :: proc(p: ^Parser, tok: tokenizer.Token, open_kind, close_kind: case ^ast.Foreign_Import_Decl: if d.docs == nil { d.docs = docs } append(&d.attributes, attribute) + case ^ast.Import_Decl: + if d.docs == nil { d.docs = docs } + append(&d.attributes, attribute) case: error(p, decl.pos, "expected a value or foreign declaration after an attribute") free(attribute)