]> git.lizzy.rs Git - rust.git/blob - tests/ui/suggestions/return-elided-lifetime.rs
Rollup merge of #104965 - zacklukem:p-option-as_ref-docs, r=scottmcm
[rust.git] / tests / 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 specifiers [E0106]
10
11 fn f2(a: i32, b: i32) -> &i32 { loop {} }
12 //~^ ERROR missing lifetime specifier [E0106]
13 fn f2_(a: i32, b: i32) -> (&i32, &i32) { loop {} }
14 //~^ ERROR missing lifetime specifiers [E0106]
15
16 struct S<'a, 'b> { a: &'a i32, b: &'b i32 }
17 fn f3(s: &S) -> &i32 { loop {} }
18 //~^ ERROR missing lifetime specifier [E0106]
19 fn f3_(s: &S, t: &S) -> (&i32, &i32) { loop {} }
20 //~^ ERROR missing lifetime specifiers [E0106]
21
22 fn f4<'a, 'b>(a: &'a i32, b: &'b i32) -> &i32 { loop {} }
23 //~^ ERROR missing lifetime specifier [E0106]
24 fn f4_<'a, 'b>(a: &'a i32, b: &'b i32) -> (&i32, &i32) { loop {} }
25 //~^ ERROR missing lifetime specifiers [E0106]
26
27 fn f5<'a>(a: &'a i32, b: &i32) -> &i32 { loop {} }
28 //~^ ERROR missing lifetime specifier [E0106]
29 fn f5_<'a>(a: &'a i32, b: &i32) -> (&i32, &i32) { loop {} }
30 //~^ ERROR missing lifetime specifiers [E0106]
31
32 fn main() {}