fmt: prevent rare code corruption with array pre comments (#9908)
parent
dee733aae4
commit
e711e8634e
|
@ -38,7 +38,6 @@ const (
|
||||||
'vlib/v/tests/string_interpolation_test.v' /* TODO byteptr: &byte.str() behaves differently than byteptr.str() */,
|
'vlib/v/tests/string_interpolation_test.v' /* TODO byteptr: &byte.str() behaves differently than byteptr.str() */,
|
||||||
'vlib/v/gen/js/tests/js.v', /* local `hello` fn, gets replaced with module `hello` aliased as `hl` */
|
'vlib/v/gen/js/tests/js.v', /* local `hello` fn, gets replaced with module `hello` aliased as `hl` */
|
||||||
'examples/c_interop_wkhtmltopdf.v', /* &charptr --> &&char */
|
'examples/c_interop_wkhtmltopdf.v', /* &charptr --> &&char */
|
||||||
'examples/path_tracing.v', /* block --> line comments corrupts code */
|
|
||||||
'vlib/v/gen/c/cheaders.v' /* infix wrapping error */,
|
'vlib/v/gen/c/cheaders.v' /* infix wrapping error */,
|
||||||
]
|
]
|
||||||
vfmt_verify_list = [
|
vfmt_verify_list = [
|
||||||
|
|
|
@ -1428,7 +1428,12 @@ pub fn (mut f Fmt) array_init(node ast.ArrayInit) {
|
||||||
f.write(' ')
|
f.write(' ')
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if c.pos.last_line < node.pos.last_line {
|
next_line := if node.exprs.len > 0 {
|
||||||
|
node.exprs[0].position().line_nr
|
||||||
|
} else {
|
||||||
|
node.pos.last_line
|
||||||
|
}
|
||||||
|
if c.pos.last_line < next_line {
|
||||||
f.comment(c, level: .indent)
|
f.comment(c, level: .indent)
|
||||||
if node.exprs.len == 0 {
|
if node.exprs.len == 0 {
|
||||||
f.writeln('')
|
f.writeln('')
|
||||||
|
|
|
@ -73,4 +73,7 @@ fn comment_at_line_start_with_expressions_after() {
|
||||||
arr := [123456789012345, 234567890123456, 678901234567890, 789012345678901, /* at the end */
|
arr := [123456789012345, 234567890123456, 678901234567890, 789012345678901, /* at the end */
|
||||||
345678901234567, /* in between */ 456789012345678,
|
345678901234567, /* in between */ 456789012345678,
|
||||||
/* line start */ 567890123456789, 890123456789012]
|
/* line start */ 567890123456789, 890123456789012]
|
||||||
|
arr2 := [/* same line pre comment */ Foo{
|
||||||
|
a: 123
|
||||||
|
}]
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue