From d7a777f034ccc985def62f6dd08d9a8e68b3b15e Mon Sep 17 00:00:00 2001 From: Santiago Pastorino Date: Fri, 27 Aug 2021 17:51:46 -0300 Subject: [PATCH] Add nested TAIT inference test that fails --- .../nested-tait-inference2.rs | 19 +++++++++++++++++++ .../nested-tait-inference2.stderr | 19 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 src/test/ui/type-alias-impl-trait/nested-tait-inference2.rs create mode 100644 src/test/ui/type-alias-impl-trait/nested-tait-inference2.stderr diff --git a/src/test/ui/type-alias-impl-trait/nested-tait-inference2.rs b/src/test/ui/type-alias-impl-trait/nested-tait-inference2.rs new file mode 100644 index 00000000000..9b26a652978 --- /dev/null +++ b/src/test/ui/type-alias-impl-trait/nested-tait-inference2.rs @@ -0,0 +1,19 @@ +#![feature(type_alias_impl_trait)] +#![allow(dead_code)] + +use std::fmt::Debug; + +type FooX = impl Debug; +//~^ ERROR: could not find defining uses + +trait Foo {} + +impl Foo<()> for () {} +impl Foo for () {} + +fn foo() -> impl Foo { + //~^ ERROR: the trait bound `(): Foo` is not satisfied [E0277] + () +} + +fn main() {} diff --git a/src/test/ui/type-alias-impl-trait/nested-tait-inference2.stderr b/src/test/ui/type-alias-impl-trait/nested-tait-inference2.stderr new file mode 100644 index 00000000000..7e24ee644b1 --- /dev/null +++ b/src/test/ui/type-alias-impl-trait/nested-tait-inference2.stderr @@ -0,0 +1,19 @@ +error[E0277]: the trait bound `(): Foo` is not satisfied + --> $DIR/nested-tait-inference2.rs:14:13 + | +LL | fn foo() -> impl Foo { + | ^^^^^^^^^^^^^^ the trait `Foo` is not implemented for `()` + | + = help: the following implementations were found: + <() as Foo<()>> + <() as Foo> + +error: could not find defining uses + --> $DIR/nested-tait-inference2.rs:6:13 + | +LL | type FooX = impl Debug; + | ^^^^^^^^^^ + +error: aborting due to 2 previous errors + +For more information about this error, try `rustc --explain E0277`.