| //@ 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(); } |