ci: fix v vet call; fmt: fix SizeOf
parent
66f36f6dcc
commit
2716a37916
|
@ -42,7 +42,7 @@ jobs:
|
||||||
run: ./v test-fixed
|
run: ./v test-fixed
|
||||||
- name: Test building v tools
|
- name: Test building v tools
|
||||||
run: ./v build-tools
|
run: ./v build-tools
|
||||||
- name: v vet
|
- name: ./v vet
|
||||||
run: |
|
run: |
|
||||||
v vet vlib/v/parser
|
v vet vlib/v/parser
|
||||||
v vet vlib/v/ast
|
v vet vlib/v/ast
|
||||||
|
|
|
@ -186,6 +186,7 @@ pub struct StructInitField {
|
||||||
pub:
|
pub:
|
||||||
expr Expr
|
expr Expr
|
||||||
pos token.Position
|
pos token.Position
|
||||||
|
comment Comment
|
||||||
pub mut:
|
pub mut:
|
||||||
name string
|
name string
|
||||||
typ table.Type
|
typ table.Type
|
||||||
|
@ -1011,6 +1012,7 @@ pub fn (stmt Stmt) position() token.Position {
|
||||||
// UnsafeStmt {
|
// UnsafeStmt {
|
||||||
// }
|
// }
|
||||||
*/
|
*/
|
||||||
|
//
|
||||||
else { return token.Position{} }
|
else { return token.Position{} }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -145,13 +145,14 @@ pub fn (mut f Fmt) writeln(s string) {
|
||||||
fn (mut f Fmt) adjust_complete_line() {
|
fn (mut f Fmt) adjust_complete_line() {
|
||||||
for i, buf in f.expr_bufs {
|
for i, buf in f.expr_bufs {
|
||||||
// search for low penalties
|
// search for low penalties
|
||||||
if i == 0 || f.penalties[i-1] <= 1 {
|
if i == 0 || f.penalties[i - 1] <= 1 {
|
||||||
precedence := if i == 0 { -1 } 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 len_sub_expr := if i == 0 { buf.len + f.line_len } else { buf.len }
|
||||||
mut sub_expr_end_idx := f.penalties.len
|
mut sub_expr_end_idx := f.penalties.len
|
||||||
// search for next position with low penalty and same precedence to form subexpression
|
// search for next position with low penalty and same precedence to form subexpression
|
||||||
for j in i..f.penalties.len {
|
for j in i .. f.penalties.len {
|
||||||
if f.penalties[j] <= 1 && f.precedences[j] == precedence && len_sub_expr >= max_len[1] {
|
if f.penalties[j] <= 1 &&
|
||||||
|
f.precedences[j] == precedence && len_sub_expr >= max_len[1] {
|
||||||
sub_expr_end_idx = j
|
sub_expr_end_idx = j
|
||||||
break
|
break
|
||||||
} else if f.precedences[j] < precedence {
|
} else if f.precedences[j] < precedence {
|
||||||
|
@ -159,16 +160,16 @@ fn (mut f Fmt) adjust_complete_line() {
|
||||||
len_sub_expr = C.INT32_MAX
|
len_sub_expr = C.INT32_MAX
|
||||||
break
|
break
|
||||||
} else {
|
} else {
|
||||||
len_sub_expr += f.expr_bufs[j+1].len
|
len_sub_expr += f.expr_bufs[j + 1].len
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// if subexpression would fit in single line adjust penalties to actually do so
|
// if subexpression would fit in single line adjust penalties to actually do so
|
||||||
if len_sub_expr <= max_len[max_len.len-1] {
|
if len_sub_expr <= max_len[max_len.len - 1] {
|
||||||
for j in i..sub_expr_end_idx {
|
for j in i .. sub_expr_end_idx {
|
||||||
f.penalties[j] = max_len.len-1
|
f.penalties[j] = max_len.len - 1
|
||||||
}
|
}
|
||||||
if i > 0 {
|
if i > 0 {
|
||||||
f.penalties[i-1] = 0
|
f.penalties[i - 1] = 0
|
||||||
}
|
}
|
||||||
if sub_expr_end_idx < f.penalties.len {
|
if sub_expr_end_idx < f.penalties.len {
|
||||||
f.penalties[sub_expr_end_idx] = 0
|
f.penalties[sub_expr_end_idx] = 0
|
||||||
|
@ -176,8 +177,8 @@ fn (mut f Fmt) adjust_complete_line() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// emergency fallback: decrease penalty in front of long unbreakable parts
|
// emergency fallback: decrease penalty in front of long unbreakable parts
|
||||||
if i > 0 && buf.len > max_len[3] - max_len[1] && f.penalties[i-1] > 0 {
|
if i > 0 && buf.len > max_len[3] - max_len[1] && f.penalties[i - 1] > 0 {
|
||||||
f.penalties[i-1] = if buf.len >= max_len[2] { 0 } else { 1 }
|
f.penalties[i - 1] = if buf.len >= max_len[2] { 0 } else { 1 }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -892,7 +893,7 @@ pub fn (mut f Fmt) expr(node ast.Expr) {
|
||||||
if node.is_type {
|
if node.is_type {
|
||||||
f.write('sizeof(')
|
f.write('sizeof(')
|
||||||
if node.type_name != '' {
|
if node.type_name != '' {
|
||||||
f.write(node.type_name)
|
f.write(f.short_module(node.type_name))
|
||||||
} else {
|
} else {
|
||||||
f.write(f.type_to_str(node.typ))
|
f.write(f.type_to_str(node.typ))
|
||||||
}
|
}
|
||||||
|
@ -1136,8 +1137,7 @@ pub fn (mut f Fmt) short_module(name string) string {
|
||||||
|
|
||||||
pub fn (mut f Fmt) if_expr(it ast.IfExpr) {
|
pub fn (mut f Fmt) if_expr(it ast.IfExpr) {
|
||||||
single_line := it.branches.len == 2 && it.has_else &&
|
single_line := it.branches.len == 2 && it.has_else &&
|
||||||
it.branches[0].stmts.len == 1 &&
|
it.branches[0].stmts.len == 1 && it.branches[1].stmts.len == 1 &&
|
||||||
it.branches[1].stmts.len == 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 {
|
||||||
|
@ -1435,10 +1435,10 @@ pub fn (mut f Fmt) array_init(it ast.ArrayInit) {
|
||||||
if last_line_nr < line_nr {
|
if last_line_nr < line_nr {
|
||||||
penalty--
|
penalty--
|
||||||
}
|
}
|
||||||
if i == 0 || it.exprs[i - 1] is ast.ArrayInit ||
|
if i == 0 ||
|
||||||
|
it.exprs[i - 1] is ast.ArrayInit ||
|
||||||
it.exprs[i - 1] is ast.StructInit ||
|
it.exprs[i - 1] is ast.StructInit ||
|
||||||
it.exprs[i - 1] is ast.MapInit ||
|
it.exprs[i - 1] is ast.MapInit || it.exprs[i - 1] is ast.CallExpr {
|
||||||
it.exprs[i - 1] is ast.CallExpr {
|
|
||||||
penalty--
|
penalty--
|
||||||
}
|
}
|
||||||
if expr is ast.ArrayInit ||
|
if expr is ast.ArrayInit ||
|
||||||
|
|
|
@ -5,8 +5,12 @@ struct User {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
u := User{
|
||||||
|
name: 'Peter'
|
||||||
|
}
|
||||||
if true {
|
if true {
|
||||||
}
|
}
|
||||||
|
n := sizeof(User)
|
||||||
// else
|
// else
|
||||||
// else {
|
// else {
|
||||||
// }
|
// }
|
||||||
|
|
|
@ -32,12 +32,12 @@ fn (mut p Parser) struct_decl() ast.StructDecl {
|
||||||
p.next() // C || JS
|
p.next() // C || JS
|
||||||
p.next() // .
|
p.next() // .
|
||||||
}
|
}
|
||||||
|
|
||||||
is_typedef := 'typedef' in p.attrs
|
is_typedef := 'typedef' in p.attrs
|
||||||
end_pos := p.tok.position()
|
end_pos := p.tok.position()
|
||||||
mut name := p.check_name()
|
mut name := p.check_name()
|
||||||
if name.len == 1 && name[0].is_capital() {
|
if name.len == 1 && name[0].is_capital() {
|
||||||
p.error_with_pos('single letter capital names are reserved for generic template types.', end_pos)
|
p.error_with_pos('single letter capital names are reserved for generic template types.',
|
||||||
|
end_pos)
|
||||||
}
|
}
|
||||||
mut generic_types := []table.Type{}
|
mut generic_types := []table.Type{}
|
||||||
if p.tok.kind == .lt {
|
if p.tok.kind == .lt {
|
||||||
|
@ -51,12 +51,10 @@ fn (mut p Parser) struct_decl() ast.StructDecl {
|
||||||
}
|
}
|
||||||
p.check(.gt)
|
p.check(.gt)
|
||||||
}
|
}
|
||||||
|
|
||||||
no_body := p.tok.kind != .lcbr
|
no_body := p.tok.kind != .lcbr
|
||||||
if language == .v && no_body {
|
if language == .v && no_body {
|
||||||
p.error('`$p.tok.lit` lacks body')
|
p.error('`$p.tok.lit` lacks body')
|
||||||
}
|
}
|
||||||
|
|
||||||
if language == .v && p.mod != 'builtin' && name.len > 0 && !name[0].is_capital() {
|
if language == .v && p.mod != 'builtin' && name.len > 0 && !name[0].is_capital() {
|
||||||
p.error_with_pos('struct name `$name` must begin with capital letter', end_pos)
|
p.error_with_pos('struct name `$name` must begin with capital letter', end_pos)
|
||||||
}
|
}
|
||||||
|
@ -282,7 +280,7 @@ fn (mut p Parser) struct_init(short_syntax bool) ast.StructInit {
|
||||||
saved_is_amp := p.is_amp
|
saved_is_amp := p.is_amp
|
||||||
p.is_amp = false
|
p.is_amp = false
|
||||||
for p.tok.kind != .rcbr && p.tok.kind != .rpar {
|
for p.tok.kind != .rcbr && p.tok.kind != .rpar {
|
||||||
p.check_comment()
|
comment := p.check_comment()
|
||||||
mut field_name := ''
|
mut field_name := ''
|
||||||
if no_keys {
|
if no_keys {
|
||||||
expr := p.expr(0)
|
expr := p.expr(0)
|
||||||
|
@ -290,6 +288,7 @@ fn (mut p Parser) struct_init(short_syntax bool) ast.StructInit {
|
||||||
fields << ast.StructInitField{
|
fields << ast.StructInitField{
|
||||||
expr: expr
|
expr: expr
|
||||||
pos: expr.position()
|
pos: expr.position()
|
||||||
|
comment: comment
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
first_field_pos := p.tok.position()
|
first_field_pos := p.tok.position()
|
||||||
|
|
Loading…
Reference in New Issue