/src/test/run-pass/expr-if.rs

http://github.com/jruderman/rust · Rust · 55 lines · 41 code · 12 blank · 2 comment · 30 complexity · 7145a1048792703e3d873a546cec09b5 MD5 · raw file

  1. // -*- rust -*-
  2. // Tests for if as expressions
  3. fn test_if() { let rs: bool = if true { true } else { false }; assert (rs); }
  4. fn test_else() {
  5. let rs: bool = if false { false } else { true };
  6. assert (rs);
  7. }
  8. fn test_elseif1() {
  9. let rs: bool = if true { true } else if true { false } else { false };
  10. assert (rs);
  11. }
  12. fn test_elseif2() {
  13. let rs: bool = if false { false } else if true { true } else { false };
  14. assert (rs);
  15. }
  16. fn test_elseif3() {
  17. let rs: bool = if false { false } else if false { false } else { true };
  18. assert (rs);
  19. }
  20. fn test_inferrence() {
  21. let rs = if true { true } else { false };
  22. assert (rs);
  23. }
  24. fn test_if_as_if_condition() {
  25. let rs1 = if if false { false } else { true } { true } else { false };
  26. assert (rs1);
  27. let rs2 = if if true { false } else { true } { false } else { true };
  28. assert (rs2);
  29. }
  30. fn test_if_as_block_result() {
  31. let rs = if true { if false { false } else { true } } else { false };
  32. assert (rs);
  33. }
  34. fn main() {
  35. test_if();
  36. test_else();
  37. test_elseif1();
  38. test_elseif2();
  39. test_elseif3();
  40. test_inferrence();
  41. test_if_as_if_condition();
  42. test_if_as_block_result();
  43. }