| ... | ... | @@ -209,6 +209,7 @@ pub fn classify(start_ty: Type, zcu: *const Zcu) Class { |
| 209 | 209 | const struct_obj = ip.loadStructType(cur_ty.toIntern()); |
| 210 | 210 | switch (struct_obj.layout) { |
| 211 | 211 | .auto, .@"extern" => { |
| 212 | assert(struct_obj.want_layout); |
| 212 | 213 | zcu.assertUpToDate(.wrap(.{ .type_layout = cur_ty.toIntern() })); |
| 213 | 214 | break struct_obj.class; |
| 214 | 215 | }, |
| ... | ... | @@ -222,6 +223,7 @@ pub fn classify(start_ty: Type, zcu: *const Zcu) Class { |
| 222 | 223 | const union_obj = ip.loadUnionType(cur_ty.toIntern()); |
| 223 | 224 | switch (union_obj.layout) { |
| 224 | 225 | .auto, .@"extern" => { |
| 226 | assert(union_obj.want_layout); |
| 225 | 227 | zcu.assertUpToDate(.wrap(.{ .type_layout = cur_ty.toIntern() })); |
| 226 | 228 | break union_obj.class; |
| 227 | 229 | }, |
| ... | ... | @@ -232,8 +234,10 @@ pub fn classify(start_ty: Type, zcu: *const Zcu) Class { |
| 232 | 234 | } |
| 233 | 235 | }, |
| 234 | 236 | .enum_type => { |
| 237 | const enum_obj = ip.loadEnumType(cur_ty.toIntern()); |
| 238 | assert(enum_obj.want_layout); |
| 235 | 239 | zcu.assertUpToDate(.wrap(.{ .type_layout = cur_ty.toIntern() })); |
| 236 | | cur_ty = .fromInterned(ip.loadEnumType(cur_ty.toIntern()).int_tag_type); |
| 240 | cur_ty = .fromInterned(enum_obj.int_tag_type); |
| 237 | 241 | continue; |
| 238 | 242 | }, |
| 239 | 243 | |