aboutsummaryrefslogtreecommitdiff
path: root/src/check_type.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2021-08-16 18:17:26 +0100
committergingerBill <bill@gingerbill.org>2021-08-16 18:17:26 +0100
commitfce86ff3d58dd38a6343053a76186e58a977bd72 (patch)
tree18280d8a34181bde8b5652404217f72d26e61548 /src/check_type.cpp
parent0051cd12e22d03b5442df98d82d9b8a586362082 (diff)
Correct struct tag bug
Diffstat (limited to 'src/check_type.cpp')
-rw-r--r--src/check_type.cpp7
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;
}