diff options
Diffstat (limited to 'src/test/ui/specialization/min_specialization/specialization_trait.rs')
-rw-r--r-- | src/test/ui/specialization/min_specialization/specialization_trait.rs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/test/ui/specialization/min_specialization/specialization_trait.rs b/src/test/ui/specialization/min_specialization/specialization_trait.rs new file mode 100644 index 000000000..d597278d2 --- /dev/null +++ b/src/test/ui/specialization/min_specialization/specialization_trait.rs @@ -0,0 +1,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() {} |