2022-11-28 08:03:57 +00:00
|
|
|
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)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-11-28 22:04:46 +00:00
|
|
|
trait Bar {
|
|
|
|
fn foo<'a>(&'a self) {}
|
|
|
|
}
|
|
|
|
|
|
|
|
impl Bar for () {
|
|
|
|
fn foo<'a: 'a>(&'a self) {} //~ ERROR E0195
|
|
|
|
}
|
|
|
|
|
2022-11-28 08:03:57 +00:00
|
|
|
fn main() {
|
|
|
|
().foo((), ());
|
|
|
|
}
|