| ... | ... | @@ -5471,8 +5471,22 @@ bool const_values_equal(ConstExprValue *a, ConstExprValue *b) { |
| 5471 | 5471 | case TypeTableEntryIdPointer: |
| 5472 | 5472 | case TypeTableEntryIdFn: |
| 5473 | 5473 | return const_values_equal_ptr(a, b); |
| 5474 | | case TypeTableEntryIdArray: |
| 5475 | | zig_panic("TODO"); |
| 5474 | case TypeTableEntryIdArray: { |
| 5475 | assert(a->type->data.array.len == b->type->data.array.len); |
| 5476 | assert(a->data.x_array.special != ConstArraySpecialUndef); |
| 5477 | assert(b->data.x_array.special != ConstArraySpecialUndef); |
| 5478 | |
| 5479 | size_t len = a->type->data.array.len; |
| 5480 | ConstExprValue *a_elems = a->data.x_array.s_none.elements; |
| 5481 | ConstExprValue *b_elems = b->data.x_array.s_none.elements; |
| 5482 | |
| 5483 | for (size_t i = 0; i < len; ++i) { |
| 5484 | if (!const_values_equal(&a_elems[i], &b_elems[i])) |
| 5485 | return false; |
| 5486 | } |
| 5487 | |
| 5488 | return true; |
| 5489 | } |
| 5476 | 5490 | case TypeTableEntryIdStruct: |
| 5477 | 5491 | for (size_t i = 0; i < a->type->data.structure.src_field_count; i += 1) { |
| 5478 | 5492 | ConstExprValue *field_a = &a->data.x_struct.fields[i]; |