#![feature(associated_type_defaults)] // This used to cause an ICE because assoc. type defaults weren't properly // type-checked. trait Foo { type Out: Default + ToString + ?Sized = dyn ToString; //~ ERROR not satisfied } impl Foo for () {} impl Foo for () {} fn main() { assert_eq!(<() as Foo>::Out::default().to_string(), "false"); //~^ ERROR no function or associated item named `default` found for trait object }