1 // run-pass 2 // Tests for if as expressions 3 test_if()4fn test_if() { let rs: bool = if true { true } else { false }; assert!((rs)); } 5 test_else()6fn test_else() { 7 let rs: bool = if false { false } else { true }; 8 assert!((rs)); 9 } 10 test_elseif1()11fn test_elseif1() { 12 let rs: bool = if true { true } else if true { false } else { false }; 13 assert!((rs)); 14 } 15 test_elseif2()16fn test_elseif2() { 17 let rs: bool = if false { false } else if true { true } else { false }; 18 assert!((rs)); 19 } 20 test_elseif3()21fn test_elseif3() { 22 let rs: bool = if false { false } else if false { false } else { true }; 23 assert!((rs)); 24 } 25 test_inferrence()26fn test_inferrence() { 27 let rs = if true { true } else { false }; 28 assert!((rs)); 29 } 30 test_if_as_if_condition()31fn 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()38fn test_if_as_block_result() { 39 let rs = if true { if false { false } else { true } } else { false }; 40 assert!((rs)); 41 } 42 main()43pub 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