diff options
Diffstat (limited to 'src/test/ui/type-alias-impl-trait/issue-53598.rs')
-rw-r--r-- | src/test/ui/type-alias-impl-trait/issue-53598.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/test/ui/type-alias-impl-trait/issue-53598.rs b/src/test/ui/type-alias-impl-trait/issue-53598.rs new file mode 100644 index 000000000..9c1cbf926 --- /dev/null +++ b/src/test/ui/type-alias-impl-trait/issue-53598.rs @@ -0,0 +1,27 @@ +#![feature(type_alias_impl_trait)] + +use std::fmt::Debug; + +pub trait Foo { + type Item: Debug; + + fn foo<T: Debug>(_: T) -> Self::Item; +} + +#[derive(Debug)] +pub struct S<T>(std::marker::PhantomData<T>); + +pub struct S2; + +impl Foo for S2 { + type Item = impl Debug; + + fn foo<T: Debug>(_: T) -> Self::Item { + S::<T>(Default::default()) + //~^ Error type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias + } +} + +fn main() { + S2::foo(123); +} |