Emit an error when RTN is used with ty/ct params
This commit is contained in:
parent
408bbd0406
commit
bbc536d3ac
5 changed files with 97 additions and 3 deletions
20
tests/ui/async-await/return-type-notation/ty-or-ct-params.rs
Normal file
20
tests/ui/async-await/return-type-notation/ty-or-ct-params.rs
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
// edition: 2021
|
||||
|
||||
#![feature(async_fn_in_trait, return_type_notation)]
|
||||
//~^ WARN the feature `return_type_notation` is incomplete
|
||||
|
||||
trait Foo {
|
||||
async fn bar<T>() {}
|
||||
|
||||
async fn baz<const N: usize>() {}
|
||||
}
|
||||
|
||||
fn test<T>()
|
||||
where
|
||||
T: Foo<bar(): Send, baz(): Send>,
|
||||
//~^ ERROR return type notation is not allowed for functions that have const parameters
|
||||
//~| ERROR return type notation is not allowed for functions that have type parameters
|
||||
{
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
warning: the feature `return_type_notation` is incomplete and may not be safe to use and/or cause compiler crashes
|
||||
--> $DIR/ty-or-ct-params.rs:3:31
|
||||
|
|
||||
LL | #![feature(async_fn_in_trait, return_type_notation)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: see issue #109417 <https://github.com/rust-lang/rust/issues/109417> for more information
|
||||
= note: `#[warn(incomplete_features)]` on by default
|
||||
|
||||
error: return type notation is not allowed for functions that have type parameters
|
||||
--> $DIR/ty-or-ct-params.rs:14:12
|
||||
|
|
||||
LL | async fn bar<T>() {}
|
||||
| - type parameter declared here
|
||||
...
|
||||
LL | T: Foo<bar(): Send, baz(): Send>,
|
||||
| ^^^^^^^^^^^
|
||||
|
||||
error: return type notation is not allowed for functions that have const parameters
|
||||
--> $DIR/ty-or-ct-params.rs:14:25
|
||||
|
|
||||
LL | async fn baz<const N: usize>() {}
|
||||
| -------------- const parameter declared here
|
||||
...
|
||||
LL | T: Foo<bar(): Send, baz(): Send>,
|
||||
| ^^^^^^^^^^^
|
||||
|
||||
error: aborting due to 2 previous errors; 1 warning emitted
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue