/* Short-circuit constant expression tests */ proc main() { "Bool (t || x) == ", true || "fail", "\n"; "Int (1 || x) == ", 1 || "fail", "\n"; "Flt (1 || x) == ", 1. || "fail", "\n"; "Long (1 || x) == ", 1L || "fail", "\n"; "Dbl (1 || x) == ", 1.D || "fail", "\n"; "Str (1 || x) == ", "1" || "fail", "\n"; "Bool (f || x) == ", false || "pass", "\n"; "Int (0 || x) == ", 0 || "pass", "\n"; "Flt (0 || x) == ", 0. || "pass", "\n"; "Long (0 || x) == ", 0L || "pass", "\n"; "Dbl (0 || x) == ", 0.D || "pass", "\n"; "Nil (0 || x) == ", nil || "pass", "\n"; "Bool (t && x) == ", true && "pass", "\n"; "Int (1 && x) == ", 1 && "pass", "\n"; "Flt (1 && x) == ", 1. && "pass", "\n"; "Long (1 && x) == ", 1L && "pass", "\n"; "Dbl (1 && x) == ", 1.D && "pass", "\n"; "Str (1 && x) == ", "1" && "pass", "\n"; "Bool (f && x) == ", false && "fail", "\n"; "Int (0 && x) == ", 0 && "fail", "\n"; "Flt (0 && x) == ", 0. && "fail", "\n"; "Long (0 && x) == ", 0L && "fail", "\n"; "Dbl (0 && x) == ", 0.D && "fail", "\n"; "Nil (0 && x) == ", nil && "fail", "\n"; "Bool (t ? x : y) == ", true ? "pass" : "fail", "\n"; "Int (1 ? x : y) == ", 1 ? "pass" : "fail", "\n"; "Flt (1 ? x : y) == ", 1. ? "pass" : "fail", "\n"; "Long (1 ? x : y) == ", 1L ? "pass" : "fail", "\n"; "Dbl (1 ? x : y) == ", 1.D ? "pass" : "fail", "\n"; "Str (1 ? x : y) == ", "1" ? "pass" : "fail", "\n"; "Bool (f ? x : y) == ", false ? "fail" : "pass", "\n"; "Int (0 ? x : y) == ", 0 ? "fail" : "pass", "\n"; "Flt (0 ? x : y) == ", 0. ? "fail" : "pass", "\n"; "Long (0 ? x : y) == ", 0L ? "fail" : "pass", "\n"; "Dbl (0 ? x : y) == ", 0.D ? "fail" : "pass", "\n"; "Nil (0 ? x : y) == ", nil ? "fail" : "pass", "\n"; }