Refactor call terminator to always hold a destination place
This commit is contained in:
parent
77d2b10050
commit
0684d62b56
@ -292,7 +292,7 @@ fn is_call_with_ref_arg<'tcx>(
|
|||||||
if let (inner_ty, 1) = walk_ptrs_ty_depth(args[0].ty(&*mir, cx.tcx));
|
if let (inner_ty, 1) = walk_ptrs_ty_depth(args[0].ty(&*mir, cx.tcx));
|
||||||
if !is_copy(cx, inner_ty);
|
if !is_copy(cx, inner_ty);
|
||||||
then {
|
then {
|
||||||
Some((def_id, *local, inner_ty, destination.as_ref().map(|(dest, _)| dest)?.as_local()?))
|
Some((def_id, *local, inner_ty, destination.as_local()?))
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
@ -584,7 +584,7 @@ impl<'a, 'tcx> mir::visit::Visitor<'tcx> for PossibleBorrowerVisitor<'a, 'tcx> {
|
|||||||
fn visit_terminator(&mut self, terminator: &mir::Terminator<'_>, _loc: mir::Location) {
|
fn visit_terminator(&mut self, terminator: &mir::Terminator<'_>, _loc: mir::Location) {
|
||||||
if let mir::TerminatorKind::Call {
|
if let mir::TerminatorKind::Call {
|
||||||
args,
|
args,
|
||||||
destination: Some((mir::Place { local: dest, .. }, _)),
|
destination: mir::Place { local: dest, .. },
|
||||||
..
|
..
|
||||||
} = &terminator.kind
|
} = &terminator.kind
|
||||||
{
|
{
|
||||||
|
@ -301,6 +301,7 @@ fn check_terminator<'a, 'tcx>(
|
|||||||
args,
|
args,
|
||||||
from_hir_call: _,
|
from_hir_call: _,
|
||||||
destination: _,
|
destination: _,
|
||||||
|
target: _,
|
||||||
cleanup: _,
|
cleanup: _,
|
||||||
fn_span: _,
|
fn_span: _,
|
||||||
} => {
|
} => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user