summaryrefslogtreecommitdiffstats
path: root/src/test/ui/specialization/min_specialization/specialization_trait.rs
blob: d597278d29693ac5577c5cacaca5a69372341997 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// 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() {}