summaryrefslogtreecommitdiffstats
path: root/tests/ui/closures/closure-reform-bad.stderr
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/closures/closure-reform-bad.stderr')
-rw-r--r--tests/ui/closures/closure-reform-bad.stderr26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/ui/closures/closure-reform-bad.stderr b/tests/ui/closures/closure-reform-bad.stderr
new file mode 100644
index 000000000..4c40f70b9
--- /dev/null
+++ b/tests/ui/closures/closure-reform-bad.stderr
@@ -0,0 +1,26 @@
+error[E0308]: mismatched types
+ --> $DIR/closure-reform-bad.rs:11:15
+ |
+LL | let f = |s: &str| println!("{}{}", s, string);
+ | --------- the found closure
+LL | call_bare(f)
+ | --------- ^ expected fn pointer, found closure
+ | |
+ | arguments to this function are incorrect
+ |
+ = note: expected fn pointer `for<'a> fn(&'a str)`
+ found closure `[closure@$DIR/closure-reform-bad.rs:10:13: 10:22]`
+note: closures can only be coerced to `fn` types if they do not capture any variables
+ --> $DIR/closure-reform-bad.rs:10:43
+ |
+LL | let f = |s: &str| println!("{}{}", s, string);
+ | ^^^^^^ `string` captured here
+note: function defined here
+ --> $DIR/closure-reform-bad.rs:4:4
+ |
+LL | fn call_bare(f: fn(&str)) {
+ | ^^^^^^^^^ -----------
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.