fn annotate_mut_binding_to_immutable_binding<'tcx>(
tcx: TyCtxt<'tcx>,
place: PlaceRef<'tcx>,
body_def_id: LocalDefId,
assignment_span: Span,
body: &Body<'tcx>,
) -> Option<UnusedAssignSuggestion>
Expand description
Detect the following case
fn change_object(mut a: &Ty) {
let a = Ty::new();
b = &a;
}
where the user likely meant to modify the value behind there reference, use a
as an out
parameter, instead of mutating the local binding. When encountering this we suggest:
fn change_object(a: &'_ mut Ty) {
let a = Ty::new();
*b = a;
}