From 962d0babdc131e4353c4872a626bb9d9e98f26e2 Mon Sep 17 00:00:00 2001 From: Taegon Kim Date: Fri, 4 Nov 2022 00:25:45 +0900 Subject: [PATCH] js: fix `match true {}` in the js backend (#16317) --- vlib/v/gen/js/js.v | 2 +- vlib/v/gen/js/tests/testdata/match.out | 3 ++- vlib/v/gen/js/tests/testdata/match.v | 12 ++++++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/vlib/v/gen/js/js.v b/vlib/v/gen/js/js.v index 13e0a097c9..7ec0ec470c 100644 --- a/vlib/v/gen/js/js.v +++ b/vlib/v/gen/js/js.v @@ -2431,7 +2431,7 @@ fn (mut g JsGen) match_expr(node ast.MatchExpr) { } if node.cond in [ast.Ident, ast.SelectorExpr, ast.IntegerLiteral, ast.StringLiteral, ast.FloatLiteral, - ast.CallExpr, ast.EnumVal] { + ast.BoolLiteral, ast.CallExpr, ast.EnumVal] { cond_var = CondExpr{node.cond} } else { s := g.new_tmp_var() diff --git a/vlib/v/gen/js/tests/testdata/match.out b/vlib/v/gen/js/tests/testdata/match.out index a63d980ed6..19adfb61b7 100644 --- a/vlib/v/gen/js/tests/testdata/match.out +++ b/vlib/v/gen/js/tests/testdata/match.out @@ -1,4 +1,5 @@ Vec2d(42,43) Vec2d(46,74,21) life -V is running on JS \ No newline at end of file +V is running on JS +c: \ No newline at end of file diff --git a/vlib/v/gen/js/tests/testdata/match.v b/vlib/v/gen/js/tests/testdata/match.v index 6402f43aaf..00d3abd920 100644 --- a/vlib/v/gen/js/tests/testdata/match.v +++ b/vlib/v/gen/js/tests/testdata/match.v @@ -52,9 +52,21 @@ fn match_classic_string() { } } +fn match_bool_cond() { + volume := 'c:' + rooted := false + path_separator := '/' + println(match true { + volume.len != 0 { volume } + !rooted { '.' } + else { path_separator } + }) +} + fn main() { match_vec(Vec2d{42, 43}) match_vec(Vec3d{46, 74, 21}) match_classic_num() match_classic_string() + match_bool_cond() }