| ... | ... | @@ -29385,7 +29385,18 @@ pub fn coerceInMemoryAllowed( |
| 29385 | 29385 | if (dest_ty.structFieldCount(zcu) != src_ty.structFieldCount(zcu)) break :tuple; |
| 29386 | 29386 | const field_count = dest_ty.structFieldCount(zcu); |
| 29387 | 29387 | for (0..field_count) |field_idx| { |
| 29388 | | if (dest_ty.structFieldIsComptime(field_idx, zcu) != src_ty.structFieldIsComptime(field_idx, zcu)) break :tuple; |
| 29388 | const dest_is_comptime = dest_ty.structFieldIsComptime(field_idx, zcu); |
| 29389 | const src_is_comptime = src_ty.structFieldIsComptime(field_idx, zcu); |
| 29390 | if (dest_is_comptime != src_is_comptime) { |
| 29391 | break :tuple; |
| 29392 | } |
| 29393 | if (dest_is_comptime) { |
| 29394 | const dest_comptime_field_val = dest_ty.structFieldDefaultValue(field_idx, zcu).?; |
| 29395 | const src_comptime_field_val = src_ty.structFieldDefaultValue(field_idx, zcu).?; |
| 29396 | if (dest_comptime_field_val.ip_index != src_comptime_field_val.ip_index) { |
| 29397 | break :tuple; |
| 29398 | } |
| 29399 | } |
| 29389 | 29400 | const dest_field_ty = dest_ty.fieldType(field_idx, zcu); |
| 29390 | 29401 | const src_field_ty = src_ty.fieldType(field_idx, zcu); |
| 29391 | 29402 | const field = try sema.coerceInMemoryAllowed(block, dest_field_ty, src_field_ty, dest_is_mut, target, dest_src, src_src, null); |