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 let b: <T as Trait<'b>>::Type = make_any();
26 let _c: <T as Trait<'b>>::Type = a; //~ ERROR E0623
29 fn method3<'a,'b,T>(x: &'a T, y: &'b T)
30 where T : for<'z> Trait<'z>, 'a : 'b
32 // Note that &'static T <: &'a T.
33 let a: <T as Trait<'a>>::Type = make_any();
34 let b: <T as Trait<'b>>::Type = make_any();
35 let _c: <T as Trait<'a>>::Type = b; //~ ERROR E0623
38 fn method4<'a,'b,T>(x: &'a T, y: &'b T)
39 where T : for<'z> Trait<'z>, 'a : 'b
41 // Note that &'static T <: &'a T.
42 let a: <T as Trait<'a>>::Type = make_any();
43 let b: <T as Trait<'b>>::Type = make_any();
44 let _c: <T as Trait<'b>>::Type = b;