#![feature(generic_associated_types)] // Checking the interaction with this other feature #![feature(associated_type_defaults)] use std::fmt::{Display, Debug}; trait Foo { type Assoc where Self: Sized; type Assoc2 where T: Display; type Assoc3; type WithDefault<'a, T: Debug + 'a>: ?Sized = dyn Iterator; type NoGenerics; } struct Bar; impl Foo for Bar { type Assoc = usize; type Assoc2 = Vec; //~^ ERROR `T` doesn't implement `std::fmt::Display` type Assoc3 = Vec where T: Iterator; //~^ ERROR impl has stricter requirements than trait type WithDefault<'a, T: Debug + 'a> = &'a dyn Iterator; type NoGenerics = ::std::cell::Cell; } fn main() {}