30 lines
507 B
Rust
30 lines
507 B
Rust
|
// Check that supertraits cannot be used to work around min_specialization
|
||
|
// limitations.
|
||
|
|
||
|
#![feature(min_specialization)]
|
||
|
#![feature(rustc_attrs)]
|
||
|
|
||
|
trait HasMethod {
|
||
|
fn method(&self);
|
||
|
}
|
||
|
|
||
|
#[rustc_unsafe_specialization_marker]
|
||
|
trait Marker: HasMethod {}
|
||
|
|
||
|
trait Spec {
|
||
|
fn spec_me(&self);
|
||
|
}
|
||
|
|
||
|
impl<T> Spec for T {
|
||
|
default fn spec_me(&self) {}
|
||
|
}
|
||
|
|
||
|
impl<T: Marker> Spec for T {
|
||
|
//~^ ERROR cannot specialize on trait `HasMethod`
|
||
|
fn spec_me(&self) {
|
||
|
self.method();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn main() {}
|