| trait Trait<T> { |
| fn foo<'a, K>(self, _: T, _: K) where T: 'a, K: 'a; |
| } |
| |
| impl Trait<()> for () { |
| fn foo<'a, K>(self, _: (), _: K) where { //~ ERROR E0195 |
| todo!(); |
| } |
| } |
| |
| struct State; |
| |
| trait Foo<T> { |
| fn foo<'a>(&self, state: &'a State) -> &'a T |
| where |
| T: 'a; |
| } |
| |
| impl<F, T> Foo<T> for F |
| where |
| F: Fn(&State) -> &T, |
| { |
| fn foo<'a>(&self, state: &'a State) -> &'a T { //~ ERROR E0195 |
| self(state) |
| } |
| } |
| |
| trait Bar { |
| fn foo<'a>(&'a self) {} |
| } |
| |
| impl Bar for () { |
| fn foo<'a: 'a>(&'a self) {} //~ ERROR E0195 |
| } |
| |
| fn main() { |
| ().foo((), ()); |
| } |