| ... | @@ -38436,12 +38436,6 @@ fn resolveDeclaredEnumInner( | ... | @@ -38436,12 +38436,6 @@ fn resolveDeclaredEnumInner( |
| 38436 | | 38436 | |
| 38437 | wip_ty.setTagTy(ip, int_tag_ty.toIntern()); | 38437 | wip_ty.setTagTy(ip, int_tag_ty.toIntern()); |
| 38438 | | 38438 | |
| 38439 | if (small.nonexhaustive and int_tag_ty.toIntern() != .comptime_int_type) { | | |
| 38440 | if (fields_len > 1 and std.math.log2_int(u64, fields_len) == int_tag_ty.bitSize(zcu)) { | | |
| 38441 | return sema.fail(block, src, "non-exhaustive enum specifies every value", .{}); | | |
| 38442 | } | | |
| 38443 | } | | |
| 38444 | | | |
| 38445 | var extra_index = body_end + bit_bags_count; | 38439 | var extra_index = body_end + bit_bags_count; |
| 38446 | var bit_bag_index: usize = body_end; | 38440 | var bit_bag_index: usize = body_end; |
| 38447 | var cur_bit_bag: u32 = undefined; | 38441 | var cur_bit_bag: u32 = undefined; |
| ... | @@ -38528,6 +38522,11 @@ fn resolveDeclaredEnumInner( | ... | @@ -38528,6 +38522,11 @@ fn resolveDeclaredEnumInner( |
| 38528 | return sema.failWithOwnedErrorMsg(block, msg); | 38522 | return sema.failWithOwnedErrorMsg(block, msg); |
| 38529 | } | 38523 | } |
| 38530 | } | 38524 | } |
| | 38525 | if (small.nonexhaustive and int_tag_ty.toIntern() != .comptime_int_type) { |
| | 38526 | if (fields_len >= 1 and std.math.log2_int(u64, fields_len) == int_tag_ty.bitSize(zcu)) { |
| | 38527 | return sema.fail(block, src, "non-exhaustive enum specifies every value", .{}); |
| | 38528 | } |
| | 38529 | } |
| 38531 | } | 38530 | } |
| 38532 | | 38531 | |
| 38533 | pub const bitCastVal = @import("Sema/bitcast.zig").bitCast; | 38532 | pub const bitCastVal = @import("Sema/bitcast.zig").bitCast; |