diff options
| author | gingerBill <bill@gingerbill.org> | 2023-08-05 16:05:39 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2023-08-05 16:05:39 +0100 |
| commit | c91898a8889604617140ad15c70f4d68494fa0a1 (patch) | |
| tree | bf5f82b295f1751ce2e099a07edbfdfe175a7ddb /src/parser.cpp | |
| parent | afa8eb2d6fdf1e3fd7278ee1623506984a150f15 (diff) | |
Remove #relative slices; Replace with #relative multi-pointers
Diffstat (limited to 'src/parser.cpp')
| -rw-r--r-- | src/parser.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/parser.cpp b/src/parser.cpp index aa8969103..56d1e2d6c 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -2235,7 +2235,11 @@ gb_internal Ast *parse_operand(AstFile *f, bool lhs) { return parse_check_directive_for_statement(operand, name, StateFlag_no_type_assert); } else if (name.string == "relative") { Ast *tag = ast_basic_directive(f, token, name); - tag = parse_call_expr(f, tag); + if (f->curr_token.kind != Token_OpenParen) { + syntax_error(tag, "expected #relative(<integer type>) <type>"); + } else { + tag = parse_call_expr(f, tag); + } Ast *type = parse_type(f); return ast_relative_type(f, tag, type); } else if (name.string == "force_inline" || |