auto_strong

Function auto_strong 

Source
pub fn auto_strong(
    genv: GlobalEnv<'_, '_>,
    def_id: impl IntoQueryParam<DefId>,
    fn_sig: PolyFnSig,
) -> PolyFnSig
Expand description

The auto_strong function transforms function signatures by automatically converting mutable reference parameters into strong references with associated ensures clauses. This transformation is applied only when the function signature does not already contain region variables in its return type.

Specifically, given a source function of type

fn (x: &mut InnerTy) -> bool

By default the above gives us an rty::FnSig

forall<>. fn (x: &mut InnerTy) -> bool

Which this function then transforms to

forall<l0: Loc>. fn (x: &strg<l0:InnerTy>) -> bool ensures l0:InnerTy