| //@ check-pass | |
| // Defaulted assoc. types should normalize properly in impls that don't | |
| // override them. | |
| #![feature(associated_type_defaults)] | |
| pub struct Foo; | |
| pub trait CanDecode: Sized { | |
| type Output = Self; | |
| fn read(rdr: &mut Foo) -> Option<Self::Output>; | |
| } | |
| impl CanDecode for u8 { | |
| fn read(rdr: &mut Foo) -> Option<Self::Output> { Some(42) } | |
| } | |
| impl CanDecode for u16 { | |
| fn read(rdr: &mut Foo) -> Option<u16> { Some(17) } | |
| } | |
| fn main() {} |