5 trait OtherTrait<'a> {}
6 impl<'a> OtherTrait<'a> for &'a () {}
8 trait ObjectTrait<T> {}
10 fn use_self<K>(&self) -> &();
14 impl<T> MyTrait<T> for dyn ObjectTrait<T> + '_ {
15 fn use_self<K>(&self) -> &() { panic!() }
17 impl<T> Irrelevant for dyn ObjectTrait<T> {}
19 fn use_it<'a, T>(val: &'a dyn ObjectTrait<T>) -> impl OtherTrait<'a> + 'a {
20 val.use_self::<T>() //~ ERROR E0759
27 fn use_self(&self) -> &();
31 impl MyTrait for dyn ObjectTrait + '_ {
32 fn use_self(&self) -> &() { panic!() }
34 impl Irrelevant for dyn ObjectTrait {}
36 fn use_it<'a>(val: &'a dyn ObjectTrait) -> &'a () {
37 val.use_self() //~ ERROR E0772
44 fn use_self(&self) -> &();
48 impl MyTrait for Box<dyn ObjectTrait + '_> {
49 fn use_self(&self) -> &() { panic!() }
51 impl Irrelevant for Box<dyn ObjectTrait> {}
53 fn use_it<'a>(val: &'a Box<dyn ObjectTrait + 'a>) -> &'a () {
54 val.use_self() //~ ERROR E0772
59 trait OtherTrait<'a> {}
60 impl<'a> OtherTrait<'a> for &'a () {}
64 impl dyn ObjectTrait + '_ {
65 fn use_self(&self) -> &() { panic!() }
68 fn use_it<'a>(val: &'a dyn ObjectTrait) -> impl OtherTrait<'a> + 'a {
69 val.use_self() //~ ERROR E0772
74 trait OtherTrait<'a> {}
75 impl<'a> OtherTrait<'a> for &'a () {}
79 fn use_self(&self) -> &() { panic!() }
82 fn use_self(&self) -> &() { panic!() }
85 impl MyTrait for dyn ObjectTrait + '_ {}
87 fn use_it<'a>(val: &'a dyn ObjectTrait) -> impl OtherTrait<'a> + 'a {
88 val.use_self() //~ ERROR E0759
93 trait OtherTrait<'a> {}
94 impl<'a> OtherTrait<'a> for &'a () {}
98 fn use_self(&self) -> &() { panic!() }
101 fn use_self(&self) -> &() { panic!() }
104 impl MyTrait for dyn ObjectTrait + '_ {}
105 impl Irrelevant for dyn ObjectTrait {}
107 fn use_it<'a>(val: &'a dyn ObjectTrait) -> impl OtherTrait<'a> + 'a {
108 MyTrait::use_self(val) //~ ERROR E0759