authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-01-28 11:52:48-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-01-28 11:52:48-05:00
log5c55a9b4e8d6d1f5ee3548cf8033e7e69951b308
treeb7a1bf0e13822ff8faa5d34718376cc0c8478bd9
parent287d3c37e1f53b6f0a0b29753b68254001194e62
signature Commit is signed but in an unrecognized format.

fix compile error regression with struct containing itself


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

src/analyze.cpp+4
......@@ -5641,6 +5641,8 @@ OnePossibleValue type_has_one_possible_value(CodeGen *g, ZigType *type_entry) {
56415641 return OnePossibleValueYes;
56425642 return type_has_one_possible_value(g, type_entry->data.array.child_type);
56435643 case ZigTypeIdStruct:
5644 // If the recursive function call asks, then we are not one possible value.
5645 type_entry->one_possible_value = OnePossibleValueNo;
56445646 for (size_t i = 0; i < type_entry->data.structure.src_field_count; i += 1) {
56455647 TypeStructField *field = type_entry->data.structure.fields[i];
56465648 OnePossibleValue opv = (field->type_entry != nullptr) ?
......@@ -5648,6 +5650,7 @@ OnePossibleValue type_has_one_possible_value(CodeGen *g, ZigType *type_entry) {
56485650 type_val_resolve_has_one_possible_value(g, field->type_val);
56495651 switch (opv) {
56505652 case OnePossibleValueInvalid:
5653 type_entry->one_possible_value = OnePossibleValueInvalid;
56515654 return OnePossibleValueInvalid;
56525655 case OnePossibleValueNo:
56535656 return OnePossibleValueNo;
......@@ -5655,6 +5658,7 @@ OnePossibleValue type_has_one_possible_value(CodeGen *g, ZigType *type_entry) {
56555658 continue;
56565659 }
56575660 }
5661 type_entry->one_possible_value = OnePossibleValueYes;
56585662 return OnePossibleValueYes;
56595663 case ZigTypeIdErrorSet:
56605664 case ZigTypeIdEnum: