aboutsummaryrefslogtreecommitdiff
path: root/src/checker.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/checker.cpp')
-rw-r--r--src/checker.cpp11
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;
}
}
}