Add comment and remove obsolete special case
This commit is contained in:
parent
f7bf282d9b
commit
b196bec236
2 changed files with 2 additions and 7 deletions
|
@ -1018,6 +1018,7 @@ macro_rules! visit_place_fns {
|
||||||
|
|
||||||
if !place.projection.is_empty() {
|
if !place.projection.is_empty() {
|
||||||
if context.is_use() {
|
if context.is_use() {
|
||||||
|
// ^ Only change the context if it is a real use, not a "use" in debuginfo.
|
||||||
context = if context.is_mutating_use() {
|
context = if context.is_mutating_use() {
|
||||||
PlaceContext::MutatingUse(MutatingUseContext::Projection)
|
PlaceContext::MutatingUse(MutatingUseContext::Projection)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -12,7 +12,7 @@ use rustc_middle::mir::traversal;
|
||||||
use rustc_middle::mir::visit::{PlaceContext, Visitor};
|
use rustc_middle::mir::visit::{PlaceContext, Visitor};
|
||||||
use rustc_middle::mir::{
|
use rustc_middle::mir::{
|
||||||
AggregateKind, BasicBlock, Body, BorrowKind, Local, Location, MirPhase, Operand, PlaceRef,
|
AggregateKind, BasicBlock, Body, BorrowKind, Local, Location, MirPhase, Operand, PlaceRef,
|
||||||
Rvalue, SourceScope, Statement, StatementKind, Terminator, TerminatorKind, VarDebugInfo,
|
Rvalue, SourceScope, Statement, StatementKind, Terminator, TerminatorKind,
|
||||||
};
|
};
|
||||||
use rustc_middle::ty::fold::BottomUpFolder;
|
use rustc_middle::ty::fold::BottomUpFolder;
|
||||||
use rustc_middle::ty::{self, ParamEnv, Ty, TyCtxt, TypeFoldable};
|
use rustc_middle::ty::{self, ParamEnv, Ty, TyCtxt, TypeFoldable};
|
||||||
|
@ -198,12 +198,6 @@ impl<'a, 'tcx> Visitor<'tcx> for TypeChecker<'a, 'tcx> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn visit_var_debug_info(&mut self, var_debug_info: &VarDebugInfo<'tcx>) {
|
|
||||||
// Debuginfo can contain field projections, which count as a use of the base local. Skip
|
|
||||||
// debuginfo so that we avoid the storage liveness assertion in that case.
|
|
||||||
self.visit_source_info(&var_debug_info.source_info);
|
|
||||||
}
|
|
||||||
|
|
||||||
fn visit_operand(&mut self, operand: &Operand<'tcx>, location: Location) {
|
fn visit_operand(&mut self, operand: &Operand<'tcx>, location: Location) {
|
||||||
// This check is somewhat expensive, so only run it when -Zvalidate-mir is passed.
|
// This check is somewhat expensive, so only run it when -Zvalidate-mir is passed.
|
||||||
if self.tcx.sess.opts.debugging_opts.validate_mir {
|
if self.tcx.sess.opts.debugging_opts.validate_mir {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue