aboutsummaryrefslogtreecommitdiff
path: root/enums.c
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2025-03-11 17:03:03 -0400
committerBruce Hill <bruce@bruce-hill.com>2025-03-11 17:03:03 -0400
commitfb2d7b5379663e929ffabfbd8428de5b35ad67c4 (patch)
treec0fdd8d373053cc907c4c18fe12156c400fb09da /enums.c
parent888a977132a8494a512d5f1539fc35f464da40a2 (diff)
Add extern structs
Diffstat (limited to 'enums.c')
-rw-r--r--enums.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/enums.c b/enums.c
index 9cb7a66b..811b42b7 100644
--- a/enums.c
+++ b/enums.c
@@ -24,8 +24,10 @@ CORD compile_enum_typeinfo(env_t *env, ast_t *ast)
if (!tag->fields) continue;
const char *tag_name = heap_strf("%s$%s", def->name, tag->name);
+ type_t *tag_type = Table$str_get(*env->types, tag_name);
+ assert(tag_type && tag_type->tag == StructType);
member_typeinfos = CORD_all(
- member_typeinfos, compile_struct_typeinfo(env, WrapAST(ast, StructDef, .name=tag_name, .fields=tag->fields, .secret=tag->secret)));
+ member_typeinfos, compile_struct_typeinfo(env, tag_type, tag_name, tag->fields, tag->secret));
}
int num_tags = 0;