fmt: move else branch of match expr to the end (#9766)
parent
0cc04850d7
commit
990c4ab17a
|
@ -2054,6 +2054,49 @@ pub fn (mut f Fmt) map_init(node ast.MapInit) {
|
||||||
f.write('}')
|
f.write('}')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn (mut f Fmt) match_branch(branch ast.MatchBranch, single_line bool) {
|
||||||
|
if !branch.is_else {
|
||||||
|
// normal branch
|
||||||
|
f.is_mbranch_expr = true
|
||||||
|
for j, expr in branch.exprs {
|
||||||
|
estr := f.node_str(expr)
|
||||||
|
if f.line_len + estr.len + 2 > fmt.max_len[5] {
|
||||||
|
f.remove_new_line({})
|
||||||
|
f.writeln('')
|
||||||
|
}
|
||||||
|
f.write(estr)
|
||||||
|
if j < branch.ecmnts.len && branch.ecmnts[j].len > 0 {
|
||||||
|
f.write(' ')
|
||||||
|
f.comments(branch.ecmnts[j], iembed: true)
|
||||||
|
}
|
||||||
|
if j < branch.exprs.len - 1 {
|
||||||
|
f.write(', ')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
f.is_mbranch_expr = false
|
||||||
|
} else {
|
||||||
|
// else branch
|
||||||
|
f.write('else')
|
||||||
|
}
|
||||||
|
if branch.stmts.len == 0 {
|
||||||
|
f.writeln(' {}')
|
||||||
|
} else {
|
||||||
|
if single_line {
|
||||||
|
f.write(' { ')
|
||||||
|
} else {
|
||||||
|
f.writeln(' {')
|
||||||
|
}
|
||||||
|
f.stmts(branch.stmts)
|
||||||
|
if single_line {
|
||||||
|
f.remove_new_line({})
|
||||||
|
f.writeln(' }')
|
||||||
|
} else {
|
||||||
|
f.writeln('}')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
f.comments(branch.post_comments, inline: true)
|
||||||
|
}
|
||||||
|
|
||||||
pub fn (mut f Fmt) match_expr(node ast.MatchExpr) {
|
pub fn (mut f Fmt) match_expr(node ast.MatchExpr) {
|
||||||
f.write('match ')
|
f.write('match ')
|
||||||
f.expr(node.cond)
|
f.expr(node.cond)
|
||||||
|
@ -2077,47 +2120,16 @@ pub fn (mut f Fmt) match_expr(node ast.MatchExpr) {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for branch in node.branches {
|
mut else_idx := -1
|
||||||
if !branch.is_else {
|
for i, branch in node.branches {
|
||||||
// normal branch
|
if branch.is_else {
|
||||||
f.is_mbranch_expr = true
|
else_idx = i
|
||||||
for j, expr in branch.exprs {
|
continue
|
||||||
estr := f.node_str(expr)
|
|
||||||
if f.line_len + estr.len + 2 > fmt.max_len[5] {
|
|
||||||
f.remove_new_line({})
|
|
||||||
f.writeln('')
|
|
||||||
}
|
|
||||||
f.write(estr)
|
|
||||||
if j < branch.ecmnts.len && branch.ecmnts[j].len > 0 {
|
|
||||||
f.write(' ')
|
|
||||||
f.comments(branch.ecmnts[j], iembed: true)
|
|
||||||
}
|
|
||||||
if j < branch.exprs.len - 1 {
|
|
||||||
f.write(', ')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
f.is_mbranch_expr = false
|
|
||||||
} else {
|
|
||||||
// else branch
|
|
||||||
f.write('else')
|
|
||||||
}
|
}
|
||||||
if branch.stmts.len == 0 {
|
f.match_branch(branch, single_line)
|
||||||
f.writeln(' {}')
|
}
|
||||||
} else {
|
if else_idx >= 0 {
|
||||||
if single_line {
|
f.match_branch(node.branches[else_idx], single_line)
|
||||||
f.write(' { ')
|
|
||||||
} else {
|
|
||||||
f.writeln(' {')
|
|
||||||
}
|
|
||||||
f.stmts(branch.stmts)
|
|
||||||
if single_line {
|
|
||||||
f.remove_new_line({})
|
|
||||||
f.writeln(' }')
|
|
||||||
} else {
|
|
||||||
f.writeln('}')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
f.comments(branch.post_comments, inline: true)
|
|
||||||
}
|
}
|
||||||
f.indent--
|
f.indent--
|
||||||
f.write('}')
|
f.write('}')
|
||||||
|
|
|
@ -2,8 +2,8 @@ fn match_expr_assignment() {
|
||||||
a := 20
|
a := 20
|
||||||
_ := match a {
|
_ := match a {
|
||||||
10 { 10 }
|
10 { 10 }
|
||||||
5 { 5 }
|
|
||||||
else { 2 }
|
else { 2 }
|
||||||
|
5 { 5 }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue