diff --git a/vlib/v/fmt/fmt.v b/vlib/v/fmt/fmt.v index b1142f9adf..25bc5a01c9 100644 --- a/vlib/v/fmt/fmt.v +++ b/vlib/v/fmt/fmt.v @@ -145,7 +145,7 @@ fn (mut f Fmt) adjust_complete_line() { for i, buf in f.expr_bufs { // search for low penalties if i == 0 || f.penalties[i-1] <= 1 { - precedence := if i == 0 { 0 } else { f.precedences[i-1] } + precedence := if i == 0 { -1 } else { f.precedences[i-1] } mut len_sub_expr := if i == 0 { buf.len + f.line_len } else { buf.len } mut sub_expr_end_idx := f.penalties.len // search for next position with low penalty and same precedence to form subexpression diff --git a/vlib/v/fmt/tests/expressions_expected.vv b/vlib/v/fmt/tests/expressions_expected.vv index bf91380f93..16b7073dc6 100644 --- a/vlib/v/fmt/tests/expressions_expected.vv +++ b/vlib/v/fmt/tests/expressions_expected.vv @@ -70,3 +70,7 @@ fn (mut p Parser) name_expr() { println(p.peek_tok.lit) } } + +fn set_nr_muls(t table.Type, nr_muls int) table.Type { + return int(t) & 0xff00ffff | (nr_muls << 16) +} diff --git a/vlib/v/fmt/tests/expressions_input.vv b/vlib/v/fmt/tests/expressions_input.vv index e20a7ce737..543bdcfb6e 100644 --- a/vlib/v/fmt/tests/expressions_input.vv +++ b/vlib/v/fmt/tests/expressions_input.vv @@ -82,3 +82,8 @@ fn (mut p Parser) name_expr() { println(p.peek_tok.lit) } } + +fn set_nr_muls(t table.Type, nr_muls int) table.Type { + return int(t) & + 0xff00ffff | (nr_muls << 16) +}