about summary refs log tree commit diff
path: root/src/test/auxiliary/trait_default_method_xc_aux.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/auxiliary/trait_default_method_xc_aux.rs')
-rw-r--r--src/test/auxiliary/trait_default_method_xc_aux.rs34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/test/auxiliary/trait_default_method_xc_aux.rs b/src/test/auxiliary/trait_default_method_xc_aux.rs
new file mode 100644
index 00000000000..5ee243179df
--- /dev/null
+++ b/src/test/auxiliary/trait_default_method_xc_aux.rs
@@ -0,0 +1,34 @@
+#[allow(default_methods)];
+
+pub trait A {
+    fn f(&self) -> int;
+    fn g(&self) -> int { 10 }
+    fn h(&self) -> int { 10 }
+}
+
+
+impl A for int {
+    fn f(&self) -> int { 10 }
+}
+
+trait B<T> {
+    fn thing<U>(&self, x: T, y: U) -> (T, U) { (x, y) }
+}
+
+impl<T> B<T> for int { }
+impl B<float> for bool { }
+
+
+
+pub trait TestEquality {
+    fn test_eq(&self, rhs: &Self) -> bool;
+    fn test_neq(&self, rhs: &Self) -> bool {
+        !self.test_eq(rhs)
+    }
+}
+
+impl TestEquality for int {
+    fn test_eq(&self, rhs: &int) -> bool {
+        *self == *rhs
+    }
+}