summaryrefslogtreecommitdiffstats
path: root/src/test/ui/closures/local-type-mix.rs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/test/ui/closures/local-type-mix.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/test/ui/closures/local-type-mix.rs b/src/test/ui/closures/local-type-mix.rs
new file mode 100644
index 000000000..006e6f490
--- /dev/null
+++ b/src/test/ui/closures/local-type-mix.rs
@@ -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