diff options
| author | Jannis Christopher Köhl <mail@koehl.dev> | 2022-10-23 15:31:46 +0200 |
|---|---|---|
| committer | Jannis Christopher Köhl <mail@koehl.dev> | 2022-11-07 10:35:25 +0100 |
| commit | efc7ca8c7d7db6a14b04e9931c75ee3e61ca718f (patch) | |
| tree | 12fdd4bf8dbf50434a673ef5d0b60b0da451906d | |
| parent | de69d088a46e8f9a70e2ac4b3477211fbaa01580 (diff) | |
| download | rust-efc7ca8c7d7db6a14b04e9931c75ee3e61ca718f.tar.gz rust-efc7ca8c7d7db6a14b04e9931c75ee3e61ca718f.zip | |
Use ParamEnv consistently
| -rw-r--r-- | compiler/rustc_mir_transform/src/dataflow_const_prop.rs | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/compiler/rustc_mir_transform/src/dataflow_const_prop.rs b/compiler/rustc_mir_transform/src/dataflow_const_prop.rs index 8cb1a9dc4a1..aae7fefd112 100644 --- a/compiler/rustc_mir_transform/src/dataflow_const_prop.rs +++ b/compiler/rustc_mir_transform/src/dataflow_const_prop.rs @@ -217,11 +217,12 @@ impl<'tcx> std::fmt::Debug for ScalarTy<'tcx> { impl<'tcx> ConstAnalysis<'tcx> { pub fn new(tcx: TyCtxt<'tcx>, body: &Body<'tcx>, map: Map) -> Self { + let param_env = tcx.param_env(body.source.def_id()); Self { map, tcx, - ecx: InterpCx::new(tcx, DUMMY_SP, ty::ParamEnv::empty(), DummyMachine), - param_env: tcx.param_env(body.source.def_id()), + ecx: InterpCx::new(tcx, DUMMY_SP, param_env, DummyMachine), + param_env: param_env, } } @@ -260,13 +261,11 @@ impl<'tcx> ConstAnalysis<'tcx> { }; match value { FlatSet::Top => FlatSet::Top, - FlatSet::Elem(ScalarTy(scalar, ty)) => { - let layout = self - .tcx - .layout_of(ty::ParamEnv::empty().and(ty)) - .expect("this should not happen"); // FIXME - FlatSet::Elem(ImmTy::from_scalar(scalar, layout)) - } + FlatSet::Elem(ScalarTy(scalar, ty)) => self + .tcx + .layout_of(self.param_env.and(ty)) + .map(|layout| FlatSet::Elem(ImmTy::from_scalar(scalar, layout))) + .unwrap_or(FlatSet::Top), FlatSet::Bottom => FlatSet::Bottom, } } |
