summaryrefslogtreecommitdiffstats
path: root/src/test/ui/associated-types/issue-41868.rs
blob: 52bbd1f5d286372a0c06c3b5bef30505eafbd351 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 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() {}