trait Fun { | |
type F<'a>; | |
fn identity<'a>(t: Self::F<'a>) -> Self::F<'a> { t } | |
} | |
impl <T> Fun for T { | |
type F<'a> = Self; | |
} | |
fn bug<'a, T: Fun<F<'a> = T>>(t: T) -> T::F<'a> { | |
T::identity(()) | |
//~^ ERROR: mismatched types | |
} | |
fn main() { | |
let x = 10; | |
bug(x); | |
} |