1 #![allow(unused_variables)]
3 fn make_any<T>() -> T { loop {} }
8 fn method(&'a self) { }
11 fn method1<'a,'b,T>(x: &'a T, y: &'b T)
12 where T : for<'z> Trait<'z>, 'a : 'b
14 // Note that &'static T <: &'a T.
15 let a: <T as Trait<'a>>::Type = make_any();
16 let b: <T as Trait<'b>>::Type = make_any();
17 let _c: <T as Trait<'a>>::Type = a;
20 fn method2<'a,'b,T>(x: &'a T, y: &'b T)
21 where T : for<'z> Trait<'z>, 'a : 'b
23 // Note that &'static T <: &'a T.
24 let a: <T as Trait<'a>>::Type = make_any();
25 //~^ ERROR lifetime may not live long enough
26 let b: <T as Trait<'b>>::Type = make_any();
27 let _c: <T as Trait<'b>>::Type = a;
30 fn method3<'a,'b,T>(x: &'a T, y: &'b T)
31 where T : for<'z> Trait<'z>, 'a : 'b
33 // Note that &'static T <: &'a T.
34 let a: <T as Trait<'a>>::Type = make_any();
35 let b: <T as Trait<'b>>::Type = make_any();
36 let _c: <T as Trait<'a>>::Type = b;
37 //~^ ERROR lifetime may not live long enough
40 fn method4<'a,'b,T>(x: &'a T, y: &'b T)
41 where T : for<'z> Trait<'z>, 'a : 'b
43 // Note that &'static T <: &'a T.
44 let a: <T as Trait<'a>>::Type = make_any();
45 let b: <T as Trait<'b>>::Type = make_any();
46 let _c: <T as Trait<'b>>::Type = b;