diff options
| author | bors <bors@rust-lang.org> | 2020-10-28 01:40:06 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2020-10-28 01:40:06 +0000 |
| commit | db241bb0c8d257e13c1560f6250e49879477039e (patch) | |
| tree | 492166fee5d39e53e20b60e1779a818691c43b31 /compiler/rustc_mir/src/transform | |
| parent | 90e6d0d46bae511aecea04ac5eeb3c387f0c04f4 (diff) | |
| parent | 6967005e6e626f4ff62f53b971c00e6e12d2e618 (diff) | |
| download | rust-db241bb0c8d257e13c1560f6250e49879477039e.tar.gz rust-db241bb0c8d257e13c1560f6250e49879477039e.zip | |
Auto merge of #78458 - Dylan-DPC:rollup-tan044s, r=Dylan-DPC
Rollup of 10 pull requests Successful merges: - #78152 (Separate unsized locals) - #78297 (Suggest calling await on method call and field access) - #78351 (Move "mutable thing in const" check from interning to validity) - #78365 (check object safety of generic constants) - #78379 (Tweak invalid `fn` header and body parsing) - #78391 (Add const_fn in generics test) - #78401 (resolve: private fields in tuple struct ctor diag) - #78408 (Remove tokens from foreign items in `TokenStripper`) - #78447 (Fix typo in comment) - #78453 (Fix typo in comments) Failed merges: r? `@ghost`
Diffstat (limited to 'compiler/rustc_mir/src/transform')
| -rw-r--r-- | compiler/rustc_mir/src/transform/const_prop.rs | 11 | ||||
| -rw-r--r-- | compiler/rustc_mir/src/transform/promote_consts.rs | 3 |
2 files changed, 7 insertions, 7 deletions
diff --git a/compiler/rustc_mir/src/transform/const_prop.rs b/compiler/rustc_mir/src/transform/const_prop.rs index c743104f6ba..d47e549b7be 100644 --- a/compiler/rustc_mir/src/transform/const_prop.rs +++ b/compiler/rustc_mir/src/transform/const_prop.rs @@ -9,7 +9,6 @@ use rustc_hir::def::DefKind; use rustc_hir::HirId; use rustc_index::bit_set::BitSet; use rustc_index::vec::IndexVec; -use rustc_middle::mir::interpret::{InterpResult, Scalar}; use rustc_middle::mir::visit::{ MutVisitor, MutatingUseContext, NonMutatingUseContext, PlaceContext, Visitor, }; @@ -28,9 +27,10 @@ use rustc_trait_selection::traits; use crate::const_eval::ConstEvalErr; use crate::interpret::{ - self, compile_time_machine, truncate, AllocId, Allocation, ConstValue, Frame, ImmTy, Immediate, - InterpCx, LocalState, LocalValue, MemPlace, Memory, MemoryKind, OpTy, Operand as InterpOperand, - PlaceTy, Pointer, ScalarMaybeUninit, StackPopCleanup, + self, compile_time_machine, truncate, AllocId, Allocation, ConstValue, CtfeValidationMode, + Frame, ImmTy, Immediate, InterpCx, InterpResult, LocalState, LocalValue, MemPlace, Memory, + MemoryKind, OpTy, Operand as InterpOperand, PlaceTy, Pointer, Scalar, ScalarMaybeUninit, + StackPopCleanup, }; use crate::transform::MirPass; @@ -805,8 +805,9 @@ impl<'mir, 'tcx> ConstPropagator<'mir, 'tcx> { value, vec![], // FIXME: is ref tracking too expensive? + // FIXME: what is the point of ref tracking if we do not even check the tracked refs? &mut interpret::RefTracking::empty(), - /*may_ref_to_static*/ true, + CtfeValidationMode::Regular, ) { trace!("validation error, attempt failed: {:?}", e); return; diff --git a/compiler/rustc_mir/src/transform/promote_consts.rs b/compiler/rustc_mir/src/transform/promote_consts.rs index 292380d7fec..927aae82a36 100644 --- a/compiler/rustc_mir/src/transform/promote_consts.rs +++ b/compiler/rustc_mir/src/transform/promote_consts.rs @@ -1170,7 +1170,7 @@ pub fn promote_candidates<'tcx>( let mut scope = body.source_scopes[candidate.source_info(body).scope].clone(); scope.parent_scope = None; - let mut promoted = Body::new( + let promoted = Body::new( body.source, // `promoted` gets filled in below IndexVec::new(), IndexVec::from_elem_n(scope, 1), @@ -1181,7 +1181,6 @@ pub fn promote_candidates<'tcx>( body.span, body.generator_kind, ); - promoted.ignore_interior_mut_in_const_validation = true; let promoter = Promoter { promoted, |
