authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-03-18 11:11:41-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-03-18 11:11:41-04:00
log63a4dbc30d3ef3c7f8a8c6a2ba2087eaab8b830a
tree6e66f9d8108607acb610d0f850eb423567812436
parent1479c28b496e7c1db134b51f23dd2eb934b123bb
signaturelock-open Commit is signed but in an unrecognized format.

array sentinel does not count towards type_has_one_possible_value


1 files changed, 2 insertions(+), 4 deletions(-)

src/analyze.cpp+2-4
...@@ -1447,8 +1447,7 @@ static OnePossibleValue type_val_resolve_has_one_possible_value(CodeGen *g, ZigV...@@ -1447,8 +1447,7 @@ static OnePossibleValue type_val_resolve_has_one_possible_value(CodeGen *g, ZigV
1447 case LazyValueIdArrayType: {1447 case LazyValueIdArrayType: {
1448 LazyValueArrayType *lazy_array_type =1448 LazyValueArrayType *lazy_array_type =
1449 reinterpret_cast<LazyValueArrayType *>(type_val->data.x_lazy);1449 reinterpret_cast<LazyValueArrayType *>(type_val->data.x_lazy);
1450 // The sentinel counts as an extra element1450 if (lazy_array_type->length == 0)
1451 if (lazy_array_type->length == 0 && lazy_array_type->sentinel == nullptr)
1452 return OnePossibleValueYes;1451 return OnePossibleValueYes;
1453 return type_val_resolve_has_one_possible_value(g, lazy_array_type->elem_type->value);1452 return type_val_resolve_has_one_possible_value(g, lazy_array_type->elem_type->value);
1454 }1453 }
...@@ -5735,8 +5734,7 @@ OnePossibleValue type_has_one_possible_value(CodeGen *g, ZigType *type_entry) {...@@ -5735,8 +5734,7 @@ OnePossibleValue type_has_one_possible_value(CodeGen *g, ZigType *type_entry) {
5735 case ZigTypeIdUnreachable:5734 case ZigTypeIdUnreachable:
5736 return OnePossibleValueYes;5735 return OnePossibleValueYes;
5737 case ZigTypeIdArray:5736 case ZigTypeIdArray:
5738 // The sentinel counts as an extra element5737 if (type_entry->data.array.len == 0)
5739 if (type_entry->data.array.len == 0 && type_entry->data.array.sentinel == nullptr)
5740 return OnePossibleValueYes;5738 return OnePossibleValueYes;
5741 return type_has_one_possible_value(g, type_entry->data.array.child_type);5739 return type_has_one_possible_value(g, type_entry->data.array.child_type);
5742 case ZigTypeIdStruct:5740 case ZigTypeIdStruct: