Rollup merge of #105163 - compiler-errors:afit-lt-arity, r=jackh726
Check lifetime param count in `collect_trait_impl_trait_tys` We checked the type and const generics count, but not the lifetimes, which were handled in a different function. Fixes #105154
This commit is contained in:
commit
09e2d0f289
3 changed files with 59 additions and 21 deletions
20
src/test/ui/async-await/in-trait/lifetime-mismatch.rs
Normal file
20
src/test/ui/async-await/in-trait/lifetime-mismatch.rs
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
// edition:2021
|
||||
|
||||
#![feature(async_fn_in_trait)]
|
||||
//~^ WARN the feature `async_fn_in_trait` is incomplete and may not be safe to use and/or cause compiler crashes
|
||||
|
||||
trait MyTrait {
|
||||
async fn foo<'a>(&self);
|
||||
async fn bar(&self);
|
||||
}
|
||||
|
||||
impl MyTrait for i32 {
|
||||
async fn foo(&self) {}
|
||||
//~^ ERROR lifetime parameters or bounds on method `foo` do not match the trait declaration
|
||||
|
||||
async fn bar(&self) {
|
||||
self.foo();
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
21
src/test/ui/async-await/in-trait/lifetime-mismatch.stderr
Normal file
21
src/test/ui/async-await/in-trait/lifetime-mismatch.stderr
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
warning: the feature `async_fn_in_trait` is incomplete and may not be safe to use and/or cause compiler crashes
|
||||
--> $DIR/lifetime-mismatch.rs:3:12
|
||||
|
|
||||
LL | #![feature(async_fn_in_trait)]
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information
|
||||
= note: `#[warn(incomplete_features)]` on by default
|
||||
|
||||
error[E0195]: lifetime parameters or bounds on method `foo` do not match the trait declaration
|
||||
--> $DIR/lifetime-mismatch.rs:12:17
|
||||
|
|
||||
LL | async fn foo<'a>(&self);
|
||||
| ---- lifetimes in impl do not match this method in trait
|
||||
...
|
||||
LL | async fn foo(&self) {}
|
||||
| ^ lifetimes do not match method in trait
|
||||
|
||||
error: aborting due to previous error; 1 warning emitted
|
||||
|
||||
For more information about this error, try `rustc --explain E0195`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue