• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // run-pass
2 // Tests for if as expressions
3 
test_if()4 fn test_if() { let rs: bool = if true { true } else { false }; assert!((rs)); }
5 
test_else()6 fn test_else() {
7     let rs: bool = if false { false } else { true };
8     assert!((rs));
9 }
10 
test_elseif1()11 fn test_elseif1() {
12     let rs: bool = if true { true } else if true { false } else { false };
13     assert!((rs));
14 }
15 
test_elseif2()16 fn test_elseif2() {
17     let rs: bool = if false { false } else if true { true } else { false };
18     assert!((rs));
19 }
20 
test_elseif3()21 fn test_elseif3() {
22     let rs: bool = if false { false } else if false { false } else { true };
23     assert!((rs));
24 }
25 
test_inferrence()26 fn test_inferrence() {
27     let rs = if true { true } else { false };
28     assert!((rs));
29 }
30 
test_if_as_if_condition()31 fn test_if_as_if_condition() {
32     let rs1 = if if false { false } else { true } { true } else { false };
33     assert!((rs1));
34     let rs2 = if if true { false } else { true } { false } else { true };
35     assert!((rs2));
36 }
37 
test_if_as_block_result()38 fn test_if_as_block_result() {
39     let rs = if true { if false { false } else { true } } else { false };
40     assert!((rs));
41 }
42 
main()43 pub fn main() {
44     test_if();
45     test_else();
46     test_elseif1();
47     test_elseif2();
48     test_elseif3();
49     test_inferrence();
50     test_if_as_if_condition();
51     test_if_as_block_result();
52 }
53