From af585cf127a26148372fe54eb62d1c9fad6f2dba Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Mon, 24 Nov 2025 22:14:15 -0500 Subject: Fix for `when` blocks with a single expression inside --- src/compile/promotions.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/compile/promotions.c b/src/compile/promotions.c index b3cbb361..93ad5338 100644 --- a/src/compile/promotions.c +++ b/src/compile/promotions.c @@ -127,6 +127,10 @@ Text_t compile_to_type(env_t *env, ast_t *ast, type_t *t) { env = with_enum_scope(env, t); } + if (ast->tag == Block && Match(ast, Block)->statements && !Match(ast, Block)->statements->next) { + ast = Match(ast, Block)->statements->ast; + } + if (ast->tag == Int && is_numeric_type(non_optional(t))) { return compile_int_to_type(env, ast, t); } else if (ast->tag == Num && t->tag == NumType) { -- cgit v1.2.3