]> git.lizzy.rs Git - rust.git/blob - src/test/ui/feature-gates/feature-gate-in_band_lifetimes.rs
Auto merge of #94130 - erikdesjardins:partially, r=nikic
[rust.git] / src / test / ui / feature-gates / feature-gate-in_band_lifetimes.rs
1 #![allow(warnings)]
2
3 fn foo(x: &'x u8) -> &'x u8 { x }
4 //~^ ERROR use of undeclared lifetime name
5 //~^^ ERROR use of undeclared lifetime name
6
7 struct X<'a>(&'a u8);
8
9 impl<'a> X<'a> {
10     fn inner(&self) -> &'a u8 {
11         self.0
12     }
13 }
14
15 impl<'a> X<'b> {
16 //~^ ERROR use of undeclared lifetime name
17     fn inner_2(&self) -> &'b u8 {
18     //~^ ERROR use of undeclared lifetime name
19         self.0
20     }
21 }
22
23 impl X<'b> {
24 //~^ ERROR use of undeclared lifetime name
25     fn inner_3(&self) -> &'b u8 {
26     //~^ ERROR use of undeclared lifetime name
27         self.0
28     }
29 }
30
31 struct Y<T>(T);
32
33 impl Y<&'a u8> {
34     //~^ ERROR use of undeclared lifetime name
35     fn inner(&self) -> &'a u8 {
36     //~^ ERROR use of undeclared lifetime name
37         self.0
38     }
39 }
40
41 trait MyTrait<'a> {
42     fn my_lifetime(&self) -> &'a u8;
43     fn any_lifetime() -> &'b u8;
44     //~^ ERROR use of undeclared lifetime name
45     fn borrowed_lifetime(&'b self) -> &'b u8;
46     //~^ ERROR use of undeclared lifetime name
47     //~^^ ERROR use of undeclared lifetime name
48 }
49
50 impl MyTrait<'a> for Y<&'a u8> {
51 //~^ ERROR use of undeclared lifetime name
52 //~^^ ERROR use of undeclared lifetime name
53     fn my_lifetime(&self) -> &'a u8 { self.0 }
54     //~^ ERROR use of undeclared lifetime name
55     fn any_lifetime() -> &'b u8 { &0 }
56     //~^ ERROR use of undeclared lifetime name
57     fn borrowed_lifetime(&'b self) -> &'b u8 { &*self.0 }
58     //~^ ERROR use of undeclared lifetime name
59     //~^^ ERROR use of undeclared lifetime name
60 }
61
62 fn main() {}