Lower closure prototype after its body.
This commit is contained in:
parent
c5a96fb797
commit
3f42abec58
3 changed files with 86 additions and 13 deletions
17
src/test/ui/closures/local-type-mix.rs
Normal file
17
src/test/ui/closures/local-type-mix.rs
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
// Check that using the parameter name in its type does not ICE.
|
||||
// edition:2018
|
||||
|
||||
#![feature(async_closure)]
|
||||
|
||||
fn main() {
|
||||
let _ = |x: x| x; //~ ERROR expected type
|
||||
let _ = |x: bool| -> x { x }; //~ ERROR expected type
|
||||
let _ = async move |x: x| x; //~ ERROR expected type
|
||||
let _ = async move |x: bool| -> x { x }; //~ ERROR expected type
|
||||
}
|
||||
|
||||
fn foo(x: x) {} //~ ERROR expected type
|
||||
fn foo_ret(x: bool) -> x {} //~ ERROR expected type
|
||||
|
||||
async fn async_foo(x: x) {} //~ ERROR expected type
|
||||
async fn async_foo_ret(x: bool) -> x {} //~ ERROR expected type
|
||||
51
src/test/ui/closures/local-type-mix.stderr
Normal file
51
src/test/ui/closures/local-type-mix.stderr
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
error[E0573]: expected type, found local variable `x`
|
||||
--> $DIR/local-type-mix.rs:7:17
|
||||
|
|
||||
LL | let _ = |x: x| x;
|
||||
| ^ not a type
|
||||
|
||||
error[E0573]: expected type, found local variable `x`
|
||||
--> $DIR/local-type-mix.rs:8:26
|
||||
|
|
||||
LL | let _ = |x: bool| -> x { x };
|
||||
| ^ not a type
|
||||
|
||||
error[E0573]: expected type, found local variable `x`
|
||||
--> $DIR/local-type-mix.rs:9:28
|
||||
|
|
||||
LL | let _ = async move |x: x| x;
|
||||
| ^ not a type
|
||||
|
||||
error[E0573]: expected type, found local variable `x`
|
||||
--> $DIR/local-type-mix.rs:10:37
|
||||
|
|
||||
LL | let _ = async move |x: bool| -> x { x };
|
||||
| ^ not a type
|
||||
|
||||
error[E0573]: expected type, found local variable `x`
|
||||
--> $DIR/local-type-mix.rs:13:11
|
||||
|
|
||||
LL | fn foo(x: x) {}
|
||||
| ^ not a type
|
||||
|
||||
error[E0573]: expected type, found local variable `x`
|
||||
--> $DIR/local-type-mix.rs:14:24
|
||||
|
|
||||
LL | fn foo_ret(x: bool) -> x {}
|
||||
| ^ not a type
|
||||
|
||||
error[E0573]: expected type, found local variable `x`
|
||||
--> $DIR/local-type-mix.rs:16:23
|
||||
|
|
||||
LL | async fn async_foo(x: x) {}
|
||||
| ^ not a type
|
||||
|
||||
error[E0573]: expected type, found local variable `x`
|
||||
--> $DIR/local-type-mix.rs:17:36
|
||||
|
|
||||
LL | async fn async_foo_ret(x: bool) -> x {}
|
||||
| ^ not a type
|
||||
|
||||
error: aborting due to 8 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0573`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue