Use the actual discriminant instead of always choosing the dataful variant
This commit is contained in:
parent
6b3202a2bf
commit
422efd793b
2 changed files with 11 additions and 2 deletions
|
|
@ -878,8 +878,10 @@ impl<'a, 'tcx> PatternContext<'a, 'tcx> {
|
|||
);
|
||||
})
|
||||
}
|
||||
ty::layout::Variants::NicheFilling { dataful_variant, .. } =>
|
||||
dataful_variant,
|
||||
ty::layout::Variants::NicheFilling { .. } => {
|
||||
assert_eq!(discr_val as usize as u128, discr_val);
|
||||
discr_val as usize
|
||||
},
|
||||
};
|
||||
let subpatterns = adt_subpatterns(
|
||||
adt_def.variants[variant_index].fields.len(),
|
||||
|
|
|
|||
|
|
@ -94,6 +94,13 @@ fn issue_14576() {
|
|||
const F : C = C::D;
|
||||
|
||||
assert_eq!(match C::D { F => 1, _ => 2, }, 1);
|
||||
|
||||
// test gaps
|
||||
#[derive(PartialEq, Eq)]
|
||||
enum G { H = 3, I = 5 }
|
||||
const K : G = G::I;
|
||||
|
||||
assert_eq!(match G::I { K => 1, _ => 2, }, 1);
|
||||
}
|
||||
|
||||
fn issue_13731() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue