diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2022-12-02 21:22:50 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-12-02 21:22:50 +0100 |
| commit | 09e2d0f289461e89675d02a3e4e09ca898c797bb (patch) | |
| tree | fe1fd431a83608b9279372139998166024c5645e /src/test | |
| parent | babdf86952d7670512f71d42ee6b9b2d65e05c35 (diff) | |
| parent | bd7ee07d028b47258ba20f496b6a974bd5334355 (diff) | |
| download | rust-09e2d0f289461e89675d02a3e4e09ca898c797bb.tar.gz rust-09e2d0f289461e89675d02a3e4e09ca898c797bb.zip | |
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
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/ui/async-await/in-trait/lifetime-mismatch.rs | 20 | ||||
| -rw-r--r-- | src/test/ui/async-await/in-trait/lifetime-mismatch.stderr | 21 |
2 files changed, 41 insertions, 0 deletions
diff --git a/src/test/ui/async-await/in-trait/lifetime-mismatch.rs b/src/test/ui/async-await/in-trait/lifetime-mismatch.rs new file mode 100644 index 00000000000..45ede193c0f --- /dev/null +++ b/src/test/ui/async-await/in-trait/lifetime-mismatch.rs @@ -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() {} diff --git a/src/test/ui/async-await/in-trait/lifetime-mismatch.stderr b/src/test/ui/async-await/in-trait/lifetime-mismatch.stderr new file mode 100644 index 00000000000..d87adcc78b6 --- /dev/null +++ b/src/test/ui/async-await/in-trait/lifetime-mismatch.stderr @@ -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`. |
