add test for ice expected-type-of-closure-body-to-be-a-closure-or-coroutine-ice-113776.stderr
Fixes https://github.com/rust-lang/rust/issues/113776
This commit is contained in:
parent
27338f2fe0
commit
f536a06a5a
2 changed files with 91 additions and 0 deletions
|
@ -0,0 +1,23 @@
|
||||||
|
// issue: rust-lang/rust#113776
|
||||||
|
// ice: expected type of closure body to be a closure or coroutine
|
||||||
|
//@ edition: 2021
|
||||||
|
#![allow(incomplete_features)]
|
||||||
|
#![feature(generic_const_exprs)]
|
||||||
|
|
||||||
|
use core::ops::SubAssign;
|
||||||
|
|
||||||
|
fn f<T>(
|
||||||
|
data: &[(); {
|
||||||
|
let f: F = async { 1 };
|
||||||
|
//~^ ERROR cannot find type `F` in this scope
|
||||||
|
|
||||||
|
1
|
||||||
|
}],
|
||||||
|
) -> impl Iterator<Item = SubAssign> {
|
||||||
|
//~^ ERROR the type parameter `Rhs` must be explicitly specified
|
||||||
|
//~| ERROR `()` is not an iterator
|
||||||
|
//~| ERROR trait objects must include the `dyn` keyword
|
||||||
|
//~| ERROR the type parameter `Rhs` must be explicitly specified [E0393]
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn main() {}
|
|
@ -0,0 +1,68 @@
|
||||||
|
error[E0412]: cannot find type `F` in this scope
|
||||||
|
--> $DIR/expected-type-of-closure-body-to-be-a-closure-or-coroutine-ice-113776.rs:11:17
|
||||||
|
|
|
||||||
|
LL | let f: F = async { 1 };
|
||||||
|
| ^
|
||||||
|
--> $SRC_DIR/core/src/ops/function.rs:LL:COL
|
||||||
|
|
|
||||||
|
= note: similarly named trait `Fn` defined here
|
||||||
|
|
|
||||||
|
help: a trait with a similar name exists
|
||||||
|
|
|
||||||
|
LL | let f: Fn = async { 1 };
|
||||||
|
| ~~
|
||||||
|
help: you might be missing a type parameter
|
||||||
|
|
|
||||||
|
LL | fn f<T, F>(
|
||||||
|
| +++
|
||||||
|
|
||||||
|
error[E0393]: the type parameter `Rhs` must be explicitly specified
|
||||||
|
--> $DIR/expected-type-of-closure-body-to-be-a-closure-or-coroutine-ice-113776.rs:16:27
|
||||||
|
|
|
||||||
|
LL | ) -> impl Iterator<Item = SubAssign> {
|
||||||
|
| ^^^^^^^^^ help: set the type parameter to the desired type: `SubAssign<Rhs>`
|
||||||
|
--> $SRC_DIR/core/src/ops/arith.rs:LL:COL
|
||||||
|
|
|
||||||
|
= note: type parameter `Rhs` must be specified for this
|
||||||
|
|
|
||||||
|
= note: because of the default `Self` reference, type parameters must be specified on object types
|
||||||
|
|
||||||
|
error[E0393]: the type parameter `Rhs` must be explicitly specified
|
||||||
|
--> $DIR/expected-type-of-closure-body-to-be-a-closure-or-coroutine-ice-113776.rs:16:27
|
||||||
|
|
|
||||||
|
LL | ) -> impl Iterator<Item = SubAssign> {
|
||||||
|
| ^^^^^^^^^ help: set the type parameter to the desired type: `SubAssign<Rhs>`
|
||||||
|
--> $SRC_DIR/core/src/ops/arith.rs:LL:COL
|
||||||
|
|
|
||||||
|
= note: type parameter `Rhs` must be specified for this
|
||||||
|
|
|
||||||
|
= note: because of the default `Self` reference, type parameters must be specified on object types
|
||||||
|
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||||
|
|
||||||
|
error[E0277]: `()` is not an iterator
|
||||||
|
--> $DIR/expected-type-of-closure-body-to-be-a-closure-or-coroutine-ice-113776.rs:16:6
|
||||||
|
|
|
||||||
|
LL | ) -> impl Iterator<Item = SubAssign> {
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `()` is not an iterator
|
||||||
|
|
|
||||||
|
= help: the trait `Iterator` is not implemented for `()`
|
||||||
|
|
||||||
|
error[E0782]: trait objects must include the `dyn` keyword
|
||||||
|
--> $DIR/expected-type-of-closure-body-to-be-a-closure-or-coroutine-ice-113776.rs:16:27
|
||||||
|
|
|
||||||
|
LL | ) -> impl Iterator<Item = SubAssign> {
|
||||||
|
| ^^^^^^^^^
|
||||||
|
|
|
||||||
|
help: add `dyn` keyword before this trait
|
||||||
|
|
|
||||||
|
LL | ) -> impl Iterator<Item = dyn SubAssign> {
|
||||||
|
| +++
|
||||||
|
help: you might have meant to write a bound here
|
||||||
|
|
|
||||||
|
LL | ) -> impl Iterator<Item: SubAssign> {
|
||||||
|
| ~
|
||||||
|
|
||||||
|
error: aborting due to 5 previous errors
|
||||||
|
|
||||||
|
Some errors have detailed explanations: E0277, E0393, E0412, E0782.
|
||||||
|
For more information about an error, try `rustc --explain E0277`.
|
Loading…
Add table
Add a link
Reference in a new issue