diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2023-06-06 12:00:33 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-06-06 12:00:33 +0200 |
| commit | 21e7463bf8eb45cc8d9d9e4e111e64061da0d16a (patch) | |
| tree | 31a0a7ed3b15f9496ab08c1a0afe66a88578c099 /compiler/rustc_interface/src/errors.rs | |
| parent | 29871d5480c887abdaf4b8b2b925a9e4aee7b521 (diff) | |
| parent | 57e67e4ab21b466158a3e7eeaf598baefc18ad72 (diff) | |
| download | rust-21e7463bf8eb45cc8d9d9e4e111e64061da0d16a.tar.gz rust-21e7463bf8eb45cc8d9d9e4e111e64061da0d16a.zip | |
Rollup merge of #112019 - jieyouxu:issue-111554, r=compiler-errors
Don't suggest changing `&self` and `&mut self` in function signature to be mutable when taking `&mut self` in closure
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.
Diffstat (limited to 'compiler/rustc_interface/src/errors.rs')
0 files changed, 0 insertions, 0 deletions
