File tree Expand file tree Collapse file tree 1 file changed +10
-0
lines changed
Expand file tree Collapse file tree 1 file changed +10
-0
lines changed Original file line number Diff line number Diff line change @@ -29847,6 +29847,11 @@ fn resolveStructLayout(sema: *Sema, ty: Type) CompileError!void {
2984729847 },
2984829848 .have_layout, .fully_resolved_wip, .fully_resolved => return,
2984929849 }
29850+ const prev_status = struct_obj.status;
29851+ errdefer if (struct_obj.status == .layout_wip) {
29852+ struct_obj.status = prev_status;
29853+ };
29854+
2985029855 struct_obj.status = .layout_wip;
2985129856 for (struct_obj.fields.values()) |field, i| {
2985229857 sema.resolveTypeLayout(field.ty) catch |err| switch (err) {
@@ -30026,6 +30031,11 @@ fn resolveUnionLayout(sema: *Sema, ty: Type) CompileError!void {
3002630031 },
3002730032 .have_layout, .fully_resolved_wip, .fully_resolved => return,
3002830033 }
30034+ const prev_status = union_obj.status;
30035+ errdefer if (union_obj.status == .layout_wip) {
30036+ union_obj.status = prev_status;
30037+ };
30038+
3002930039 union_obj.status = .layout_wip;
3003030040 for (union_obj.fields.values()) |field, i| {
3003130041 sema.resolveTypeLayout(field.ty) catch |err| switch (err) {
You can’t perform that action at this time.
0 commit comments