From 3b898e5224872a507bd4a8e8be75c80643943d2a Mon Sep 17 00:00:00 2001 From: gingerBill Date: Fri, 1 Nov 2019 19:26:22 +0000 Subject: Add `@force` to `foreign import` --- src/parser.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/parser.cpp') diff --git a/src/parser.cpp b/src/parser.cpp index 10aa10119..cb04ca1f5 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -1049,6 +1049,8 @@ Ast *ast_foreign_import_decl(AstFile *f, Token token, Array filepaths, To result->ForeignImportDecl.library_name = library_name; result->ForeignImportDecl.docs = docs; result->ForeignImportDecl.comment = comment; + result->ForeignImportDecl.attributes.allocator = heap_allocator(); + return result; } @@ -3865,7 +3867,9 @@ Ast *parse_attribute(AstFile *f, Token token, TokenKind open_kind, TokenKind clo array_add(&decl->ValueDecl.attributes, attribute); } else if (decl->kind == Ast_ForeignBlockDecl) { array_add(&decl->ForeignBlockDecl.attributes, attribute); - } else { + } else if (decl->kind == Ast_ForeignImportDecl) { + array_add(&decl->ForeignImportDecl.attributes, attribute); + }else { syntax_error(decl, "Expected a value or foreign declaration after an attribute, got %.*s", LIT(ast_strings[decl->kind])); return ast_bad_stmt(f, token, f->curr_token); } -- cgit v1.2.3