blob: f7cb296d3b8bb738bb0b5a4b3f72a4cb66eb2d4a [file] [log] [blame]
// run-pass
#![feature(specialization)]
//~^ WARN the feature `specialization` is incomplete
pub trait Foo {
fn abc() -> u32;
fn def() -> u32;
}
pub trait Marker {}
impl Marker for () {}
impl<T> Foo for T {
default fn abc() -> u32 { 16 }
default fn def() -> u32 { 42 }
}
impl<T: Marker> Foo for T {
fn def() -> u32 {
Self::abc()
}
}
fn main() {
assert_eq!(<()>::def(), 16);
assert_eq!(<i32>::def(), 42);
}