aboutsummaryrefslogtreecommitdiff
path: root/src/types.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2019-12-01 11:56:08 +0000
committergingerBill <bill@gingerbill.org>2019-12-01 11:56:08 +0000
commit7fbe0a6f2385e618ea4d3a724d2ed6147b6921bf (patch)
tree9e032434af0afa47f66a40aac3605ef7f14505d2 /src/types.cpp
parent3fd5c3cd851d8f4dfd441141ca7e96889f069933 (diff)
Fix nil comparisons for soa slices and dynamic arrays
Diffstat (limited to 'src/types.cpp')
-rw-r--r--src/types.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/types.cpp b/src/types.cpp
index 63647dcf3..e5f4f7957 100644
--- a/src/types.cpp
+++ b/src/types.cpp
@@ -1585,6 +1585,13 @@ bool type_has_nil(Type *t) {
case Type_Union:
return !t->Union.no_nil;
case Type_Struct:
+ if (is_type_soa_struct(t)) {
+ switch (t->Struct.soa_kind) {
+ case StructSoa_Fixed: return false;
+ case StructSoa_Slice: return true;
+ case StructSoa_Dynamic: return true;
+ }
+ }
return false;
case Type_Opaque:
return true;