diff --git a/cmd/tools/vdoc/html.v b/cmd/tools/vdoc/html.v
index f69735fbbb..2bf0b572cd 100644
--- a/cmd/tools/vdoc/html.v
+++ b/cmd/tools/vdoc/html.v
@@ -310,7 +310,7 @@ fn (vd VDoc) gen_html(d doc.Doc) string {
} else {
symbols_toc_str
}).replace('{{ contents }}', contents.str()).replace('{{ right_content }}', if cfg.is_multi
- && vd.docs.len > 1&& d.head.name != 'README' {
+ && vd.docs.len > 1 && d.head.name != 'README' {
'
'
} else {
''
@@ -401,7 +401,7 @@ fn html_highlight(code string, tb &table.Table) string {
if token.is_key(tok.lit) || token.is_decl(tok.kind) {
tok_typ = .keyword
} else if tok.kind == .decl_assign || tok.kind.is_assign() || tok.is_unary()
- || tok.kind.is_relational()|| tok.kind.is_infix() {
+ || tok.kind.is_relational() || tok.kind.is_infix() {
tok_typ = .operator
}
}
diff --git a/vlib/v/checker/check_types.v b/vlib/v/checker/check_types.v
index ef9536c8b7..3d0a018834 100644
--- a/vlib/v/checker/check_types.v
+++ b/vlib/v/checker/check_types.v
@@ -303,7 +303,7 @@ pub fn (c &Checker) get_default_fmt(ftyp table.Type, typ table.Type) byte {
}
if ftyp in [table.string_type, table.bool_type]
|| sym.kind in [.enum_, .array, .array_fixed, .struct_, .map, .multi_return, .sum_type, .none_]
- || ftyp.has_flag(.optional)|| sym.has_method('str') {
+ || ftyp.has_flag(.optional) || sym.has_method('str') {
return `s`
} else {
return `_`
diff --git a/vlib/v/checker/checker.v b/vlib/v/checker/checker.v
index 2437f4b8d5..2080ee9e2b 100644
--- a/vlib/v/checker/checker.v
+++ b/vlib/v/checker/checker.v
@@ -1298,11 +1298,11 @@ fn (mut c Checker) check_map_and_filter(is_map bool, elem_typ table.Type, call_e
ast.AnonFn {
if arg_expr.decl.params.len > 1 {
c.error('function needs exactly 1 argument', arg_expr.decl.pos)
- } else if is_map
- && (arg_expr.decl.return_type == table.void_type || arg_expr.decl.params[0].typ != elem_typ) {
+ } else if is_map && (arg_expr.decl.return_type == table.void_type
+ || arg_expr.decl.params[0].typ != elem_typ) {
c.error('type mismatch, should use `fn(a $elem_sym.name) T {...}`', arg_expr.decl.pos)
- } else if !is_map
- && (arg_expr.decl.return_type != table.bool_type || arg_expr.decl.params[0].typ != elem_typ) {
+ } else if !is_map && (arg_expr.decl.return_type != table.bool_type
+ || arg_expr.decl.params[0].typ != elem_typ) {
c.error('type mismatch, should use `fn(a $elem_sym.name) bool {...}`',
arg_expr.decl.pos)
}
@@ -2389,8 +2389,8 @@ pub fn (mut c Checker) return_stmt(mut return_stmt ast.Return) {
}
for i, exp_type in expected_types {
got_typ := c.unwrap_generic(got_types[i])
- if got_typ.has_flag(.optional)
- && (!exp_type.has_flag(.optional) || c.table.type_to_str(got_typ) != c.table.type_to_str(exp_type)) {
+ if got_typ.has_flag(.optional) && (!exp_type.has_flag(.optional)
+ || c.table.type_to_str(got_typ) != c.table.type_to_str(exp_type)) {
pos := return_stmt.exprs[i].position()
c.error('cannot use `${c.table.type_to_str(got_typ)}` as type `${c.table.type_to_str(exp_type)}` in return argument',
pos)
@@ -2413,7 +2413,7 @@ pub fn (mut c Checker) return_stmt(mut return_stmt ast.Return) {
pos)
}
if (exp_type.is_ptr() || exp_type.is_pointer())
- && (!got_typ.is_ptr() && !got_typ.is_pointer())&& got_typ != table.int_literal_type {
+ && (!got_typ.is_ptr() && !got_typ.is_pointer()) && got_typ != table.int_literal_type {
pos := return_stmt.exprs[i].position()
c.error('fn `$c.cur_fn.name` expects you to return a reference type `${c.table.type_to_str(exp_type)}`, but you are returning `${c.table.type_to_str(got_typ)}` instead',
pos)
@@ -3765,7 +3765,8 @@ pub fn (mut c Checker) cast_expr(mut node ast.CastExpr) table.Type {
node.pos)
}
} else if node.typ == table.string_type
- && (from_type_sym.kind in [.int_literal, .int, .byte, .byteptr, .bool] || (from_type_sym.kind == .array && from_type_sym.name == 'array_byte')) {
+ && (from_type_sym.kind in [.int_literal, .int, .byte, .byteptr, .bool]
+ || (from_type_sym.kind == .array && from_type_sym.name == 'array_byte')) {
type_name := c.table.type_to_str(node.expr_type)
c.error('cannot cast type `$type_name` to string, use `x.str()` instead', node.pos)
} else if node.expr_type == table.string_type {
@@ -5195,7 +5196,7 @@ pub fn (mut c Checker) index_expr(mut node ast.IndexExpr) table.Type {
node.left_type = typ
typ_sym := c.table.get_final_type_symbol(typ)
if typ_sym.kind !in [.array, .array_fixed, .string, .map] && !typ.is_ptr()
- && typ !in [table.byteptr_type, table.charptr_type]&& !typ.has_flag(.variadic) {
+ && typ !in [table.byteptr_type, table.charptr_type] && !typ.has_flag(.variadic) {
c.error('type `$typ_sym.name` does not support indexing', node.pos)
}
if typ_sym.kind == .string && !typ.is_ptr() && node.is_setter {
@@ -5640,9 +5641,8 @@ fn (mut c Checker) sql_stmt(mut node ast.SqlStmt) table.Type {
}
fn (mut c Checker) fetch_and_verify_orm_fields(info table.Struct, pos token.Position, table_name string) []table.Field {
- fields := info.fields.filter(
- (it.typ in [table.string_type, table.int_type, table.bool_type] || c.table.types[int(it.typ)].kind == .struct_)
- && !it.attrs.contains('skip'))
+ fields := info.fields.filter((it.typ in [table.string_type, table.int_type, table.bool_type]
+ || c.table.types[int(it.typ)].kind == .struct_) && !it.attrs.contains('skip'))
if fields.len == 0 {
c.error('V orm: select: empty fields in `$table_name`', pos)
return []table.Field{}
@@ -5812,7 +5812,7 @@ fn (mut c Checker) fn_decl(mut node ast.FnDecl) {
}
node.has_return = c.returns || has_top_return(node.stmts)
if node.language == .v && !node.no_body && node.return_type != table.void_type
- && !node.has_return&& node.name !in ['panic', 'exit'] {
+ && !node.has_return && node.name !in ['panic', 'exit'] {
if c.inside_anon_fn {
c.error('missing return at the end of an anonymous function', node.pos)
} else {
diff --git a/vlib/v/checker/mark_used.v b/vlib/v/checker/mark_used.v
index 3b19859cc6..14b6f0726b 100644
--- a/vlib/v/checker/mark_used.v
+++ b/vlib/v/checker/mark_used.v
@@ -144,7 +144,7 @@ fn (mut c Checker) mark_used(ast_files []ast.File) {
if walker.n_maps > 0 {
for k, mut mfn in all_fns {
if k == 'new_map_2' || k.starts_with('map_') || k.ends_with('set_1')
- || k.ends_with('exists_1')|| k.ends_with('get_1') {
+ || k.ends_with('exists_1') || k.ends_with('get_1') {
walker.fn_decl(mut mfn)
}
}
diff --git a/vlib/v/fmt/fmt.v b/vlib/v/fmt/fmt.v
index 82e49ce63f..5fe5935c32 100644
--- a/vlib/v/fmt/fmt.v
+++ b/vlib/v/fmt/fmt.v
@@ -1541,7 +1541,7 @@ pub fn (mut f Fmt) infix_expr(node ast.InfixExpr) {
if node.op == .left_shift {
f.is_assign = true // To write ternary if on a single line
}
- infix_start := f.out.len
+ start_pos := f.out.len
start_len := f.line_len
f.expr(node.left)
is_one_val_array_init := node.op in [.key_in, .not_in] && node.right is ast.ArrayInit
@@ -1562,14 +1562,14 @@ pub fn (mut f Fmt) infix_expr(node ast.InfixExpr) {
if !buffering_save && f.buffering {
f.buffering = false
if !f.single_line_if && f.line_len > fmt.max_len.last() {
- f.wrap_infix(infix_start, start_len)
+ f.wrap_infix(start_pos, start_len, false)
}
}
f.is_assign = is_assign_save
f.or_expr(node.or_block)
}
-pub fn (mut f Fmt) wrap_infix(start_pos int, start_len int) {
+pub fn (mut f Fmt) wrap_infix(start_pos int, start_len int, ignore_paren bool) {
cut_span := f.out.len - start_pos
condstr := f.out.cut_last(cut_span)
is_cond_infix := condstr.contains_any_substr(['&&', '||'])
@@ -1604,6 +1604,9 @@ pub fn (mut f Fmt) wrap_infix(start_pos int, start_len int) {
index++
} else {
conditions[index] += '$cp '
+ if ignore_paren {
+ continue
+ }
if cp.starts_with('(') {
grouped_cond = true
} else if cp.ends_with(')') {
@@ -1614,15 +1617,21 @@ pub fn (mut f Fmt) wrap_infix(start_pos int, start_len int) {
for i, c in conditions {
cnd := c.trim_space()
if f.line_len + cnd.len < fmt.max_len[penalties[i]] {
- if i > 0 && (!is_cond_infix || i < conditions.len - 1) {
+ if (i > 0 && i < conditions.len) || (ignore_paren && i == 0 && cnd[3] == `(`) {
f.write(' ')
}
f.write(cnd)
} else {
+ prev_len := f.line_len
+ prev_pos := f.out.len
f.writeln('')
f.indent++
f.write(cnd)
f.indent--
+ if f.line_len > fmt.max_len.last() && (cnd[0] == `(` || cnd[3] == `(`)
+ && cnd.ends_with(')') {
+ f.wrap_infix(prev_pos, prev_len, true)
+ }
}
}
}
@@ -2129,8 +2138,9 @@ pub fn (mut f Fmt) struct_init(it ast.StructInit) {
f.writeln('')
}
f.comments(field.next_comments, inline: false, has_nl: true, level: .keep)
- if single_line_fields
- && (field.comments.len > 0 || field.next_comments.len > 0 || !expr_is_single_line(field.expr)
+ if single_line_fields && (field.comments.len > 0
+ || field.next_comments.len > 0
+ || !expr_is_single_line(field.expr)
|| f.line_len > fmt.max_len.last()) {
single_line_fields = false
f.out.go_back_to(fields_start)
diff --git a/vlib/v/fmt/tests/expressions_expected.vv b/vlib/v/fmt/tests/expressions_expected.vv
index ccb23b46c4..c5901bb8dc 100644
--- a/vlib/v/fmt/tests/expressions_expected.vv
+++ b/vlib/v/fmt/tests/expressions_expected.vv
@@ -53,7 +53,7 @@ fn main() {
println('this is quite a long string' +
' that is followd by an even longer part that should go to another line')
if (a == b && b > r) || (d > r) || (a < b) || (b < d && a + b > r)
- || (a + b + d >= 0 && r < 0)|| (a > b && d - r < b) {
+ || (a + b + d >= 0 && r < 0) || (a > b && d - r < b) {
println('ok')
}
}
diff --git a/vlib/v/fmt/tests/infix_expr_expected.vv b/vlib/v/fmt/tests/infix_expr_expected.vv
new file mode 100644
index 0000000000..9174abaca5
--- /dev/null
+++ b/vlib/v/fmt/tests/infix_expr_expected.vv
@@ -0,0 +1,16 @@
+fn grouped_cond_single_line() {
+ // fmt tries to keep grouped conditions together...
+ _ := one_condition_before && another_condition
+ && (inside_paren || is_kept_together || if_possible) && end_cond
+}
+
+fn unwrap_grouped_conds() {
+ // ...but sometimes they have to be splitted
+ _ := one_condition && before_condition && (conds_inside_paren
+ || are_kept_together || if_possible || but_this_is_really_too_much
+ || for_one_line)
+ _ := (also_inside_parens || just_as_above || but_this_is_also_more
+ || than_a_single_line_could_fit) && end_cond
+ fields = fields.filter((it.typ in [string_type, int_type, bool_type]
+ || c.table.types[int(it.typ)].kind == .struct_) && !it.attrs.contains('skip'))
+}
diff --git a/vlib/v/fmt/tests/infix_expr_input.vv b/vlib/v/fmt/tests/infix_expr_input.vv
new file mode 100644
index 0000000000..e48d0ad30b
--- /dev/null
+++ b/vlib/v/fmt/tests/infix_expr_input.vv
@@ -0,0 +1,11 @@
+fn grouped_cond_single_line() {
+ // fmt tries to keep grouped conditions together...
+ _ := one_condition_before && another_condition && (inside_paren || is_kept_together || if_possible) && end_cond
+}
+
+fn unwrap_grouped_conds() {
+ // ...but sometimes they have to be splitted
+ _ := one_condition && before_condition && (conds_inside_paren || are_kept_together || if_possible || but_this_is_really_too_much || for_one_line)
+ _ := (also_inside_parens || just_as_above || but_this_is_also_more || than_a_single_line_could_fit) && end_cond
+ fields = fields.filter((it.typ in [string_type, int_type, bool_type] || c.table.types[int(it.typ)].kind == .struct_) && !it.attrs.contains('skip'))
+}
diff --git a/vlib/v/gen/c/cgen.v b/vlib/v/gen/c/cgen.v
index faa255a5e3..74941dc86f 100644
--- a/vlib/v/gen/c/cgen.v
+++ b/vlib/v/gen/c/cgen.v
@@ -1074,7 +1074,7 @@ fn (mut g Gen) stmt(node ast.Stmt) {
// We are using prebuilt modules, we do not need to generate
// their functions in main.c.
if node.mod != 'main' && node.mod != 'help' && !should_bundle_module
- && !g.pref.is_test&& node.generic_params.len == 0 {
+ && !g.pref.is_test && node.generic_params.len == 0 {
skip = true
}
}
@@ -1788,7 +1788,7 @@ fn (mut g Gen) gen_assign_stmt(assign_stmt ast.AssignStmt) {
// int pos = *(int*)_t190.data;
mut tmp_opt := ''
is_optional := g.is_autofree && (assign_stmt.op in [.decl_assign, .assign])
- && assign_stmt.left_types.len == 1&& assign_stmt.right[0] is ast.CallExpr
+ && assign_stmt.left_types.len == 1 && assign_stmt.right[0] is ast.CallExpr
if is_optional {
// g.write('/* optional assignment */')
call_expr := assign_stmt.right[0] as ast.CallExpr
@@ -2028,7 +2028,8 @@ fn (mut g Gen) gen_assign_stmt(assign_stmt ast.AssignStmt) {
} else {
g.out.go_back_to(pos)
is_var_mut := !is_decl && left is ast.Ident
- && (g.for_in_mut_val_name == (left as ast.Ident).name || (left as ast.Ident).name in g.fn_mut_arg_names)
+ && (g.for_in_mut_val_name == (left as ast.Ident).name
+ || (left as ast.Ident).name in g.fn_mut_arg_names)
addr := if is_var_mut { '' } else { '&' }
g.writeln('')
g.write('memcpy($addr')
@@ -2100,7 +2101,8 @@ fn (mut g Gen) gen_assign_stmt(assign_stmt ast.AssignStmt) {
}
if !is_fixed_array_copy || is_decl {
if !is_decl && var_type != table.string_type_idx && left is ast.Ident
- && (g.for_in_mut_val_name == (left as ast.Ident).name || (left as ast.Ident).name in g.fn_mut_arg_names) {
+ && (g.for_in_mut_val_name == (left as ast.Ident).name
+ || (left as ast.Ident).name in g.fn_mut_arg_names) {
g.write('*')
}
g.expr(left)
@@ -3337,7 +3339,7 @@ fn (mut g Gen) infix_expr(node ast.InfixExpr) {
g.or_block(tmp_opt, node.or_block, table.void_type)
}
} else if unaliased_left.idx() in [table.u32_type_idx, table.u64_type_idx]
- && unaliased_right.is_signed()&& node.op in [.eq, .ne, .gt, .lt, .ge, .le] {
+ && unaliased_right.is_signed() && node.op in [.eq, .ne, .gt, .lt, .ge, .le] {
bitsize := if unaliased_left.idx() == table.u32_type_idx
&& unaliased_right.idx() != table.i64_type_idx {
32
@@ -3350,7 +3352,7 @@ fn (mut g Gen) infix_expr(node ast.InfixExpr) {
g.expr(node.right)
g.write(')')
} else if unaliased_right.idx() in [table.u32_type_idx, table.u64_type_idx]
- && unaliased_left.is_signed()&& node.op in [.eq, .ne, .gt, .lt, .ge, .le] {
+ && unaliased_left.is_signed() && node.op in [.eq, .ne, .gt, .lt, .ge, .le] {
bitsize := if unaliased_right.idx() == table.u32_type_idx
&& unaliased_left.idx() != table.i64_type_idx {
32
@@ -3785,7 +3787,7 @@ fn (mut g Gen) select_expr(node ast.SelectExpr) {
expr := branch.stmt.expr as ast.InfixExpr
channels << expr.left
if expr.right is ast.Ident || expr.right is ast.IndexExpr
- || expr.right is ast.SelectorExpr|| expr.right is ast.StructInit {
+ || expr.right is ast.SelectorExpr || expr.right is ast.StructInit {
// addressable objects in the `C` output
objs << expr.right
tmp_objs << ''
@@ -4006,8 +4008,9 @@ fn (mut g Gen) if_expr(node ast.IfExpr) {
// (as it used to be done).
// Always use this in -autofree, since ?: can have tmp expressions that have to be freed.
first_branch := node.branches[0]
- needs_tmp_var := node.is_expr
- && (g.is_autofree || (g.pref.experimental && (first_branch.stmts.len > 1 || (first_branch.stmts[0] is ast.ExprStmt && (first_branch.stmts[0] as ast.ExprStmt).expr is ast.IfExpr))))
+ needs_tmp_var := node.is_expr && (g.is_autofree || (g.pref.experimental
+ && (first_branch.stmts.len > 1 || (first_branch.stmts[0] is ast.ExprStmt
+ && (first_branch.stmts[0] as ast.ExprStmt).expr is ast.IfExpr))))
/*
needs_tmp_var := node.is_expr &&
(g.autofree || g.pref.experimental) &&
@@ -4925,7 +4928,7 @@ fn (mut g Gen) struct_init(struct_init ast.StructInit) {
}
if !cloned {
if field.expected_type.is_ptr() && !(field.typ.is_ptr()
- || field.typ.is_pointer())&& !field.typ.is_number() {
+ || field.typ.is_pointer()) && !field.typ.is_number() {
g.write('/* autoref */&')
}
g.expr_with_cast(field.expr, field.typ, field.expected_type)
@@ -4991,7 +4994,7 @@ fn (mut g Gen) struct_init(struct_init ast.StructInit) {
}
if !cloned {
if sfield.expected_type.is_ptr() && !(sfield.typ.is_ptr()
- || sfield.typ.is_pointer())&& !sfield.typ.is_number() {
+ || sfield.typ.is_pointer()) && !sfield.typ.is_number() {
g.write('/* autoref */&')
}
g.expr_with_cast(sfield.expr, sfield.typ, sfield.expected_type)
diff --git a/vlib/v/gen/c/fn.v b/vlib/v/gen/c/fn.v
index 88766e4014..fd31253a6f 100644
--- a/vlib/v/gen/c/fn.v
+++ b/vlib/v/gen/c/fn.v
@@ -107,7 +107,7 @@ fn (mut g Gen) gen_fn_decl(node ast.FnDecl, skip bool) {
}
}
if g.pref.obfuscate && g.cur_mod.name == 'main' && name.starts_with('main__')
- && name != 'main__main'&& node.name != 'str' {
+ && name != 'main__main' && node.name != 'str' {
mut key := node.name
if node.is_method {
sym := g.table.get_type_symbol(node.receiver.typ)
@@ -179,7 +179,7 @@ fn (mut g Gen) gen_fn_decl(node ast.FnDecl, skip bool) {
fargs, fargtypes := g.fn_args(node.params, node.is_variadic)
arg_str := g.out.after(arg_start_pos)
if node.no_body || ((g.pref.use_cache && g.pref.build_mode != .build_module) && node.is_builtin
- && !g.is_test)|| skip {
+ && !g.is_test) || skip {
// Just a function header. Builtin function bodies are defined in builtin.o
g.definitions.writeln(');') // // NO BODY')
g.writeln(');')
@@ -901,7 +901,7 @@ fn (mut g Gen) call_args(node ast.CallExpr) {
break
}
use_tmp_var_autofree := g.is_autofree && arg.typ == table.string_type && arg.is_tmp_autofree
- && !g.inside_const&& !g.is_builtin_mod
+ && !g.inside_const && !g.is_builtin_mod
// g.write('/* af=$arg.is_tmp_autofree */')
// some c fn definitions dont have args (cfns.v) or are not updated in checker
// when these are fixed we wont need this check
diff --git a/vlib/v/gen/c/str.v b/vlib/v/gen/c/str.v
index 5c104be6ce..9ad908eb09 100644
--- a/vlib/v/gen/c/str.v
+++ b/vlib/v/gen/c/str.v
@@ -343,8 +343,8 @@ fn (mut g Gen) gen_expr_to_string(expr ast.Expr, etype table.Type) {
} else if sym_has_str_method
|| sym.kind in [.array, .array_fixed, .map, .struct_, .multi_return, .sum_type, .interface_] {
is_ptr := typ.is_ptr()
- is_var_mut := expr is ast.Ident
- && ((expr as ast.Ident).name == g.for_in_mut_val_name || (expr as ast.Ident).name in g.fn_mut_arg_names)
+ is_var_mut := expr is ast.Ident && ((expr as ast.Ident).name == g.for_in_mut_val_name
+ || (expr as ast.Ident).name in g.fn_mut_arg_names)
str_fn_name := g.gen_str_for_type(typ)
if is_ptr && !is_var_mut {
g.write('_STR("&%.*s\\000", 2, ')
diff --git a/vlib/v/parser/fn.v b/vlib/v/parser/fn.v
index b4fcab29b8..2c2fdc9450 100644
--- a/vlib/v/parser/fn.v
+++ b/vlib/v/parser/fn.v
@@ -582,7 +582,7 @@ fn (mut p Parser) fn_args() ([]table.Param, bool, bool) {
}
types_only := p.tok.kind in [.amp, .ellipsis, .key_fn]
|| (p.peek_tok.kind == .comma && p.table.known_type(argname))
- || p.peek_tok.kind == .dot|| p.peek_tok.kind == .rpar
+ || p.peek_tok.kind == .dot || p.peek_tok.kind == .rpar
// TODO copy pasta, merge 2 branches
if types_only {
// p.warn('types only')
@@ -763,7 +763,7 @@ fn (mut p Parser) fn_args() ([]table.Param, bool, bool) {
fn (mut p Parser) check_fn_mutable_arguments(typ table.Type, pos token.Position) {
sym := p.table.get_type_symbol(typ)
if sym.kind !in [.array, .array_fixed, .interface_, .map, .placeholder, .struct_, .sum_type]
- && !typ.is_ptr()&& !typ.is_pointer() {
+ && !typ.is_ptr() && !typ.is_pointer() {
p.error_with_pos(
'mutable arguments are only allowed for arrays, interfaces, maps, pointers and structs\n' +
'return values instead: `fn foo(mut n $sym.name) {` => `fn foo(n $sym.name) $sym.name {`',
diff --git a/vlib/v/parser/if_match.v b/vlib/v/parser/if_match.v
index 50cb8531cd..bb7946ce92 100644
--- a/vlib/v/parser/if_match.v
+++ b/vlib/v/parser/if_match.v
@@ -180,8 +180,8 @@ fn (mut p Parser) match_expr() ast.MatchExpr {
p.next()
} else if (p.tok.kind == .name && !(p.tok.lit == 'C' && p.peek_tok.kind == .dot)
&& (p.tok.lit in table.builtin_type_names || p.tok.lit[0].is_capital()
- || (p.peek_tok.kind == .dot && p.peek_tok2.lit.len > 0 && p.peek_tok2.lit[0].is_capital())))
- || p.tok.kind == .lsbr {
+ || (p.peek_tok.kind == .dot && p.peek_tok2.lit.len > 0
+ && p.peek_tok2.lit[0].is_capital()))) || p.tok.kind == .lsbr {
mut types := []table.Type{}
for {
// Sum type match
diff --git a/vlib/v/parser/parse_type.v b/vlib/v/parser/parse_type.v
index 10a8208be2..8ea80bf744 100644
--- a/vlib/v/parser/parse_type.v
+++ b/vlib/v/parser/parse_type.v
@@ -78,7 +78,7 @@ pub fn (mut p Parser) parse_map_type() table.Type {
return 0
}
if !(key_type in [table.string_type_idx, table.voidptr_type_idx]
- || ((key_type.is_int() || key_type.is_float())&& !key_type.is_ptr())) {
+ || ((key_type.is_int() || key_type.is_float()) && !key_type.is_ptr())) {
s := p.table.type_to_str(key_type)
p.error_with_pos('maps only support string, integer, float, rune or voidptr keys for now (not `$s`)',
p.tok.position())
diff --git a/vlib/v/parser/parser.v b/vlib/v/parser/parser.v
index 1a2c1067b1..5a28e66867 100644
--- a/vlib/v/parser/parser.v
+++ b/vlib/v/parser/parser.v
@@ -691,7 +691,7 @@ pub fn (mut p Parser) stmt(is_top_level bool) ast.Stmt {
p.error_with_pos('unexpected name `$p.peek_tok.lit`', p.peek_tok.position())
return ast.Stmt{}
} else if !p.inside_if_expr && !p.inside_match_body && !p.inside_or_expr
- && p.peek_tok.kind in [.rcbr, .eof]&& !p.mark_var_as_used(p.tok.lit) {
+ && p.peek_tok.kind in [.rcbr, .eof] && !p.mark_var_as_used(p.tok.lit) {
p.error_with_pos('`$p.tok.lit` evaluated but not used', p.tok.position())
return ast.Stmt{}
}
@@ -2070,7 +2070,7 @@ const (
fn (mut p Parser) global_decl() ast.GlobalDecl {
if !p.pref.translated && !p.pref.is_livemain && !p.builtin_mod && !p.pref.building_v
&& p.mod != 'ui' && p.mod != 'gg2' && p.mod != 'uiold' && !p.pref.enable_globals
- && !p.pref.is_fmt&& p.mod !in parser.global_enabled_mods {
+ && !p.pref.is_fmt && p.mod !in parser.global_enabled_mods {
p.error('use `v --enable-globals ...` to enable globals')
return ast.GlobalDecl{}
}
diff --git a/vlib/v/parser/struct.v b/vlib/v/parser/struct.v
index f0e8f7bd46..c955fc9c27 100644
--- a/vlib/v/parser/struct.v
+++ b/vlib/v/parser/struct.v
@@ -178,7 +178,7 @@ fn (mut p Parser) struct_decl() ast.StructDecl {
}
field_start_pos := p.tok.position()
is_embed := ((p.tok.lit.len > 1 && p.tok.lit[0].is_capital())
- || p.peek_tok.kind == .dot)&& language == .v
+ || p.peek_tok.kind == .dot) && language == .v
is_on_top := ast_fields.len == 0 && !(is_field_mut || is_field_mut || is_field_global)
mut field_name := ''
mut typ := table.Type(0)
diff --git a/vlib/v/scanner/scanner.v b/vlib/v/scanner/scanner.v
index 5a387acfa3..92d39df659 100644
--- a/vlib/v/scanner/scanner.v
+++ b/vlib/v/scanner/scanner.v
@@ -1091,8 +1091,9 @@ fn (mut s Scanner) ident_string() string {
s.error(r'`\x` used with no following hex digits')
}
// Escape `\u`
- if c == `u`
- && (s.text[s.pos + 1] == s.quote || s.text[s.pos + 2] == s.quote || s.text[s.pos + 3] == s.quote || s.text[s.pos + 4] == s.quote || !s.text[s.pos + 1].is_hex_digit()
+ if c == `u` && (s.text[s.pos + 1] == s.quote
+ || s.text[s.pos + 2] == s.quote || s.text[s.pos + 3] == s.quote
+ || s.text[s.pos + 4] == s.quote || !s.text[s.pos + 1].is_hex_digit()
|| !s.text[s.pos + 2].is_hex_digit()
|| !s.text[s.pos + 3].is_hex_digit()
|| !s.text[s.pos + 4].is_hex_digit()) {
diff --git a/vlib/vweb/vweb.v b/vlib/vweb/vweb.v
index e673895208..405bafeec3 100644
--- a/vlib/vweb/vweb.v
+++ b/vlib/vweb/vweb.v
@@ -534,8 +534,8 @@ fn handle_conn(mut conn net.TcpConn, mut app T) {
if route_words.len == 1 && route_words[0] in vweb.methods_without_first {
req_method << route_words[0]
}
- if url_words.len == route_words.len
- || (url_words.len >= route_words.len - 1 && route_words.len > 0 && route_words.last().ends_with('...')) {
+ if url_words.len == route_words.len || (url_words.len >= route_words.len - 1
+ && route_words.len > 0 && route_words.last().ends_with('...')) {
if req_method.len > 0 {
if req_method_str.to_lower()[1..] !in req_method {
continue