about summary refs log tree commit diff
path: root/src/test/ui/specialization/specialization-basics.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/specialization/specialization-basics.rs')
-rw-r--r--src/test/ui/specialization/specialization-basics.rs98
1 files changed, 0 insertions, 98 deletions
diff --git a/src/test/ui/specialization/specialization-basics.rs b/src/test/ui/specialization/specialization-basics.rs
deleted file mode 100644
index 721c934dbfa..00000000000
--- a/src/test/ui/specialization/specialization-basics.rs
+++ /dev/null
@@ -1,98 +0,0 @@
-// run-pass
-
-#![feature(specialization)] //~ WARN the feature `specialization` is incomplete
-
-// Tests a variety of basic specialization scenarios and method
-// dispatch for them.
-
-trait Foo {
-    fn foo(&self) -> &'static str;
-}
-
-impl<T> Foo for T {
-    default fn foo(&self) -> &'static str {
-        "generic"
-    }
-}
-
-impl<T: Clone> Foo for T {
-    default fn foo(&self) -> &'static str {
-        "generic Clone"
-    }
-}
-
-impl<T, U> Foo for (T, U) where T: Clone, U: Clone {
-    default fn foo(&self) -> &'static str {
-        "generic pair"
-    }
-}
-
-impl<T: Clone> Foo for (T, T) {
-    default fn foo(&self) -> &'static str {
-        "generic uniform pair"
-    }
-}
-
-impl Foo for (u8, u32) {
-    default fn foo(&self) -> &'static str {
-        "(u8, u32)"
-    }
-}
-
-impl Foo for (u8, u8) {
-    default fn foo(&self) -> &'static str {
-        "(u8, u8)"
-    }
-}
-
-impl<T: Clone> Foo for Vec<T> {
-    default fn foo(&self) -> &'static str {
-        "generic Vec"
-    }
-}
-
-impl Foo for Vec<i32> {
-    fn foo(&self) -> &'static str {
-        "Vec<i32>"
-    }
-}
-
-impl Foo for String {
-    fn foo(&self) -> &'static str {
-        "String"
-    }
-}
-
-impl Foo for i32 {
-    fn foo(&self) -> &'static str {
-        "i32"
-    }
-}
-
-struct NotClone;
-
-trait MyMarker {}
-impl<T: Clone + MyMarker> Foo for T {
-    default fn foo(&self) -> &'static str {
-        "generic Clone + MyMarker"
-    }
-}
-
-#[derive(Clone)]
-struct MarkedAndClone;
-impl MyMarker for MarkedAndClone {}
-
-fn  main() {
-    assert!(NotClone.foo() == "generic");
-    assert!(0u8.foo() == "generic Clone");
-    assert!(vec![NotClone].foo() == "generic");
-    assert!(vec![0u8].foo() == "generic Vec");
-    assert!(vec![0i32].foo() == "Vec<i32>");
-    assert!(0i32.foo() == "i32");
-    assert!(String::new().foo() == "String");
-    assert!(((), 0).foo() == "generic pair");
-    assert!(((), ()).foo() == "generic uniform pair");
-    assert!((0u8, 0u32).foo() == "(u8, u32)");
-    assert!((0u8, 0u8).foo() == "(u8, u8)");
-    assert!(MarkedAndClone.foo() == "generic Clone + MyMarker");
-}