diff options
| author | gingerBill <bill@gingerbill.org> | 2021-08-16 18:17:26 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2021-08-16 18:17:26 +0100 |
| commit | fce86ff3d58dd38a6343053a76186e58a977bd72 (patch) | |
| tree | 18280d8a34181bde8b5652404217f72d26e61548 /src/check_type.cpp | |
| parent | 0051cd12e22d03b5442df98d82d9b8a586362082 (diff) | |
Correct struct tag bug
Diffstat (limited to 'src/check_type.cpp')
| -rw-r--r-- | src/check_type.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/check_type.cpp b/src/check_type.cpp index d2a216c93..7dbd72612 100644 --- a/src/check_type.cpp +++ b/src/check_type.cpp @@ -159,7 +159,12 @@ void check_struct_fields(CheckerContext *ctx, Ast *node, Array<Entity *> *fields Entity *field = alloc_entity_field(ctx->scope, name_token, type, is_using, field_src_index); add_entity(ctx, ctx->scope, name, field); array_add(fields, field); - array_add(tags, p->tag.string); + String tag = p->tag.string; + if (tag.len != 0 && !unquote_string(permanent_allocator(), &tag, 0, tag.text[0] == '`')) { + error(p->tag, "Invalid string literal"); + tag = {}; + } + array_add(tags, tag); field_src_index += 1; } |