diff --git a/vlib/v/ast/str.v b/vlib/v/ast/str.v index 848d027306..7e508309ec 100644 --- a/vlib/v/ast/str.v +++ b/vlib/v/ast/str.v @@ -126,33 +126,22 @@ pub fn (lit &StringInterLiteral) get_fspec_braces(i int) (string, bool) { } } } - // TODO: remove sponge - put back match if !needs_braces { mut sub_expr := lit.exprs[i] for { - if sub_expr is Ident { break } - else if sub_expr is SelectorExpr { - se := sub_expr as SelectorExpr - sub_expr = se.expr - continue + match sub_expr as sx { + Ident { + break + } + SelectorExpr { + sub_expr = sx.expr + continue + } + else { + needs_braces = true + break + } } - else { - needs_braces = true - break - } - // match sub_expr { - // Ident { - // break - // } - // SelectorExpr { - // sub_expr = it.expr - // continue - // } - // else { - // needs_braces = true - // break - // } - // } } } if needs_fspec { diff --git a/vlib/v/gen/cgen.v b/vlib/v/gen/cgen.v index 3e48e807b2..e34f28fbb3 100644 --- a/vlib/v/gen/cgen.v +++ b/vlib/v/gen/cgen.v @@ -1227,15 +1227,13 @@ fn (mut g Gen) gen_assign_stmt(assign_stmt ast.AssignStmt) { } fn (mut g Gen) gen_cross_tmp_variable(left []ast.Expr, val ast.Expr) { - // TODO: remove sponge - tmp_val := val - match tmp_val { + match val as val_expr { ast.Ident { mut has_var := false for lx in left { if lx is ast.Ident { ident := lx as ast.Ident - if it.name == ident.name { + if val_expr.name == ident.name { g.write('_var_${ident.pos.pos}') has_var = true break @@ -1247,17 +1245,17 @@ fn (mut g Gen) gen_cross_tmp_variable(left []ast.Expr, val ast.Expr) { } } ast.InfixExpr { - g.gen_cross_tmp_variable(left, it.left) - g.write(it.op.str()) - g.gen_cross_tmp_variable(left, it.right) + g.gen_cross_tmp_variable(left, val_expr.left) + g.write(val_expr.op.str()) + g.gen_cross_tmp_variable(left, val_expr.right) } ast.PrefixExpr { - g.write(it.op.str()) - g.gen_cross_tmp_variable(left, it.right) + g.write(val_expr.op.str()) + g.gen_cross_tmp_variable(left, val_expr.right) } ast.PostfixExpr { - g.gen_cross_tmp_variable(left, it.expr) - g.write(it.op.str()) + g.gen_cross_tmp_variable(left, val_expr.expr) + g.write(val_expr.op.str()) } else { g.expr(val)