From cfcd23c4445764bff38bd2c5e2ce253d01c0ad44 Mon Sep 17 00:00:00 2001 From: Nada Amin Date: Sat, 11 Jul 2026 16:17:55 -0400 Subject: [PATCH] coerce truthy objects for cond --- tools/src/transform.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/src/transform.ts b/tools/src/transform.ts index 801ed2f..097dbcf 100644 --- a/tools/src/transform.ts +++ b/tools/src/transform.ts @@ -335,7 +335,8 @@ function coerceCondToBool(cond: Expr, ty: Ty): Expr { return { kind: "binop", op: "≠", left: cond, right: { kind: "num", value: 0 } }; if (ty.kind === "string") return { kind: "binop", op: ">", left: { kind: "field", obj: cond, field: "length" }, right: { kind: "num", value: 0 } }; - if (ty.kind === "array") + // Arrays, objects, maps, sets, tuples are always truthy in JS (even `[]`/`{}`). + if (["array", "user", "map", "set", "tuple"].includes(ty.kind)) return { kind: "bool", value: true }; return cond; }