mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
fmt: improve match branch wrapping (#9619)
This commit is contained in:
parent
1d5ed89138
commit
3a07fbc653
@ -1475,12 +1475,12 @@ pub fn (expr Expr) position() token.Position {
|
||||
// println('compiler bug, unhandled EmptyExpr position()')
|
||||
return token.Position{}
|
||||
}
|
||||
NodeError, ArrayDecompose, ArrayInit, AsCast, Assoc, AtExpr, BoolLiteral, CallExpr, CastExpr,
|
||||
ChanInit, CharLiteral, ConcatExpr, Comment, ComptimeCall, ComptimeSelector, EnumVal, DumpExpr,
|
||||
FloatLiteral, GoExpr, Ident, IfExpr, IntegerLiteral, Likely, LockExpr, MapInit, MatchExpr,
|
||||
None, OffsetOf, OrExpr, ParExpr, PostfixExpr, PrefixExpr, RangeExpr, SelectExpr, SelectorExpr,
|
||||
SizeOf, SqlExpr, StringInterLiteral, StringLiteral, StructInit, TypeNode, TypeOf, UnsafeExpr
|
||||
{
|
||||
NodeError, ArrayDecompose, ArrayInit, AsCast, Assoc, AtExpr, BoolLiteral, CallExpr,
|
||||
CastExpr, ChanInit, CharLiteral, ConcatExpr, Comment, ComptimeCall, ComptimeSelector,
|
||||
EnumVal, DumpExpr, FloatLiteral, GoExpr, Ident, IfExpr, IntegerLiteral, Likely, LockExpr,
|
||||
MapInit, MatchExpr, None, OffsetOf, OrExpr, ParExpr, PostfixExpr, PrefixExpr, RangeExpr,
|
||||
SelectExpr, SelectorExpr, SizeOf, SqlExpr, StringInterLiteral, StringLiteral, StructInit,
|
||||
TypeNode, TypeOf, UnsafeExpr {
|
||||
return expr.pos
|
||||
}
|
||||
IndexExpr {
|
||||
@ -1617,8 +1617,7 @@ pub fn (node Node) position() token.Position {
|
||||
StructField {
|
||||
return node.pos.extend(node.type_pos)
|
||||
}
|
||||
MatchBranch, SelectBranch, EnumField, ConstField, StructInitField, GlobalField, CallArg
|
||||
{
|
||||
MatchBranch, SelectBranch, EnumField, ConstField, StructInitField, GlobalField, CallArg {
|
||||
return node.pos
|
||||
}
|
||||
IfBranch {
|
||||
|
@ -3084,8 +3084,8 @@ pub fn (mut c Checker) assign_stmt(mut assign_stmt ast.AssignStmt) {
|
||||
right.position())
|
||||
}
|
||||
}
|
||||
.and_assign, .or_assign, .xor_assign, .mod_assign, .left_shift_assign, .right_shift_assign
|
||||
{
|
||||
.and_assign, .or_assign, .xor_assign, .mod_assign, .left_shift_assign,
|
||||
.right_shift_assign {
|
||||
if !left_sym.is_int()
|
||||
&& !c.table.get_final_type_symbol(left_type_unwrapped).is_int() {
|
||||
c.error('operator $assign_stmt.op.str() not defined on left operand type `$left_sym.name`',
|
||||
|
@ -2068,7 +2068,12 @@ pub fn (mut f Fmt) match_expr(node ast.MatchExpr) {
|
||||
// normal branch
|
||||
f.is_mbranch_expr = true
|
||||
for j, expr in branch.exprs {
|
||||
f.expr(expr)
|
||||
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)
|
||||
@ -2076,7 +2081,6 @@ pub fn (mut f Fmt) match_expr(node ast.MatchExpr) {
|
||||
if j < branch.exprs.len - 1 {
|
||||
f.write(', ')
|
||||
}
|
||||
f.wrap_long_line(4, false)
|
||||
}
|
||||
f.is_mbranch_expr = false
|
||||
} else {
|
||||
|
@ -24,11 +24,9 @@ fn match_branch_comment() {
|
||||
|
||||
fn really_long_branch_exprs() {
|
||||
match x {
|
||||
ArrayInit, AsCast, Assoc, AtExpr, BoolLiteral, CallExpr, CastExpr, ChanInit, CharLiteral,
|
||||
ConcatExpr, Comment, EnumVal, FloatLiteral, GoExpr, Ident, IfExpr, IndexExpr, IntegerLiteral,
|
||||
Likely, LockExpr, MapInit, MatchExpr, None, OrExpr, ParExpr, PostfixExpr, PrefixExpr,
|
||||
RangeExpr, SelectExpr, SelectorExpr, SizeOf, SqlExpr, StringInterLiteral, StringLiteral,
|
||||
StructInit, Type, TypeOf, UnsafeExpr {
|
||||
NodeError, ArrayDecompose, ArrayInit, AsCast, Assoc, AtExpr, BoolLiteral, CallExpr,
|
||||
MapInit, MatchExpr, None, OffsetOf, OrExpr, ParExpr, PostfixExpr, PrefixExpr, RangeExpr,
|
||||
SelectExpr, SelectorExpr, SizeOf, SqlExpr, StringInterLiteral, StringLiteral, StructInit {
|
||||
return expr.pos
|
||||
}
|
||||
InfixExpr {
|
||||
|
@ -24,7 +24,7 @@ fn match_branch_comment() {
|
||||
|
||||
fn really_long_branch_exprs() {
|
||||
match x {
|
||||
ArrayInit, AsCast, Assoc, AtExpr, BoolLiteral, CallExpr, CastExpr, ChanInit, CharLiteral, ConcatExpr, Comment, EnumVal, FloatLiteral, GoExpr, Ident, IfExpr, IndexExpr, IntegerLiteral, Likely, LockExpr, MapInit, MatchExpr, None, OrExpr, ParExpr, PostfixExpr, PrefixExpr, RangeExpr, SelectExpr, SelectorExpr, SizeOf, SqlExpr, StringInterLiteral, StringLiteral, StructInit, Type, TypeOf, UnsafeExpr {
|
||||
NodeError, ArrayDecompose, ArrayInit, AsCast, Assoc, AtExpr, BoolLiteral, CallExpr, MapInit, MatchExpr, None, OffsetOf, OrExpr, ParExpr, PostfixExpr, PrefixExpr, RangeExpr, SelectExpr, SelectorExpr, SizeOf, SqlExpr, StringInterLiteral, StringLiteral, StructInit {
|
||||
return expr.pos
|
||||
}
|
||||
InfixExpr {
|
||||
|
Loading…
Reference in New Issue
Block a user