diff options
| author | bors <bors@rust-lang.org> | 2024-08-06 22:12:39 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2024-08-06 22:12:39 +0000 |
| commit | 0ddead30f02a855b794bb31b7356f228bd30aa99 (patch) | |
| tree | a4c566a918fc5dbc13d0cf4aaae1a2fc4dd71467 /compiler/rustc_const_eval/src | |
| parent | 60d146580c10036ce89e019422c6bc2fd9729b65 (diff) | |
| parent | 47a2f14e49ad5b2daa3d6378de228112eb54ffe4 (diff) | |
Auto merge of #128748 - matthiaskrgr:rollup-dzvi5f7, r=matthiaskrgr
Rollup of 7 pull requests Successful merges: - #128369 (rustc_lint: make `let-underscore-lock` translatable) - #128377 (Fix ICE Caused by Incorrectly Delaying E0107) - #128517 (Fallback to string formatting if source is not available for lint) - #128685 (Remove the root Cargo.lock from the rust-src component) - #128693 (rustdoc-search: account for numeric disambiguators on impls) - #128720 (Pass the right `ParamEnv` to `might_permit_raw_init_strict`) - #128736 (Fix rustdoc missing handling of remap-path-prefix option) r? `@ghost` `@rustbot` modify labels: rollup
Diffstat (limited to 'compiler/rustc_const_eval/src')
| -rw-r--r-- | compiler/rustc_const_eval/src/util/check_validity_requirement.rs | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/compiler/rustc_const_eval/src/util/check_validity_requirement.rs b/compiler/rustc_const_eval/src/util/check_validity_requirement.rs index 4b6b1e453b8..cbd1fdeea2a 100644 --- a/compiler/rustc_const_eval/src/util/check_validity_requirement.rs +++ b/compiler/rustc_const_eval/src/util/check_validity_requirement.rs @@ -1,6 +1,6 @@ use rustc_middle::bug; use rustc_middle::ty::layout::{LayoutCx, LayoutError, LayoutOf, TyAndLayout, ValidityRequirement}; -use rustc_middle::ty::{ParamEnv, ParamEnvAnd, Ty, TyCtxt}; +use rustc_middle::ty::{ParamEnvAnd, Ty, TyCtxt}; use rustc_target::abi::{Abi, FieldsShape, Scalar, Variants}; use crate::const_eval::{CanAccessMutGlobal, CheckAlignment, CompileTimeMachine}; @@ -30,10 +30,10 @@ pub fn check_validity_requirement<'tcx>( return Ok(!layout.abi.is_uninhabited()); } + let layout_cx = LayoutCx { tcx, param_env: param_env_and_ty.param_env }; if kind == ValidityRequirement::Uninit || tcx.sess.opts.unstable_opts.strict_init_checks { - might_permit_raw_init_strict(layout, tcx, kind) + might_permit_raw_init_strict(layout, &layout_cx, kind) } else { - let layout_cx = LayoutCx { tcx, param_env: param_env_and_ty.param_env }; might_permit_raw_init_lax(layout, &layout_cx, kind) } } @@ -42,12 +42,12 @@ pub fn check_validity_requirement<'tcx>( /// details. fn might_permit_raw_init_strict<'tcx>( ty: TyAndLayout<'tcx>, - tcx: TyCtxt<'tcx>, + cx: &LayoutCx<'tcx, TyCtxt<'tcx>>, kind: ValidityRequirement, ) -> Result<bool, &'tcx LayoutError<'tcx>> { let machine = CompileTimeMachine::new(CanAccessMutGlobal::No, CheckAlignment::Error); - let mut cx = InterpCx::new(tcx, rustc_span::DUMMY_SP, ParamEnv::reveal_all(), machine); + let mut cx = InterpCx::new(cx.tcx, rustc_span::DUMMY_SP, cx.param_env, machine); let allocated = cx .allocate(ty, MemoryKind::Machine(crate::const_eval::MemoryKind::Heap)) |
