Fix issue 90038
This commit is contained in:
parent
06221e1b8b
commit
b68ede6a70
2 changed files with 22 additions and 1 deletions
|
|
@ -1117,7 +1117,7 @@ impl Niche {
|
|||
// In practice this means that enums with `count > 1` are unlikely to claim niche zero, since they have to fit perfectly.
|
||||
// If niche zero is already reserved, the selection of bounds are of little interest.
|
||||
let move_start = |v: WrappingRange| {
|
||||
let start = v.start.wrapping_sub(1) & max_value;
|
||||
let start = v.start.wrapping_sub(count) & max_value;
|
||||
Some((start, Scalar { value, valid_range: v.with_start(start) }))
|
||||
};
|
||||
let move_end = |v: WrappingRange| {
|
||||
|
|
|
|||
21
src/test/ui/enum-discriminant/issue-90038.rs
Normal file
21
src/test/ui/enum-discriminant/issue-90038.rs
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
// run-pass
|
||||
|
||||
#[repr(u32)]
|
||||
pub enum Foo {
|
||||
// Greater than or equal to 2
|
||||
A = 2,
|
||||
}
|
||||
|
||||
pub enum Bar {
|
||||
A(Foo),
|
||||
// More than two const variants
|
||||
B,
|
||||
C,
|
||||
}
|
||||
|
||||
fn main() {
|
||||
match Bar::A(Foo::A) {
|
||||
Bar::A(_) => (),
|
||||
_ => unreachable!(),
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue