fn unfold_local_ptrs(
infcx: &mut InferCtxt<'_, '_, '_>,
env: &mut TypeEnv<'_>,
fn_sig: &EarlyBinder<PolyFnSig>,
actuals: &[Ty],
) -> InferResult<Vec<Ty>>
Expand description
Temporarily (around a function call) convert an &mut
to an &strg
to allow for the call to be
checked. This is done by unfolding the &mut
into a local pointer at the call-site and then
folding the pointer back into the &mut
upon return.
See also fold_local_ptrs
.
unpack(T) = T'
---------------------------------------[local-unfold]
Γ ; &mut T => Γ, l:[<: T] T' ; ptr(l)