diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2012-10-29 10:37:22 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2012-10-29 10:37:22 -0700 |
| commit | 17a875b08a0a607a97fff0e4fd13be0d2fa4dcb3 (patch) | |
| tree | e27b4900297909fa29c864fae85a1ab44c99d41e /src/test | |
| parent | 5e5ea0460879972dd9b78516cdee2e65be7fad93 (diff) | |
| parent | d5a27a0e0c6e64d1532443a6bd45b3416e7597fe (diff) | |
| download | rust-17a875b08a0a607a97fff0e4fd13be0d2fa4dcb3.tar.gz rust-17a875b08a0a607a97fff0e4fd13be0d2fa4dcb3.zip | |
Merge pull request #3871 from pcwalton/master
rustc: Translate monomorphic intra-crate automatically-derived method…
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/run-pass/deriving-simple.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/test/run-pass/deriving-simple.rs b/src/test/run-pass/deriving-simple.rs new file mode 100644 index 00000000000..04167893507 --- /dev/null +++ b/src/test/run-pass/deriving-simple.rs @@ -0,0 +1,32 @@ +trait MyEq { + pure fn eq(other: &self) -> bool; +} + +struct A { + x: int +} + +struct B { + x: A, + y: A, + z: A +} + +impl A : MyEq { + pure fn eq(other: &A) -> bool { + unsafe { io::println(fmt!("eq %d %d", self.x, other.x)); } + self.x == other.x + } +} + +impl B : MyEq; + +fn main() { + let b = B { x: A { x: 1 }, y: A { x: 2 }, z: A { x: 3 } }; + let c = B { x: A { x: 1 }, y: A { x: 3 }, z: A { x: 4 } }; + assert b.eq(&b); + assert c.eq(&c); + assert !b.eq(&c); + assert !c.eq(&b); +} + |
