summaryrefslogtreecommitdiffstats
path: root/src/test/ui/borrowck/suggest-as-ref-on-mut-closure.stderr
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/borrowck/suggest-as-ref-on-mut-closure.stderr')
-rw-r--r--src/test/ui/borrowck/suggest-as-ref-on-mut-closure.stderr31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/test/ui/borrowck/suggest-as-ref-on-mut-closure.stderr b/src/test/ui/borrowck/suggest-as-ref-on-mut-closure.stderr
new file mode 100644
index 000000000..af26169c8
--- /dev/null
+++ b/src/test/ui/borrowck/suggest-as-ref-on-mut-closure.stderr
@@ -0,0 +1,31 @@
+error[E0507]: cannot move out of `*cb` which is behind a mutable reference
+ --> $DIR/suggest-as-ref-on-mut-closure.rs:7:5
+ |
+LL | cb.map(|cb| cb());
+ | ^^^--------------
+ | | |
+ | | `*cb` moved due to this method call
+ | move occurs because `*cb` has type `Option<&mut dyn FnMut()>`, which does not implement the `Copy` trait
+ |
+note: this function takes ownership of the receiver `self`, which moves `*cb`
+ --> $SRC_DIR/core/src/option.rs:LL:COL
+ |
+LL | pub const fn map<U, F>(self, f: F) -> Option<U>
+ | ^^^^
+help: consider calling `.as_ref()` to borrow the type's contents
+ |
+LL | cb.as_ref().map(|cb| cb());
+ | +++++++++
+
+error[E0596]: cannot borrow `*cb` as mutable, as it is behind a `&` reference
+ --> $DIR/suggest-as-ref-on-mut-closure.rs:12:26
+ |
+LL | cb.as_ref().map(|cb| cb());
+ | -- ^^ `cb` is a `&` reference, so the data it refers to cannot be borrowed as mutable
+ | |
+ | consider changing this binding's type to be: `&mut &mut dyn FnMut()`
+
+error: aborting due to 2 previous errors
+
+Some errors have detailed explanations: E0507, E0596.
+For more information about an error, try `rustc --explain E0507`.