| // run-pass |
| #![allow(unused_parens)] |
| #![allow(non_camel_case_types)] |
| |
| |
| enum colour { red(isize, isize), green, } |
| |
| impl PartialEq for colour { |
| fn eq(&self, other: &colour) -> bool { |
| match *self { |
| colour::red(a0, b0) => { |
| match (*other) { |
| colour::red(a1, b1) => a0 == a1 && b0 == b1, |
| colour::green => false, |
| } |
| } |
| colour::green => { |
| match (*other) { |
| colour::red(..) => false, |
| colour::green => true |
| } |
| } |
| } |
| } |
| fn ne(&self, other: &colour) -> bool { !(*self).eq(other) } |
| } |
| |
| fn f() { let x = colour::red(1, 2); let y = colour::green; assert!((x != y)); } |
| |
| pub fn main() { f(); } |