about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSantiago Pastorino <spastorino@gmail.com>2021-08-20 18:32:57 -0300
committerSantiago Pastorino <spastorino@gmail.com>2021-08-20 18:32:57 -0300
commitc6c2f11ab614e5e17ddbfa28b5ff9c9e5a2d8b52 (patch)
tree584ce7bb42493533b952c7277588d73265a3275d
parenta9ab2e55395013de116340e4cbfa0bb0263bb658 (diff)
downloadrust-c6c2f11ab614e5e17ddbfa28b5ff9c9e5a2d8b52.tar.gz
rust-c6c2f11ab614e5e17ddbfa28b5ff9c9e5a2d8b52.zip
Test tait use in a fn type
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-impl-trait-fn-type.rs13
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-impl-trait-fn-type.stderr9
2 files changed, 22 insertions, 0 deletions
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-fn-type.rs b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-fn-type.rs
new file mode 100644
index 00000000000..299bdf562dc
--- /dev/null
+++ b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-fn-type.rs
@@ -0,0 +1,13 @@
+#![feature(type_alias_impl_trait)]
+#![allow(dead_code)]
+
+// FIXME: this is ruled out for now but should work
+
+type Foo = fn() -> impl Send;
+//~^ ERROR: `impl Trait` not allowed outside of function and method return types
+
+fn make_foo() -> Foo {
+    || 15
+}
+
+fn main() {}
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-fn-type.stderr b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-fn-type.stderr
new file mode 100644
index 00000000000..1c5d57d4af7
--- /dev/null
+++ b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-fn-type.stderr
@@ -0,0 +1,9 @@
+error[E0562]: `impl Trait` not allowed outside of function and method return types
+  --> $DIR/type-alias-impl-trait-fn-type.rs:6:20
+   |
+LL | type Foo = fn() -> impl Send;
+   |                    ^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0562`.