mir::Local is Copy we can pass it by value in these cases

上级 865b44a3
......@@ -888,7 +888,7 @@ fn process_projection_elem(
() => (
fn visit_projection(
&mut self,
local: &Local,
local: Local,
projection: &[PlaceElem<'tcx>],
context: PlaceContext,
location: Location,
......@@ -898,7 +898,7 @@ fn visit_projection(
fn visit_projection_elem(
&mut self,
local: &Local,
local: Local,
proj_base: &[PlaceElem<'tcx>],
elem: &PlaceElem<'tcx>,
context: PlaceContext,
......@@ -925,7 +925,7 @@ fn super_place(
self.visit_place_base(&place.local, context, location);
self.visit_projection(&place.local,
self.visit_projection(place.local,
&place.projection,
context,
location);
......@@ -933,7 +933,7 @@ fn super_place(
fn super_projection(
&mut self,
local: &Local,
local: Local,
projection: &[PlaceElem<'tcx>],
context: PlaceContext,
location: Location,
......@@ -947,7 +947,7 @@ fn super_projection(
fn super_projection_elem(
&mut self,
_local: &Local,
_local: Local,
_proj_base: &[PlaceElem<'tcx>],
elem: &PlaceElem<'tcx>,
_context: PlaceContext,
......
......@@ -203,7 +203,7 @@ fn process_place(
}
self.visit_place_base(&place_ref.local, context, location);
self.visit_projection(&place_ref.local, place_ref.projection, context, location);
self.visit_projection(place_ref.local, place_ref.projection, context, location);
}
}
}
......
......@@ -276,7 +276,7 @@ fn visit_rvalue(&mut self, rvalue: &Rvalue<'tcx>, location: Location) {
}
};
self.visit_place_base(&place.local, ctx, location);
self.visit_projection(&place.local, reborrowed_proj, ctx, location);
self.visit_projection(place.local, reborrowed_proj, ctx, location);
return;
}
}
......@@ -289,7 +289,7 @@ fn visit_rvalue(&mut self, rvalue: &Rvalue<'tcx>, location: Location) {
Mutability::Mut => PlaceContext::MutatingUse(MutatingUseContext::AddressOf),
};
self.visit_place_base(&place.local, ctx, location);
self.visit_projection(&place.local, reborrowed_proj, ctx, location);
self.visit_projection(place.local, reborrowed_proj, ctx, location);
return;
}
}
......@@ -408,7 +408,7 @@ fn visit_operand(&mut self, op: &Operand<'tcx>, location: Location) {
}
fn visit_projection_elem(
&mut self,
place_local: &Local,
place_local: Local,
proj_base: &[PlaceElem<'tcx>],
elem: &PlaceElem<'tcx>,
context: PlaceContext,
......@@ -428,11 +428,11 @@ fn visit_projection_elem(
match elem {
ProjectionElem::Deref => {
let base_ty = Place::ty_from(*place_local, proj_base, *self.body, self.tcx).ty;
let base_ty = Place::ty_from(place_local, proj_base, *self.body, self.tcx).ty;
if let ty::RawPtr(_) = base_ty.kind {
if proj_base.is_empty() {
if let (local, []) = (place_local, proj_base) {
let decl = &self.body.local_decls[*local];
let decl = &self.body.local_decls[local];
if let LocalInfo::StaticRef { def_id, .. } = decl.local_info {
let span = decl.source_info.span;
self.check_static(def_id, span);
......@@ -452,7 +452,7 @@ fn visit_projection_elem(
| ProjectionElem::Subslice { .. }
| ProjectionElem::Field(..)
| ProjectionElem::Index(_) => {
let base_ty = Place::ty_from(*place_local, proj_base, *self.body, self.tcx).ty;
let base_ty = Place::ty_from(place_local, proj_base, *self.body, self.tcx).ty;
match base_ty.ty_adt_def() {
Some(def) if def.is_union() => {
self.check_op(ops::UnionAccess);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册