27 lines
464 B
Rust
27 lines
464 B
Rust
|
// Test that `rustc_specialization_trait` requires always applicable impls.
|
||
|
|
||
|
#![feature(min_specialization)]
|
||
|
#![feature(rustc_attrs)]
|
||
|
|
||
|
#[rustc_specialization_trait]
|
||
|
trait SpecMarker {
|
||
|
fn f();
|
||
|
}
|
||
|
|
||
|
impl SpecMarker for &'static u8 {
|
||
|
//~^ ERROR cannot specialize
|
||
|
fn f() {}
|
||
|
}
|
||
|
|
||
|
impl<T> SpecMarker for (T, T) {
|
||
|
//~^ ERROR specializing impl
|
||
|
fn f() {}
|
||
|
}
|
||
|
|
||
|
impl<T: Clone> SpecMarker for [T] {
|
||
|
//~^ ERROR cannot specialize
|
||
|
fn f() {}
|
||
|
}
|
||
|
|
||
|
fn main() {}
|