diff options
| author | Jonas Schievink <jonasschievink@gmail.com> | 2020-04-19 14:25:07 +0200 |
|---|---|---|
| committer | Jonas Schievink <jonasschievink@gmail.com> | 2020-04-20 21:18:20 +0200 |
| commit | 415fd0cc1a9bb902a2b4a22669debac74373cf67 (patch) | |
| tree | 3966502824089dbe367ffcdc014345803e20d4f9 | |
| parent | 9e6f38ab0d55a80e5c2984aa588cd08e64eac30e (diff) | |
| download | rust-415fd0cc1a9bb902a2b4a22669debac74373cf67.tar.gz rust-415fd0cc1a9bb902a2b4a22669debac74373cf67.zip | |
const prop: don't special case return place
| -rw-r--r-- | src/librustc_mir/transform/const_prop.rs | 14 | ||||
| -rw-r--r-- | src/test/incremental/hashes/enum_constructors.rs | 8 |
2 files changed, 9 insertions, 13 deletions
diff --git a/src/librustc_mir/transform/const_prop.rs b/src/librustc_mir/transform/const_prop.rs index 1a0ac4a21df..39de685b173 100644 --- a/src/librustc_mir/transform/const_prop.rs +++ b/src/librustc_mir/transform/const_prop.rs @@ -409,16 +409,12 @@ impl<'mir, 'tcx> ConstPropagator<'mir, 'tcx> { fn get_const(&self, local: Local) -> Option<OpTy<'tcx>> { let op = self.ecx.access_local(self.ecx.frame(), local, None).ok(); - if local == RETURN_PLACE { - // Try to read the return place as an immediate so that if it is representable as a - // scalar, we can handle it as such, but otherwise, just return the value as is. - return match op.map(|ret| self.ecx.try_read_immediate(ret)) { - Some(Ok(Ok(imm))) => Some(imm.into()), - _ => op, - }; + // Try to read the local as an immediate so that if it is representable as a scalar, we can + // handle it as such, but otherwise, just return the value as is. + match op.map(|ret| self.ecx.try_read_immediate(ret)) { + Some(Ok(Ok(imm))) => Some(imm.into()), + _ => op, } - - op } fn remove_const(&mut self, local: Local) { diff --git a/src/test/incremental/hashes/enum_constructors.rs b/src/test/incremental/hashes/enum_constructors.rs index 99c50f7e173..2c07cbcb205 100644 --- a/src/test/incremental/hashes/enum_constructors.rs +++ b/src/test/incremental/hashes/enum_constructors.rs @@ -274,14 +274,14 @@ pub enum Clike2 { // Change constructor path (C-like) -------------------------------------- #[cfg(cfail1)] pub fn change_constructor_path_c_like() { - let _ = Clike::B; + let _x = Clike::B; } #[cfg(not(cfail1))] #[rustc_clean(cfg="cfail2", except="hir_owner_nodes,optimized_mir,mir_built,typeck_tables_of")] #[rustc_clean(cfg="cfail3")] pub fn change_constructor_path_c_like() { - let _ = Clike2::B; + let _x = Clike2::B; } @@ -289,14 +289,14 @@ pub fn change_constructor_path_c_like() { // Change constructor variant (C-like) -------------------------------------- #[cfg(cfail1)] pub fn change_constructor_variant_c_like() { - let _ = Clike::A; + let _x = Clike::A; } #[cfg(not(cfail1))] #[rustc_clean(cfg="cfail2", except="hir_owner_nodes,optimized_mir,mir_built")] #[rustc_clean(cfg="cfail3")] pub fn change_constructor_variant_c_like() { - let _ = Clike::C; + let _x = Clike::C; } |
