diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:03 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:03 +0000 |
commit | 64d98f8ee037282c35007b64c2649055c56af1db (patch) | |
tree | 5492bcf97fce41ee1c0b1cc2add283f3e66cdab0 /src/test/ui/binop/operator-overloading.rs | |
parent | Adding debian version 1.67.1+dfsg1-1. (diff) | |
download | rustc-64d98f8ee037282c35007b64c2649055c56af1db.tar.xz rustc-64d98f8ee037282c35007b64c2649055c56af1db.zip |
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/ui/binop/operator-overloading.rs')
-rw-r--r-- | src/test/ui/binop/operator-overloading.rs | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/src/test/ui/binop/operator-overloading.rs b/src/test/ui/binop/operator-overloading.rs deleted file mode 100644 index 6b3abcbc7..000000000 --- a/src/test/ui/binop/operator-overloading.rs +++ /dev/null @@ -1,81 +0,0 @@ -// run-pass - -#![allow(unused_variables)] -use std::cmp; -use std::ops; - -#[derive(Copy, Clone, Debug)] -struct Point { - x: isize, - y: isize -} - -impl ops::Add for Point { - type Output = Point; - - fn add(self, other: Point) -> Point { - Point {x: self.x + other.x, y: self.y + other.y} - } -} - -impl ops::Sub for Point { - type Output = Point; - - fn sub(self, other: Point) -> Point { - Point {x: self.x - other.x, y: self.y - other.y} - } -} - -impl ops::Neg for Point { - type Output = Point; - - fn neg(self) -> Point { - Point {x: -self.x, y: -self.y} - } -} - -impl ops::Not for Point { - type Output = Point; - - fn not(self) -> Point { - Point {x: !self.x, y: !self.y } - } -} - -impl ops::Index<bool> for Point { - type Output = isize; - - fn index(&self, x: bool) -> &isize { - if x { - &self.x - } else { - &self.y - } - } -} - -impl cmp::PartialEq for Point { - fn eq(&self, other: &Point) -> bool { - (*self).x == (*other).x && (*self).y == (*other).y - } - fn ne(&self, other: &Point) -> bool { !(*self).eq(other) } -} - -pub fn main() { - let mut p = Point {x: 10, y: 20}; - p = p + Point {x: 101, y: 102}; - p = p - Point {x: 100, y: 100}; - assert_eq!(p + Point {x: 5, y: 5}, Point {x: 16, y: 27}); - assert_eq!(-p, Point {x: -11, y: -22}); - assert_eq!(p[true], 11); - assert_eq!(p[false], 22); - - let q = !p; - assert_eq!(q.x, !(p.x)); - assert_eq!(q.y, !(p.y)); - - // Issue #1733 - result(p[true]); -} - -fn result(i: isize) { } |