From 5872961124ec953d3535e49a4121989a8d111df1 Mon Sep 17 00:00:00 2001 From: Joe Conigliaro Date: Wed, 4 Mar 2020 22:14:37 +1100 Subject: [PATCH] v2: update MatchExpr in vfmt --- vlib/v/fmt/fmt.v | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/vlib/v/fmt/fmt.v b/vlib/v/fmt/fmt.v index 4a5f68fefb..d07b7b45bd 100644 --- a/vlib/v/fmt/fmt.v +++ b/vlib/v/fmt/fmt.v @@ -434,20 +434,29 @@ fn (f mut Fmt) expr(node ast.Expr) { f.expr(it.cond) f.writeln(' {') f.indent++ - for i, expr in it.match_exprs { - f.expr(expr) - f.writeln(' {') - f.stmts(it.blocks[i].stmts) - f.writeln('}') - } - - else_stmts := it.blocks[it.blocks.len - 1].stmts - if (else_stmts.len == 0) { - f.writeln('else {}') - } else { - f.writeln('else {') - f.stmts(else_stmts) - f.writeln('}') + for i, branch in it.branches { + // normal branch + if i < it.branches.len - 1 { + for j,expr in branch.exprs { + f.expr(expr) + if j < branch.exprs.len - 1 { + f.write(', ') + } + } + f.writeln(' {') + f.stmts(branch.stmts) + f.writeln('}') + } + // else branch + else { + if (branch.stmts.len == 0) { + f.writeln('else {}') + } else { + f.writeln('else {') + f.stmts(branch.stmts) + f.writeln('}') + } + } } f.indent-- f.write('}')