mirror of
https://github.com/vlang/v.git
synced 2025-09-13 22:42:26 +03:00
v: vet for empty string conditions (#21529)
This commit is contained in:
parent
6752ce8914
commit
f7e820cdeb
22 changed files with 45 additions and 48 deletions
|
@ -19,7 +19,7 @@ pub fn check_v_commit_timestamp_before_self_rebuilding(v_timestamp u64) {
|
|||
}
|
||||
|
||||
pub fn validate_commit_exists(commit string) {
|
||||
if commit.len == 0 {
|
||||
if commit != '' {
|
||||
return
|
||||
}
|
||||
cmd := 'git cat-file -t "${commit}" ' // windows's cmd.exe does not support ' for quoting
|
||||
|
|
|
@ -536,7 +536,7 @@ fn doc_node_html(dn doc.DocNode, link string, head bool, include_examples bool,
|
|||
} else {
|
||||
dnw.write_string('${tabs(3)}<div class="title"><${head_tag}>${dn.kind} ${sym_name}${hash_link}</${head_tag}>')
|
||||
}
|
||||
if link.len != 0 {
|
||||
if link != '' {
|
||||
dnw.write_string('<a class="link" rel="noreferrer" target="_blank" href="${link}">${link_svg}</a>')
|
||||
}
|
||||
dnw.write_string('</div>\n')
|
||||
|
|
|
@ -59,7 +59,7 @@ pub fn (cf &CFlag) format() string {
|
|||
} else {
|
||||
value = cf.eval()
|
||||
}
|
||||
if cf.name in ['-l', '-Wa', '-Wl', '-Wp'] && value.len > 0 {
|
||||
if cf.name in ['-l', '-Wa', '-Wl', '-Wp'] && value != '' {
|
||||
return '${cf.name}${value}'.trim_space()
|
||||
}
|
||||
// convert to absolute path
|
||||
|
|
|
@ -2018,7 +2018,7 @@ fn (mut c Checker) check_enum_field_integer_literal(expr ast.IntegerLiteral, is_
|
|||
|
||||
@[inline]
|
||||
fn (mut c Checker) check_loop_label(label string, pos token.Pos) {
|
||||
if label.len == 0 {
|
||||
if label == '' {
|
||||
// ignore
|
||||
return
|
||||
}
|
||||
|
|
|
@ -132,7 +132,7 @@ pub fn (mut f Fmt) write(s string) {
|
|||
}
|
||||
|
||||
pub fn (mut f Fmt) writeln(s string) {
|
||||
if f.indent > 0 && f.empty_line && s.len > 0 {
|
||||
if f.indent > 0 && f.empty_line && s != '' {
|
||||
f.write_indent()
|
||||
}
|
||||
f.out.writeln(s)
|
||||
|
|
|
@ -94,7 +94,7 @@ fn (mut g Gen) fixed_array_init(node ast.ArrayInit, array_type Type, var_name st
|
|||
|
||||
ret_typ := g.typ(node.typ)
|
||||
elem_typ := g.typ(node.elem_type)
|
||||
if var_name.len == 0 {
|
||||
if var_name == '' {
|
||||
g.write('${ret_typ} ${past.tmp_var} =')
|
||||
}
|
||||
g.write('{')
|
||||
|
@ -300,7 +300,7 @@ fn (mut g Gen) array_init_with_fields(node ast.ArrayInit, elem_type Type, is_amp
|
|||
|
||||
ret_typ := g.typ(node.typ)
|
||||
elem_typ := g.typ(node.elem_type)
|
||||
if var_name.len == 0 {
|
||||
if var_name == '' {
|
||||
g.write('${ret_typ} ${past.tmp_var} =')
|
||||
}
|
||||
if is_default_array {
|
||||
|
|
|
@ -1658,7 +1658,7 @@ pub fn (mut g Gen) write_fn_typesymbol_declaration(sym ast.TypeSymbol) {
|
|||
else {}
|
||||
}
|
||||
}
|
||||
call_conv_attribute_suffix := if call_conv.len != 0 {
|
||||
call_conv_attribute_suffix := if call_conv != '' {
|
||||
'__attribute__((${call_conv}))'
|
||||
} else {
|
||||
''
|
||||
|
@ -5127,24 +5127,24 @@ fn (mut g Gen) hash_stmt(node ast.HashStmt) {
|
|||
}
|
||||
if node.main.contains('.m') {
|
||||
g.definitions.writeln('')
|
||||
if ct_condition.len > 0 {
|
||||
if ct_condition != '' {
|
||||
g.definitions.writeln('#if ${ct_condition}')
|
||||
}
|
||||
// Objective C code import, include it after V types, so that e.g. `string` is
|
||||
// available there
|
||||
g.definitions.writeln('// added by module `${node.mod}`, file: ${os.file_name(node.source_file)}:${line_nr}:')
|
||||
g.definitions.writeln(guarded_include)
|
||||
if ct_condition.len > 0 {
|
||||
if ct_condition != '' {
|
||||
g.definitions.writeln('#endif // \$if ${ct_condition}')
|
||||
}
|
||||
} else {
|
||||
g.includes.writeln('')
|
||||
if ct_condition.len > 0 {
|
||||
if ct_condition != '' {
|
||||
g.includes.writeln('#if ${ct_condition}')
|
||||
}
|
||||
g.includes.writeln('// added by module `${node.mod}`, file: ${os.file_name(node.source_file)}:${line_nr}:')
|
||||
g.includes.writeln(guarded_include)
|
||||
if ct_condition.len > 0 {
|
||||
if ct_condition != '' {
|
||||
g.includes.writeln('#endif // \$if ${ct_condition}')
|
||||
}
|
||||
}
|
||||
|
@ -5164,43 +5164,43 @@ fn (mut g Gen) hash_stmt(node ast.HashStmt) {
|
|||
// Might need to support '#preinclude' for .m files as well but for the moment
|
||||
// this does the same as '#include' for them
|
||||
g.definitions.writeln('')
|
||||
if ct_condition.len > 0 {
|
||||
if ct_condition != '' {
|
||||
g.definitions.writeln('#if ${ct_condition}')
|
||||
}
|
||||
// Objective C code import, include it after V types, so that e.g. `string` is
|
||||
// available there
|
||||
g.definitions.writeln('// added by module `${node.mod}`, file: ${os.file_name(node.source_file)}:${line_nr}:')
|
||||
g.definitions.writeln(guarded_include)
|
||||
if ct_condition.len > 0 {
|
||||
if ct_condition != '' {
|
||||
g.definitions.writeln('#endif // \$if ${ct_condition}')
|
||||
}
|
||||
} else {
|
||||
g.preincludes.writeln('')
|
||||
if ct_condition.len > 0 {
|
||||
if ct_condition != '' {
|
||||
g.preincludes.writeln('#if ${ct_condition}')
|
||||
}
|
||||
g.preincludes.writeln('// added by module `${node.mod}`, file: ${os.file_name(node.source_file)}:${line_nr}:')
|
||||
g.preincludes.writeln(guarded_include)
|
||||
if ct_condition.len > 0 {
|
||||
if ct_condition != '' {
|
||||
g.preincludes.writeln('#endif // \$if ${ct_condition}')
|
||||
}
|
||||
}
|
||||
} else if node.kind == 'insert' {
|
||||
if ct_condition.len > 0 {
|
||||
if ct_condition != '' {
|
||||
g.includes.writeln('#if ${ct_condition}')
|
||||
}
|
||||
g.includes.writeln('// inserted by module `${node.mod}`, file: ${os.file_name(node.source_file)}:${line_nr}:')
|
||||
g.includes.writeln(node.val)
|
||||
if ct_condition.len > 0 {
|
||||
if ct_condition != '' {
|
||||
g.includes.writeln('#endif // \$if ${ct_condition}')
|
||||
}
|
||||
} else if node.kind == 'define' {
|
||||
if ct_condition.len > 0 {
|
||||
if ct_condition != '' {
|
||||
g.includes.writeln('#if ${ct_condition}')
|
||||
}
|
||||
g.includes.writeln('// defined by module `${node.mod}`')
|
||||
g.includes.writeln('#define ${node.main}')
|
||||
if ct_condition.len > 0 {
|
||||
if ct_condition != '' {
|
||||
g.includes.writeln('#endif // \$if ${ct_condition}')
|
||||
}
|
||||
}
|
||||
|
@ -5504,7 +5504,7 @@ fn (mut g Gen) return_stmt(node ast.Return) {
|
|||
g.write('return ${tmpvar}')
|
||||
}
|
||||
// Make sure to add our unpacks
|
||||
if multi_unpack.len > 0 {
|
||||
if multi_unpack != '' {
|
||||
g.insert_before_stmt(multi_unpack)
|
||||
}
|
||||
if use_tmp_var && !fn_return_is_option && !fn_return_is_result {
|
||||
|
@ -7219,11 +7219,11 @@ fn (g Gen) get_all_test_function_names() []string {
|
|||
}
|
||||
}
|
||||
mut all_tfuncs := []string{}
|
||||
if tsuite_begin.len > 0 {
|
||||
if tsuite_begin != '' {
|
||||
all_tfuncs << tsuite_begin
|
||||
}
|
||||
all_tfuncs << tfuncs
|
||||
if tsuite_end.len > 0 {
|
||||
if tsuite_end != '' {
|
||||
all_tfuncs << tsuite_end
|
||||
}
|
||||
return all_tfuncs
|
||||
|
|
|
@ -100,7 +100,7 @@ fn (mut g Gen) match_expr(node ast.MatchExpr) {
|
|||
func_decl = '${def} = &${g.typ(node.return_type)};'
|
||||
}
|
||||
}
|
||||
if func_decl.len > 0 {
|
||||
if func_decl != '' {
|
||||
g.writeln(func_decl) // func, anon func declaration
|
||||
} else {
|
||||
g.writeln('${g.typ(node.return_type)} ${tmp_var} = ${g.type_default(node.return_type)};')
|
||||
|
@ -169,7 +169,7 @@ fn (mut g Gen) match_expr(node ast.MatchExpr) {
|
|||
|
||||
fn (mut g Gen) match_expr_sumtype(node ast.MatchExpr, is_expr bool, cond_var string, tmp_var string) {
|
||||
dot_or_ptr := g.dot_or_ptr(node.cond_type)
|
||||
use_ternary := is_expr && tmp_var.len == 0
|
||||
use_ternary := is_expr && tmp_var == ''
|
||||
cond_sym := g.table.sym(node.cond_type)
|
||||
for j, branch in node.branches {
|
||||
mut sumtype_index := 0
|
||||
|
@ -418,7 +418,7 @@ fn (mut g Gen) should_check_low_bound_in_range_expr(expr ast.RangeExpr, node_con
|
|||
fn (mut g Gen) match_expr_classic(node ast.MatchExpr, is_expr bool, cond_var string, tmp_var string) {
|
||||
node_cond_type_unsigned := node.cond_type in [ast.u16_type, ast.u32_type, ast.u64_type]
|
||||
type_sym := g.table.final_sym(node.cond_type)
|
||||
use_ternary := is_expr && tmp_var.len == 0
|
||||
use_ternary := is_expr && tmp_var == ''
|
||||
for j, branch in node.branches {
|
||||
is_last := j == node.branches.len - 1
|
||||
if branch.is_else || (use_ternary && is_last) {
|
||||
|
|
|
@ -24,7 +24,7 @@ fn (mut g Gen) past_tmp_var_new() PastTmpVar {
|
|||
fn (mut g Gen) past_tmp_var_from_var_name(var_name string) PastTmpVar {
|
||||
mut tmp_var := g.new_tmp_var()
|
||||
mut s := ''
|
||||
if var_name.len != 0 {
|
||||
if var_name != '' {
|
||||
tmp_var = var_name
|
||||
} else {
|
||||
s = g.go_before_last_stmt()
|
||||
|
|
|
@ -627,7 +627,7 @@ fn (mut g Gen) struct_decl(s ast.Struct, name string, is_anon bool) {
|
|||
g.type_definitions.write_string(';')
|
||||
}
|
||||
g.type_definitions.writeln('')
|
||||
if post_pragma.len > 0 {
|
||||
if post_pragma != '' {
|
||||
g.type_definitions.writeln(post_pragma)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -92,7 +92,7 @@ pub fn (mut f Gen) write(s string) {
|
|||
}
|
||||
|
||||
pub fn (mut f Gen) writeln(s string) {
|
||||
if f.indent > 0 && f.empty_line && s.len > 0 {
|
||||
if f.indent > 0 && f.empty_line && s != '' {
|
||||
f.write_indent()
|
||||
}
|
||||
f.out.writeln(s)
|
||||
|
|
|
@ -393,11 +393,11 @@ fn (g &JsGen) get_all_test_function_names() []string {
|
|||
}
|
||||
}
|
||||
mut all_tfuncs := []string{}
|
||||
if tsuite_begin.len > 0 {
|
||||
if tsuite_begin != '' {
|
||||
all_tfuncs << tsuite_begin
|
||||
}
|
||||
all_tfuncs << tfuncs
|
||||
if tsuite_end.len > 0 {
|
||||
if tsuite_end != '' {
|
||||
all_tfuncs << tsuite_end
|
||||
}
|
||||
return all_tfuncs
|
||||
|
|
|
@ -37,13 +37,13 @@ pub fn new_sourcemap(file string, source_root string, sources_content_inline boo
|
|||
|
||||
// Add a single mapping from original source line and column to the generated source's line and column for this source map being created.
|
||||
pub fn (mut sm SourceMap) add_mapping(source_name string, source_position SourcePositionType, gen_line u32, gen_column u32, name string) {
|
||||
if source_name.len == 0 {
|
||||
if source_name == '' {
|
||||
panic('add_mapping, source_name should not be ""')
|
||||
}
|
||||
|
||||
sources_ind := sm.sources.add(source_name)
|
||||
|
||||
names_ind := if name.len != 0 {
|
||||
names_ind := if name != '' {
|
||||
NameIndexType(IndexNumber(sm.names.add(name)))
|
||||
} else {
|
||||
NameIndexType(Empty{})
|
||||
|
@ -53,14 +53,14 @@ pub fn (mut sm SourceMap) add_mapping(source_name string, source_position Source
|
|||
|
||||
// Add multiple mappings from the same source
|
||||
pub fn (mut sm SourceMap) add_mapping_list(source_name string, mapping_list []MappingInput) ! {
|
||||
if source_name.len == 0 {
|
||||
if source_name == '' {
|
||||
panic('add_mapping_list, source_name should not be ""')
|
||||
}
|
||||
|
||||
sources_ind := sm.sources.add(source_name)
|
||||
|
||||
for mapping in mapping_list {
|
||||
names_ind := if mapping.name.len != 0 {
|
||||
names_ind := if mapping.name != '' {
|
||||
NameIndexType(IndexNumber(sm.names.add(mapping.name)))
|
||||
} else {
|
||||
NameIndexType(Empty{})
|
||||
|
|
|
@ -173,7 +173,7 @@ fn (mut p Parser) for_stmt() ast.Stmt {
|
|||
is_tmp: true
|
||||
is_stack_obj: true
|
||||
})
|
||||
if key_var_name.len > 0 {
|
||||
if key_var_name != '' {
|
||||
return p.error_with_pos('cannot declare index variable with range `for`',
|
||||
key_var_pos)
|
||||
}
|
||||
|
|
|
@ -2712,10 +2712,7 @@ fn (mut p Parser) name_expr() ast.Expr {
|
|||
mod = original_name
|
||||
original_name = p.peek_token(4).lit
|
||||
}
|
||||
mut name := original_name
|
||||
if mod.len > 0 {
|
||||
name = '${mod}.${name}'
|
||||
}
|
||||
name := if mod != '' { '${mod}.${original_name}' } else { original_name }
|
||||
name_w_mod := p.prepend_mod(name)
|
||||
is_c_pointer_cast := language == .c && prev_tok_kind == .amp // `&C.abc(x)` is *always* a cast
|
||||
is_c_type_cast := language == .c && (original_name in ['intptr_t', 'uintptr_t']
|
||||
|
|
|
@ -286,7 +286,7 @@ fn run_code_in_tmp_vfile_and_exit(args []string, mut res Preferences, option_nam
|
|||
tmp_result := os.system(tmp_cmd)
|
||||
res.vrun_elog('exit code: ${tmp_result}')
|
||||
//
|
||||
if output_option.len != 0 {
|
||||
if output_option != '' {
|
||||
res.vrun_elog('remove tmp exe file: ${tmp_exe_file_path}')
|
||||
os.rm(tmp_exe_file_path) or {}
|
||||
}
|
||||
|
|
|
@ -11,10 +11,10 @@ fn imin(x u16, y u16) u16 {
|
|||
// From https://gist.github.com/zeozeozeo/f785910173f3115163bffd0c5240de07
|
||||
@[direct_array_access]
|
||||
pub fn zeozeozeo_levenshtein_distance(a string, b string) int {
|
||||
if a.len == 0 {
|
||||
if a == '' {
|
||||
return b.len
|
||||
}
|
||||
if b.len == 0 {
|
||||
if b == '' {
|
||||
return a.len
|
||||
}
|
||||
if a == b {
|
||||
|
|
|
@ -22,7 +22,7 @@ fn fn_mr_get_user() (string, int, []string, UserData) {
|
|||
|
||||
fn split_to_two(s string) !(string, string) {
|
||||
mut tokens := s.split_nth(' ', 2)
|
||||
if s.len == 0 {
|
||||
if s == '' {
|
||||
return error('error')
|
||||
}
|
||||
if tokens.len != 2 {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
fn issue(data string) ?(int, string) {
|
||||
if data.len == 0 {
|
||||
if data == '' {
|
||||
return none
|
||||
}
|
||||
return data.len, data
|
||||
|
|
|
@ -108,7 +108,7 @@ pub fn path_styled_for_error_messages(path string) string {
|
|||
pub fn formatted_error(kind string, omsg string, filepath string, pos token.Pos) string {
|
||||
emsg := omsg.replace('main.', '')
|
||||
path := path_styled_for_error_messages(filepath)
|
||||
position := if filepath.len > 0 {
|
||||
position := if filepath != '' {
|
||||
'${path}:${pos.line_nr + 1}:${mu.max(1, pos.col + 1)}:'
|
||||
} else {
|
||||
''
|
||||
|
|
|
@ -25,7 +25,7 @@ pub enum ValueKind {
|
|||
|
||||
// check_json
|
||||
fn check_json(val string) ! {
|
||||
if val.len == 0 {
|
||||
if val == '' {
|
||||
return error('empty string')
|
||||
}
|
||||
}
|
||||
|
|
|
@ -448,7 +448,7 @@ pub fn (f Any) prettify_json_str() string {
|
|||
// encode_string returns the JSON spec-compliant version of the string.
|
||||
@[direct_array_access]
|
||||
fn (e &Encoder) encode_string(s string, mut buf []u8) ! {
|
||||
if s.len == 0 {
|
||||
if s == '' {
|
||||
empty := [u8(json2.quote_rune), json2.quote_rune]!
|
||||
unsafe { buf.push_many(&empty[0], 2) }
|
||||
return
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue