Lower discriminant_value
intrinsic
This allows const propagation to evaluate comparisons involving field-less enums using derived implementations of `PartialEq` (after inlining `eq`).
This commit is contained in:
parent
d32c320d7e
commit
686237c49a
5 changed files with 191 additions and 6 deletions
|
@ -489,6 +489,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
|
|||
|
||||
mir::Rvalue::Discriminant(ref place) => {
|
||||
let discr_ty = rvalue.ty(self.mir, bx.tcx());
|
||||
let discr_ty = self.monomorphize(discr_ty);
|
||||
let discr = self
|
||||
.codegen_place(&mut bx, place.as_ref())
|
||||
.codegen_get_discr(&mut bx, discr_ty);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue