diff options
Diffstat (limited to 'src/test/ui/assign-assign.rs')
-rw-r--r-- | src/test/ui/assign-assign.rs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/test/ui/assign-assign.rs b/src/test/ui/assign-assign.rs new file mode 100644 index 000000000..bcf506b39 --- /dev/null +++ b/src/test/ui/assign-assign.rs @@ -0,0 +1,30 @@ +// run-pass +// Issue 483 - Assignment expressions result in nil + +fn test_assign() { + let mut x: isize; + let y: () = x = 10; + assert_eq!(x, 10); + assert_eq!(y, ()); + let mut z = x = 11; + assert_eq!(x, 11); + assert_eq!(z, ()); + z = x = 12; + assert_eq!(x, 12); + assert_eq!(z, ()); +} + +fn test_assign_op() { + let mut x: isize = 0; + let y: () = x += 10; + assert_eq!(x, 10); + assert_eq!(y, ()); + let mut z = x += 11; + assert_eq!(x, 21); + assert_eq!(z, ()); + z = x += 12; + assert_eq!(x, 33); + assert_eq!(z, ()); +} + +pub fn main() { test_assign(); test_assign_op(); } |