Don't suggest changing `&self` and `&mut self` in function signature to...
source link: https://github.com/rust-lang/rust/pull/112019
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Conversation
Contributor
Current suggestion for when taking a mutable reference to self
in a closure (as an upvar) will produce a machine-applicable suggestion to change the self
in the function signature to mut self
, but does not account for the specialness of implicit self in that it can already have &
and &mut
(see #111554). This causes the function signature to become test(&mut mut self)
which does not seem desirable.
error[E0596]: cannot borrow `self` as mutable, as it is not declared as mutable
--> src/sound_player.rs:870:11
|
869 | pub fn test(&mut self) {
| ---- help: consider changing this to be mutable: `mut self`
870 | || test2(&mut self);
| ^^^^^^^^^ cannot borrow as mutable
This PR suppresses the "changing this to be mutable" suggestion if the implicit self is either ImplicitSelfKind::ImmRef
or ImplicitSelfKind::MutRef
.
Fixes #111554.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK