fn arg_or_1() -> Bool { return true; } fn arg_or_2() -> Bool { panic("This should not be evaluated"); return true; } fn arg_and_1() -> Bool { return false; } fn arg_and_2() -> Bool { panic("This should not be evaluated"); return false; } if arg_or_1() || arg_or_2() { print("OK!"); print("\n"); } else { panic("This should not happen"); } if false || arg_or_1() || arg_or_2() { print("OK!"); print("\n"); } else { panic("This should not happen"); } if arg_and_1() && arg_and_2() { panic("This should not happen"); } else { print("OK!"); print("\n"); } if true && arg_and_1() && arg_and_2() { panic("This should not happen"); } else { print("OK!"); print("\n"); }