// run-pass // aux-build:xcrate_associated_type_defaults.rs extern crate xcrate_associated_type_defaults; use xcrate_associated_type_defaults::Foo; struct LocalDefault; impl Foo for LocalDefault {} struct LocalOverride; impl Foo for LocalOverride { type Out = bool; } fn main() { assert_eq!( <() as Foo>::Out::default().to_string(), "0"); assert_eq!( <() as Foo>::Out::default().to_string(), "false"); assert_eq!( >::Out::default().to_string(), "0"); assert_eq!( >::Out::default().to_string(), "false"); }