mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
cgen: minor optimization in if_expr() (#15748)
This commit is contained in:
@ -269,13 +269,12 @@ fn (mut g Gen) if_expr(node ast.IfExpr) {
|
|||||||
g.writeln('\t$base_type $left_var_name = *($base_type*)${var_name}.data;')
|
g.writeln('\t$base_type $left_var_name = *($base_type*)${var_name}.data;')
|
||||||
}
|
}
|
||||||
} else if branch.cond.vars.len > 1 {
|
} else if branch.cond.vars.len > 1 {
|
||||||
for vi, var in branch.cond.vars {
|
|
||||||
left_var_name := c_name(var.name)
|
|
||||||
sym := g.table.sym(branch.cond.expr_type)
|
sym := g.table.sym(branch.cond.expr_type)
|
||||||
if sym.kind == .multi_return {
|
if sym.info is ast.MultiReturn {
|
||||||
mr_info := sym.info as ast.MultiReturn
|
if sym.info.types.len == branch.cond.vars.len {
|
||||||
if mr_info.types.len == branch.cond.vars.len {
|
for vi, var in branch.cond.vars {
|
||||||
var_typ := g.typ(mr_info.types[vi])
|
var_typ := g.typ(sym.info.types[vi])
|
||||||
|
left_var_name := c_name(var.name)
|
||||||
if is_auto_heap {
|
if is_auto_heap {
|
||||||
g.writeln('\t$var_typ* $left_var_name = (HEAP($base_type, *($base_type*)${var_name}.data).arg$vi);')
|
g.writeln('\t$var_typ* $left_var_name = (HEAP($base_type, *($base_type*)${var_name}.data).arg$vi);')
|
||||||
} else {
|
} else {
|
||||||
|
Reference in New Issue
Block a user