]>
Commit | Line | Data |
---|---|---|
17df50a5 XL |
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 {} } | |
064997fb | 9 | //~^ ERROR missing lifetime specifiers [E0106] |
17df50a5 XL |
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 {} } | |
064997fb | 14 | //~^ ERROR missing lifetime specifiers [E0106] |
17df50a5 XL |
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 {} } | |
064997fb | 20 | //~^ ERROR missing lifetime specifiers [E0106] |
17df50a5 XL |
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 {} } | |
064997fb | 25 | //~^ ERROR missing lifetime specifiers [E0106] |
17df50a5 XL |
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 {} } | |
064997fb | 30 | //~^ ERROR missing lifetime specifiers [E0106] |
17df50a5 XL |
31 | |
32 | fn main() {} |