IMHO this cannot be solved since changing function body should never be considered as a major change, and thus fn(&mut T)->&T
cannot be considered as fn(&'short mut T)->&'long T
.
Related discussion: [Discussion] Super borrow, for super let, placement new, and hybrid borrow - #4 by quinedot