| //@ run-pass | |
| #![allow(dead_code)] | |
| trait MyNum : PartialEq { } | |
| #[derive(Debug)] | |
| struct MyInt { val: isize } | |
| impl PartialEq for MyInt { | |
| fn eq(&self, other: &MyInt) -> bool { self.val == other.val } | |
| fn ne(&self, other: &MyInt) -> bool { !self.eq(other) } | |
| } | |
| impl MyNum for MyInt {} | |
| fn f<T:MyNum>(x: T, y: T) -> bool { | |
| return x == y; | |
| } | |
| fn mi(v: isize) -> MyInt { MyInt { val: v } } | |
| pub fn main() { | |
| let (x, y, z) = (mi(3), mi(5), mi(3)); | |
| assert!(x != y); | |
| assert_eq!(x, z); | |
| } |