]>
Commit | Line | Data |
---|---|---|
064997fb FG |
1 | error[E0507]: cannot move out of `*cb` which is behind a mutable reference |
2 | --> $DIR/suggest-as-ref-on-mut-closure.rs:7:5 | |
3 | | | |
4 | LL | cb.map(|cb| cb()); | |
5 | | ^^^-------------- | |
6 | | | | | |
7 | | | `*cb` moved due to this method call | |
f2b60f7d | 8 | | help: consider calling `.as_ref()` or `.as_mut()` to borrow the type's contents |
064997fb FG |
9 | | move occurs because `*cb` has type `Option<&mut dyn FnMut()>`, which does not implement the `Copy` trait |
10 | | | |
11 | note: this function takes ownership of the receiver `self`, which moves `*cb` | |
12 | --> $SRC_DIR/core/src/option.rs:LL:COL | |
13 | | | |
14 | LL | pub const fn map<U, F>(self, f: F) -> Option<U> | |
15 | | ^^^^ | |
064997fb FG |
16 | |
17 | error[E0596]: cannot borrow `*cb` as mutable, as it is behind a `&` reference | |
18 | --> $DIR/suggest-as-ref-on-mut-closure.rs:12:26 | |
19 | | | |
20 | LL | cb.as_ref().map(|cb| cb()); | |
21 | | -- ^^ `cb` is a `&` reference, so the data it refers to cannot be borrowed as mutable | |
22 | | | | |
23 | | consider changing this binding's type to be: `&mut &mut dyn FnMut()` | |
24 | ||
25 | error: aborting due to 2 previous errors | |
26 | ||
27 | Some errors have detailed explanations: E0507, E0596. | |
28 | For more information about an error, try `rustc --explain E0507`. |