Files
rust/tests/ui/specialization/trait-specialization-default-methods-55380.rs

30 lines
501 B
Rust
Raw Normal View History

2025-08-20 14:02:44 -04:00
// https://github.com/rust-lang/rust/issues/55380
//@ run-pass
#![feature(specialization)]
2020-06-16 10:06:35 +02:00
//~^ 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);
}