add method_substs to CallKind
This commit is contained in:
parent
a969c194d8
commit
4a7d0e9754
2 changed files with 4 additions and 5 deletions
|
@ -1064,7 +1064,7 @@ impl<'cx, 'tcx> MirBorrowckCtxt<'cx, 'tcx> {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CallKind::Normal { self_arg, desugaring, method_did } => {
|
CallKind::Normal { self_arg, desugaring, method_did, method_substs } => {
|
||||||
let self_arg = self_arg.unwrap();
|
let self_arg = self_arg.unwrap();
|
||||||
let tcx = self.infcx.tcx;
|
let tcx = self.infcx.tcx;
|
||||||
if let Some((CallDesugaringKind::ForLoopIntoIter, _)) = desugaring {
|
if let Some((CallDesugaringKind::ForLoopIntoIter, _)) = desugaring {
|
||||||
|
@ -1136,9 +1136,7 @@ impl<'cx, 'tcx> MirBorrowckCtxt<'cx, 'tcx> {
|
||||||
&& let self_ty = infcx.replace_bound_vars_with_fresh_vars(
|
&& let self_ty = infcx.replace_bound_vars_with_fresh_vars(
|
||||||
fn_call_span,
|
fn_call_span,
|
||||||
LateBoundRegionConversionTime::FnCall,
|
LateBoundRegionConversionTime::FnCall,
|
||||||
// FIXME: should use `subst` with the method substs.
|
tcx.fn_sig(method_did).subst(tcx, method_substs).input(0),
|
||||||
// Probably need to add `method_substs` to `CallKind`
|
|
||||||
tcx.fn_sig(method_did).skip_binder().input(0),
|
|
||||||
)
|
)
|
||||||
&& infcx.can_eq(self.param_env, ty, self_ty).is_ok()
|
&& infcx.can_eq(self.param_env, ty, self_ty).is_ok()
|
||||||
{
|
{
|
||||||
|
|
|
@ -40,6 +40,7 @@ pub enum CallKind<'tcx> {
|
||||||
self_arg: Option<Ident>,
|
self_arg: Option<Ident>,
|
||||||
desugaring: Option<(CallDesugaringKind, Ty<'tcx>)>,
|
desugaring: Option<(CallDesugaringKind, Ty<'tcx>)>,
|
||||||
method_did: DefId,
|
method_did: DefId,
|
||||||
|
method_substs: SubstsRef<'tcx>,
|
||||||
},
|
},
|
||||||
/// A call to `Fn(..)::call(..)`, desugared from `my_closure(a, b, c)`
|
/// A call to `Fn(..)::call(..)`, desugared from `my_closure(a, b, c)`
|
||||||
FnCall { fn_trait_id: DefId, self_ty: Ty<'tcx> },
|
FnCall { fn_trait_id: DefId, self_ty: Ty<'tcx> },
|
||||||
|
@ -131,6 +132,6 @@ pub fn call_kind<'tcx>(
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
};
|
};
|
||||||
CallKind::Normal { self_arg, desugaring, method_did }
|
CallKind::Normal { self_arg, desugaring, method_did, method_substs }
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue