]> git.lizzy.rs Git - rust.git/commitdiff
test: add test for overloading logical negation operator
authorAndrew Paseltiner <apaseltiner@gmail.com>
Fri, 11 Jan 2013 21:27:12 +0000 (16:27 -0500)
committerAndrew Paseltiner <apaseltiner@gmail.com>
Fri, 11 Jan 2013 21:27:12 +0000 (16:27 -0500)
src/test/run-pass/operator-overloading.rs

index 6d0473a7d2c0acaaf66c9b659544034572611e25..13439c6e7e67a7e4a6fce9e60f94483d18939cd3 100644 (file)
@@ -34,6 +34,12 @@ impl Point : ops::Neg<Point> {
     }
 }
 
+impl Point : ops::Not<Point> {
+    pure fn not(&self) -> Point {
+        Point {x: !self.x, y: !self.y }
+    }
+}
+
 impl Point : ops::Index<bool,int> {
     pure fn index(&self, +x: bool) -> int {
         if x { self.x } else { self.y }
@@ -55,6 +61,11 @@ fn main() {
     assert -p == Point {x: -11, y: -22};
     assert p[true] == 11;
     assert p[false] == 22;
+
+    let q = !p;
+    assert q.x == !(p.x);
+    assert q.y == !(p.y);
+
     // Issue #1733
     fn~(_x: int){}(p[true]);
 }