// 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; } impl CanDecode for u8 { fn read(rdr: &mut Foo) -> Option { Some(42) } } impl CanDecode for u16 { fn read(rdr: &mut Foo) -> Option { Some(17) } } fn main() {}