fmt: improve conditions for single line if
parent
0210d1bf24
commit
c9081a8df8
|
@ -1446,8 +1446,8 @@ pub fn (mut f Fmt) infix_expr(node ast.InfixExpr) {
|
||||||
|
|
||||||
pub fn (mut f Fmt) if_expr(it ast.IfExpr) {
|
pub fn (mut f Fmt) if_expr(it ast.IfExpr) {
|
||||||
dollar := if it.is_comptime { '$' } else { '' }
|
dollar := if it.is_comptime { '$' } else { '' }
|
||||||
single_line := it.branches.len == 2 && it.has_else && it.branches[0].stmts.len == 1 &&
|
single_line := it.branches.len == 2 && it.has_else && branch_is_single_line(it.branches[0]) &&
|
||||||
it.branches[1].stmts.len == 1 &&
|
branch_is_single_line(it.branches[1]) &&
|
||||||
(it.is_expr || f.is_assign)
|
(it.is_expr || f.is_assign)
|
||||||
f.single_line_if = single_line
|
f.single_line_if = single_line
|
||||||
for i, branch in it.branches {
|
for i, branch in it.branches {
|
||||||
|
@ -1488,6 +1488,13 @@ pub fn (mut f Fmt) if_expr(it ast.IfExpr) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn branch_is_single_line(b ast.IfBranch) bool {
|
||||||
|
if b.stmts.len == 1 && b.comments.len == 0 && stmt_is_single_line(b.stmts[0]) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
pub fn (mut f Fmt) at_expr(node ast.AtExpr) {
|
pub fn (mut f Fmt) at_expr(node ast.AtExpr) {
|
||||||
f.write(node.name)
|
f.write(node.name)
|
||||||
}
|
}
|
||||||
|
@ -1713,7 +1720,7 @@ fn expr_is_single_line(expr ast.Expr) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
ast.StructInit {
|
ast.StructInit {
|
||||||
if expr.fields.len > 0 || expr.pre_comments.len > 0 {
|
if !expr.is_short && (expr.fields.len > 0 || expr.pre_comments.len > 0) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
fn main() {
|
||||||
|
a := if foo { 'TMP1/${b.nexpected_steps:1d}' } else { '${b.cstep:1d}/${b.nexpected_steps:1d}' }
|
||||||
|
b := if bar {
|
||||||
|
// comment
|
||||||
|
'some str'
|
||||||
|
} else {
|
||||||
|
'other str'
|
||||||
|
}
|
||||||
|
_ := if true {
|
||||||
|
Foo{}
|
||||||
|
} else {
|
||||||
|
Foo{
|
||||||
|
x: 5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_ := if false { Foo{} } else { Foo{5, 6} }
|
||||||
|
}
|
Loading…
Reference in New Issue