1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
//@ 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<u32> for LocalDefault {}
struct LocalOverride;
impl Foo<u64> for LocalOverride {
type Out = bool;
}
fn main() {
assert_eq!(
<() as Foo<u32>>::Out::default().to_string(),
"0");
assert_eq!(
<() as Foo<u64>>::Out::default().to_string(),
"false");
assert_eq!(
<LocalDefault as Foo<u32>>::Out::default().to_string(),
"0");
assert_eq!(
<LocalOverride as Foo<u64>>::Out::default().to_string(),
"false");
}
|