diff options
Diffstat (limited to 'src/checker.cpp')
| -rw-r--r-- | src/checker.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/checker.cpp b/src/checker.cpp index 6b3b1b68f..c189b8e6f 100644 --- a/src/checker.cpp +++ b/src/checker.cpp @@ -1342,10 +1342,17 @@ void add_type_info_type(CheckerContext *c, Type *t) { if (bt->Struct.scope != nullptr) { for_array(i, bt->Struct.scope->elements.entries) { Entity *e = bt->Struct.scope->elements.entries[i].value; - if (bt->Struct.is_soa) { + switch (bt->Struct.soa_kind) { + case StructSoa_Dynamic: + add_type_info_type(c, t_allocator); + /*fallthrough*/ + case StructSoa_Slice: + case StructSoa_Fixed: add_type_info_type(c, alloc_type_pointer(e->type)); - } else { + break; + default: add_type_info_type(c, e->type); + break; } } } |