blob: f8a6252f991ea325b8a820143c65884d66dd3cbf [file] [log] [blame]
error[E0195]: lifetime parameters or bounds on method `foo` do not match the trait declaration
--> $DIR/impl-missing-where-clause-lifetimes-from-trait.rs:6:11
|
LL | fn foo<'a, K>(self, _: T, _: K) where T: 'a, K: 'a;
| ------- -- -- this bound might be missing in the impl
| | |
| | this bound might be missing in the impl
| lifetimes in impl do not match this method in trait
...
LL | fn foo<'a, K>(self, _: (), _: K) where {
| ^^^^^^^ lifetimes do not match method in trait
error[E0195]: lifetime parameters do not match the trait definition
--> $DIR/impl-missing-where-clause-lifetimes-from-trait.rs:23:12
|
LL | fn foo<'a>(&self, state: &'a State) -> &'a T {
| ^^
|
= note: lifetime parameters differ in whether they are early- or late-bound
note: `'a` differs between the trait and impl
--> $DIR/impl-missing-where-clause-lifetimes-from-trait.rs:14:12
|
LL | trait Foo<T> {
| ------------ in this trait...
LL | fn foo<'a>(&self, state: &'a State) -> &'a T
| ^^ `'a` is early-bound
LL | where
LL | T: 'a;
| -- this lifetime bound makes `'a` early-bound
...
LL | / impl<F, T> Foo<T> for F
LL | | where
LL | | F: Fn(&State) -> &T,
| |________________________- in this impl...
LL | {
LL | fn foo<'a>(&self, state: &'a State) -> &'a T {
| ^^ `'a` is late-bound
error[E0195]: lifetime parameters do not match the trait definition
--> $DIR/impl-missing-where-clause-lifetimes-from-trait.rs:33:12
|
LL | fn foo<'a: 'a>(&'a self) {}
| ^^
|
= note: lifetime parameters differ in whether they are early- or late-bound
note: `'a` differs between the trait and impl
--> $DIR/impl-missing-where-clause-lifetimes-from-trait.rs:29:12
|
LL | trait Bar {
| --------- in this trait...
LL | fn foo<'a>(&'a self) {}
| ^^ `'a` is late-bound
...
LL | impl Bar for () {
| --------------- in this impl...
LL | fn foo<'a: 'a>(&'a self) {}
| ^^ -- this lifetime bound makes `'a` early-bound
| |
| `'a` is early-bound
error: aborting due to 3 previous errors
For more information about this error, try `rustc --explain E0195`.