diff --git a/vlib/v/checker/fn.v b/vlib/v/checker/fn.v index 4bde2672c1..e6230a224c 100644 --- a/vlib/v/checker/fn.v +++ b/vlib/v/checker/fn.v @@ -3812,15 +3812,15 @@ fn (mut c Checker) check_for_mut_receiver(mut expr ast.Expr) (string, token.Pos) } fn scope_register_it(mut s ast.Scope, pos token.Pos, typ ast.Type) { - scope_register_var_name(mut s, pos, typ, 'it') + scope_register_special_var_name(mut s, pos, typ, 'it') } fn scope_register_a_b(mut s ast.Scope, pos token.Pos, typ ast.Type) { - scope_register_var_name(mut s, pos, typ.ref(), 'a') - scope_register_var_name(mut s, pos, typ.ref(), 'b') + scope_register_special_var_name(mut s, pos, typ.ref(), 'a') + scope_register_special_var_name(mut s, pos, typ.ref(), 'b') } -fn scope_register_var_name(mut s ast.Scope, pos token.Pos, typ ast.Type, name string) { +fn scope_register_special_var_name(mut s ast.Scope, pos token.Pos, typ ast.Type, name string) { s.register(ast.Var{ name: name pos: pos diff --git a/vlib/v/gen/c/cgen.v b/vlib/v/gen/c/cgen.v index 9d7607f000..5de6961a22 100644 --- a/vlib/v/gen/c/cgen.v +++ b/vlib/v/gen/c/cgen.v @@ -7177,7 +7177,7 @@ fn (mut g Gen) or_block(var_name string, or_block ast.OrExpr, return_type ast.Ty } if or_block.kind == .block { g.or_expr_return_type = return_type.clear_option_and_result() - if !g.pref.skip_unused || or_block.err_used + if or_block.err_used || (g.fn_decl != unsafe { nil } && (g.fn_decl.is_main || g.fn_decl.is_test)) { g.writeln('\tIError err = ${cvar_name}${tmp_op}err;') } diff --git a/vlib/v/gen/c/if.v b/vlib/v/gen/c/if.v index 3cd40fd2b9..c5f0129346 100644 --- a/vlib/v/gen/c/if.v +++ b/vlib/v/gen/c/if.v @@ -311,7 +311,7 @@ fn (mut g Gen) if_expr(node ast.IfExpr) { // define `err` for the last branch after a `if val := opt {...}' guard if is_guard && guard_idx == i - 1 { if err_var := branch.scope.find_var('err') { - if !g.pref.skip_unused || err_var.is_used { + if err_var.is_used { cvar_name := guard_vars[guard_idx] g.writeln('\tIError err = ${cvar_name}.err;') }