diff options
Diffstat (limited to 'tests/ui/type-alias-impl-trait/generic_duplicate_param_use9.rs')
-rw-r--r-- | tests/ui/type-alias-impl-trait/generic_duplicate_param_use9.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/ui/type-alias-impl-trait/generic_duplicate_param_use9.rs b/tests/ui/type-alias-impl-trait/generic_duplicate_param_use9.rs new file mode 100644 index 000000000..6afcdfe4d --- /dev/null +++ b/tests/ui/type-alias-impl-trait/generic_duplicate_param_use9.rs @@ -0,0 +1,25 @@ +#![feature(type_alias_impl_trait)] + +use std::fmt::Debug; + +fn main() {} + +type Two<A, B> = impl Debug; + +trait Foo { + type Bar: Debug; + const BAR: Self::Bar; +} + +fn two<T: Debug + Foo, U: Debug>(t: T, u: U) -> Two<T, U> { + (t, u, T::BAR) + //~^ ERROR the trait bound `A: Foo` is not satisfied + //~| ERROR `A` doesn't implement `Debug` + //~| ERROR `B` doesn't implement `Debug` +} + +fn three<T: Debug, U: Debug>(t: T, u: U) -> Two<T, U> { + (t, u, 42) + //~^ ERROR `A` doesn't implement `Debug` + //~| ERROR `B` doesn't implement `Debug` +} |