From c6c2f11ab614e5e17ddbfa28b5ff9c9e5a2d8b52 Mon Sep 17 00:00:00 2001 From: Santiago Pastorino Date: Fri, 20 Aug 2021 18:32:57 -0300 Subject: [PATCH] Test tait use in a fn type --- .../type-alias-impl-trait-fn-type.rs | 13 +++++++++++++ .../type-alias-impl-trait-fn-type.stderr | 9 +++++++++ 2 files changed, 22 insertions(+) create mode 100644 src/test/ui/type-alias-impl-trait/type-alias-impl-trait-fn-type.rs create mode 100644 src/test/ui/type-alias-impl-trait/type-alias-impl-trait-fn-type.stderr 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 0000000000000..299bdf562dc41 --- /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 0000000000000..1c5d57d4af761 --- /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`.