#![feature(impl_trait_in_assoc_type)] // We weren't checking that the trait and impl generics line up in the // normalization-shortcut code in `OpaqueTypeCollector`. use std::ops::Deref; trait Foo { type Bar<'a>; type Baz<'a>; fn test<'a>() -> Self::Bar<'a>; } impl Foo for () { type Bar<'a> = impl Deref>; type Baz = impl Sized; //~^ ERROR type `Baz` has 1 type parameter but its trait declaration has 0 type parameters //~| ERROR unconstrained opaque type fn test<'a>() -> Self::Bar<'a> { &() } } fn main() {}