/src/test/run-pass/rec-tup.rs

http://github.com/jruderman/rust · Rust · 27 lines · 22 code · 4 blank · 1 comment · 9 complexity · 036ee3d86294631e7c7ac53e350e8c17 MD5 · raw file

  1. // -*- rust -*-
  2. type point = {x: int, y: int};
  3. type rect = (point, point);
  4. fn fst(r: rect) -> point { let (fst, _) = r; return fst; }
  5. fn snd(r: rect) -> point { let (_, snd) = r; return snd; }
  6. fn f(r: rect, x1: int, y1: int, x2: int, y2: int) {
  7. assert (fst(r).x == x1);
  8. assert (fst(r).y == y1);
  9. assert (snd(r).x == x2);
  10. assert (snd(r).y == y2);
  11. }
  12. fn main() {
  13. let r: rect = ({x: 10, y: 20}, {x: 11, y: 22});
  14. assert (fst(r).x == 10);
  15. assert (fst(r).y == 20);
  16. assert (snd(r).x == 11);
  17. assert (snd(r).y == 22);
  18. let r2 = r;
  19. let x: int = fst(r2).x;
  20. assert (x == 10);
  21. f(r, 10, 20, 11, 22);
  22. f(r2, 10, 20, 11, 22);
  23. }