//@ run-pass | |
// Tests that we can call a function bounded over a supertrait from | |
// a default method | |
fn require_y<T: Y>(x: T) -> isize { x.y() } | |
trait Y { | |
fn y(self) -> isize; | |
} | |
trait Z: Y + Sized { | |
fn x(self) -> isize { | |
require_y(self) | |
} | |
} | |
impl Y for isize { | |
fn y(self) -> isize { self } | |
} | |
impl Z for isize {} | |
pub fn main() { | |
assert_eq!(12.x(), 12); | |
} |