| ... | ... | @@ -5041,6 +5041,8 @@ fn zirValidatePtrArrayInit( |
| 5041 | 5041 | // Determine whether the value stored to this pointer is comptime-known. |
| 5042 | 5042 | |
| 5043 | 5043 | if (array_ty.isTuple(mod)) { |
| 5044 | if (array_ty.structFieldIsComptime(i, mod)) |
| 5045 | try sema.resolveStructFieldInits(array_ty); |
| 5044 | 5046 | if (try array_ty.structFieldValueComptime(mod, i)) |opv| { |
| 5045 | 5047 | element_vals[i] = opv.toIntern(); |
| 5046 | 5048 | continue; |
| ... | ... | @@ -27059,6 +27061,8 @@ fn tupleFieldValByIndex( |
| 27059 | 27061 | const mod = sema.mod; |
| 27060 | 27062 | const field_ty = tuple_ty.structFieldType(field_index, mod); |
| 27061 | 27063 | |
| 27064 | if (tuple_ty.structFieldIsComptime(field_index, mod)) |
| 27065 | try sema.resolveStructFieldInits(tuple_ty); |
| 27062 | 27066 | if (try tuple_ty.structFieldValueComptime(mod, field_index)) |default_value| { |
| 27063 | 27067 | return Air.internedToRef(default_value.toIntern()); |
| 27064 | 27068 | } |
| ... | ... | @@ -27078,10 +27082,6 @@ fn tupleFieldValByIndex( |
| 27078 | 27082 | }; |
| 27079 | 27083 | } |
| 27080 | 27084 | |
| 27081 | | if (try tuple_ty.structFieldValueComptime(mod, field_index)) |default_val| { |
| 27082 | | return Air.internedToRef(default_val.toIntern()); |
| 27083 | | } |
| 27084 | | |
| 27085 | 27085 | try sema.requireRuntimeBlock(block, src, null); |
| 27086 | 27086 | try sema.resolveTypeLayout(field_ty); |
| 27087 | 27087 | return block.addStructFieldVal(tuple_byval, field_index, field_ty); |
| ... | ... | @@ -27506,6 +27506,8 @@ fn tupleFieldPtr( |
| 27506 | 27506 | }, |
| 27507 | 27507 | }); |
| 27508 | 27508 | |
| 27509 | if (tuple_ty.structFieldIsComptime(field_index, mod)) |
| 27510 | try sema.resolveStructFieldInits(tuple_ty); |
| 27509 | 27511 | if (try tuple_ty.structFieldValueComptime(mod, field_index)) |default_val| { |
| 27510 | 27512 | return Air.internedToRef((try mod.intern(.{ .ptr = .{ |
| 27511 | 27513 | .ty = ptr_field_ty.toIntern(), |
| ... | ... | @@ -27556,6 +27558,8 @@ fn tupleField( |
| 27556 | 27558 | |
| 27557 | 27559 | const field_ty = tuple_ty.structFieldType(field_index, mod); |
| 27558 | 27560 | |
| 27561 | if (tuple_ty.structFieldIsComptime(field_index, mod)) |
| 27562 | try sema.resolveStructFieldInits(tuple_ty); |
| 27559 | 27563 | if (try tuple_ty.structFieldValueComptime(mod, field_index)) |default_value| { |
| 27560 | 27564 | return Air.internedToRef(default_value.toIntern()); // comptime field |
| 27561 | 27565 | } |