Use the actual discriminant instead of always choosing the dataful variant

This commit is contained in:
Oliver Schneider 2018-03-27 17:19:41 +02:00
parent 6b3202a2bf
commit 422efd793b
No known key found for this signature in database
GPG key ID: 1D5CB4FC597C3004
2 changed files with 11 additions and 2 deletions

View file

@ -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(),

View file

@ -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() {