summaryrefslogtreecommitdiffstats
path: root/src/test/ui/suggestions/fn-missing-lifetime-in-item.stderr
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/suggestions/fn-missing-lifetime-in-item.stderr')
-rw-r--r--src/test/ui/suggestions/fn-missing-lifetime-in-item.stderr48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/test/ui/suggestions/fn-missing-lifetime-in-item.stderr b/src/test/ui/suggestions/fn-missing-lifetime-in-item.stderr
new file mode 100644
index 000000000..6d7c3d730
--- /dev/null
+++ b/src/test/ui/suggestions/fn-missing-lifetime-in-item.stderr
@@ -0,0 +1,48 @@
+error[E0261]: use of undeclared lifetime name `'a`
+ --> $DIR/fn-missing-lifetime-in-item.rs:1:33
+ |
+LL | struct S1<F: Fn(&i32, &i32) -> &'a i32>(F);
+ | ^^ undeclared lifetime
+ |
+ = note: for more information on higher-ranked polymorphism, visit https://doc.rust-lang.org/nomicon/hrtb.html
+help: consider making the bound lifetime-generic with a new `'a` lifetime
+ |
+LL | struct S1<F: for<'a> Fn(&i32, &i32) -> &'a i32>(F);
+ | +++++++
+help: consider introducing lifetime `'a` here
+ |
+LL | struct S1<'a, F: Fn(&i32, &i32) -> &'a i32>(F);
+ | +++
+
+error[E0106]: missing lifetime specifier
+ --> $DIR/fn-missing-lifetime-in-item.rs:2:32
+ |
+LL | struct S2<F: Fn(&i32, &i32) -> &i32>(F);
+ | ---- ---- ^ expected named lifetime parameter
+ |
+ = help: this function's return type contains a borrowed value, but the signature does not say whether it is borrowed from argument 1 or argument 2
+help: consider making the bound lifetime-generic with a new `'a` lifetime
+ |
+LL | struct S2<F: for<'a> Fn(&'a i32, &'a i32) -> &'a i32>(F);
+ | +++++++ ++ ++ ++
+help: consider introducing a named lifetime parameter
+ |
+LL | struct S2<'a, F: Fn(&'a i32, &'a i32) -> &'a i32>(F);
+ | +++ ++ ++ ++
+
+error[E0582]: binding for associated type `Output` references lifetime `'a`, which does not appear in the trait input types
+ --> $DIR/fn-missing-lifetime-in-item.rs:3:40
+ |
+LL | struct S3<F: for<'a> Fn(&i32, &i32) -> &'a i32>(F);
+ | ^^^^^^^
+
+error[E0582]: binding for associated type `Output` references lifetime `'a`, which does not appear in the trait input types
+ --> $DIR/fn-missing-lifetime-in-item.rs:6:55
+ |
+LL | const C: Option<Box<dyn for<'a> Fn(&usize, &usize) -> &'a usize>> = None;
+ | ^^^^^^^^^
+
+error: aborting due to 4 previous errors
+
+Some errors have detailed explanations: E0106, E0261, E0582.
+For more information about an error, try `rustc --explain E0106`.