diff options
| author | bors <bors@rust-lang.org> | 2020-12-15 01:56:25 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2020-12-15 01:56:25 +0000 |
| commit | 5d77fc8d0db3b69f3a3691d86eba23e4cdc390e1 (patch) | |
| tree | 00c7ad250b33ea024acc67f5550b34821d978da4 /compiler/rustc_codegen_ssa/src | |
| parent | 8b3ee82eb68cb35030bb745c23f8aa76d9de5bee (diff) | |
| parent | 686237c49aed588bf266e8dece3130b779605109 (diff) | |
| download | rust-5d77fc8d0db3b69f3a3691d86eba23e4cdc390e1.tar.gz rust-5d77fc8d0db3b69f3a3691d86eba23e4cdc390e1.zip | |
Auto merge of #79922 - tmiasko:lower-discriminant, r=nagisa
Lower `discriminant_value` intrinsic This allows const propagation to evaluate comparisons involving field-less enums using derived implementations of `PartialEq` (after inlining `eq`).
Diffstat (limited to 'compiler/rustc_codegen_ssa/src')
| -rw-r--r-- | compiler/rustc_codegen_ssa/src/mir/rvalue.rs | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/compiler/rustc_codegen_ssa/src/mir/rvalue.rs b/compiler/rustc_codegen_ssa/src/mir/rvalue.rs index 2ad470c2693..e3a6cabd600 100644 --- a/compiler/rustc_codegen_ssa/src/mir/rvalue.rs +++ b/compiler/rustc_codegen_ssa/src/mir/rvalue.rs @@ -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); |
