| ... | @@ -22475,7 +22475,10 @@ fn fieldVal( | ... | @@ -22475,7 +22475,10 @@ fn fieldVal( |
| 22475 | } else (try sema.mod.getErrorValue(field_name)).key; | 22475 | } else (try sema.mod.getErrorValue(field_name)).key; |
| 22476 | | 22476 | |
| 22477 | return sema.addConstant( | 22477 | return sema.addConstant( |
| 22478 | try child_type.copy(arena), | 22478 | if (!child_type.isAnyError()) |
| | 22479 | try child_type.copy(arena) |
| | 22480 | else |
| | 22481 | try Type.Tag.error_set_single.create(arena, name), |
| 22479 | try Value.Tag.@"error".create(arena, .{ .name = name }), | 22482 | try Value.Tag.@"error".create(arena, .{ .name = name }), |
| 22480 | ); | 22483 | ); |
| 22481 | }, | 22484 | }, |
| ... | @@ -22686,7 +22689,10 @@ fn fieldPtr( | ... | @@ -22686,7 +22689,10 @@ fn fieldPtr( |
| 22686 | var anon_decl = try block.startAnonDecl(src); | 22689 | var anon_decl = try block.startAnonDecl(src); |
| 22687 | defer anon_decl.deinit(); | 22690 | defer anon_decl.deinit(); |
| 22688 | return sema.analyzeDeclRef(try anon_decl.finish( | 22691 | return sema.analyzeDeclRef(try anon_decl.finish( |
| 22689 | try child_type.copy(anon_decl.arena()), | 22692 | if (!child_type.isAnyError()) |
| | 22693 | try child_type.copy(anon_decl.arena()) |
| | 22694 | else |
| | 22695 | try Type.Tag.error_set_single.create(anon_decl.arena(), name), |
| 22690 | try Value.Tag.@"error".create(anon_decl.arena(), .{ .name = name }), | 22696 | try Value.Tag.@"error".create(anon_decl.arena(), .{ .name = name }), |
| 22691 | 0, // default alignment | 22697 | 0, // default alignment |
| 22692 | )); | 22698 | )); |