aboutsummaryrefslogtreecommitdiff
path: root/src/analyze.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/analyze.cpp')
-rw-r--r--src/analyze.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/analyze.cpp b/src/analyze.cpp
index 62e4e5d606..de71673c49 100644
--- a/src/analyze.cpp
+++ b/src/analyze.cpp
@@ -273,10 +273,14 @@ static void preview_function_labels(CodeGen *g, AstNode *node, FnTableEntry *fn_
static void resolve_struct_type(CodeGen *g, ImportTableEntry *import, TypeTableEntry *struct_type) {
assert(struct_type->id == TypeTableEntryIdStruct);
+ if (struct_type->data.structure.fields) {
+ // we already resolved this type. skip
+ return;
+ }
+
AstNode *decl_node = struct_type->data.structure.decl_node;
assert(struct_type->di_type);
- assert(!struct_type->data.structure.fields);
int field_count = decl_node->data.struct_decl.fields.length;
struct_type->data.structure.field_count = field_count;