]> git.lizzy.rs Git - rust.git/blob - src/test/ui/suggestions/return-elided-lifetime.rs
Rollup merge of #90420 - GuillaumeGomez:rustdoc-internals-feature, r=camelid
[rust.git] / src / test / ui / suggestions / return-elided-lifetime.rs
1 /* Checks all four scenarios possible in report_elision_failure() of
2  * rustc_resolve::late::lifetimes::LifetimeContext related to returning
3  * borrowed values, in various configurations.
4  */
5
6 fn f1() -> &i32 { loop {} }
7 //~^ ERROR missing lifetime specifier [E0106]
8 fn f1_() -> (&i32, &i32) { loop {} }
9 //~^ ERROR missing lifetime specifier [E0106]
10 //~^^ ERROR missing lifetime specifier [E0106]
11
12 fn f2(a: i32, b: i32) -> &i32 { loop {} }
13 //~^ ERROR missing lifetime specifier [E0106]
14 fn f2_(a: i32, b: i32) -> (&i32, &i32) { loop {} }
15 //~^ ERROR missing lifetime specifier [E0106]
16 //~^^ ERROR missing lifetime specifier [E0106]
17
18 struct S<'a, 'b> { a: &'a i32, b: &'b i32 }
19 fn f3(s: &S) -> &i32 { loop {} }
20 //~^ ERROR missing lifetime specifier [E0106]
21 fn f3_(s: &S, t: &S) -> (&i32, &i32) { loop {} }
22 //~^ ERROR missing lifetime specifier [E0106]
23 //~^^ ERROR missing lifetime specifier [E0106]
24
25 fn f4<'a, 'b>(a: &'a i32, b: &'b i32) -> &i32 { loop {} }
26 //~^ ERROR missing lifetime specifier [E0106]
27 fn f4_<'a, 'b>(a: &'a i32, b: &'b i32) -> (&i32, &i32) { loop {} }
28 //~^ ERROR missing lifetime specifier [E0106]
29 //~^^ ERROR missing lifetime specifier [E0106]
30
31 fn f5<'a>(a: &'a i32, b: &i32) -> &i32 { loop {} }
32 //~^ ERROR missing lifetime specifier [E0106]
33 fn f5_<'a>(a: &'a i32, b: &i32) -> (&i32, &i32) { loop {} }
34 //~^ ERROR missing lifetime specifier [E0106]
35 //~^^ ERROR missing lifetime specifier [E0106]
36
37 fn main() {}