cgen: fix line number generation on match (#7292)
parent
4d025582c0
commit
fb9db11a00
|
@ -3098,7 +3098,7 @@ fn (mut g Gen) match_expr(node ast.MatchExpr) {
|
||||||
cond_var := g.new_tmp_var()
|
cond_var := g.new_tmp_var()
|
||||||
g.write('${g.typ(node.cond_type)} $cond_var = ')
|
g.write('${g.typ(node.cond_type)} $cond_var = ')
|
||||||
g.expr(node.cond)
|
g.expr(node.cond)
|
||||||
g.writeln(';')
|
g.writeln('; ')
|
||||||
g.write(cur_line)
|
g.write(cur_line)
|
||||||
if is_expr {
|
if is_expr {
|
||||||
// brackets needed otherwise '?' will apply to everything on the left
|
// brackets needed otherwise '?' will apply to everything on the left
|
||||||
|
@ -3128,19 +3128,24 @@ fn (mut g Gen) match_expr_sumtype(node ast.MatchExpr, is_expr bool, cond_var str
|
||||||
// TODO too many branches. maybe separate ?: matches
|
// TODO too many branches. maybe separate ?: matches
|
||||||
g.write(' : ')
|
g.write(' : ')
|
||||||
} else {
|
} else {
|
||||||
g.writeln(' else {')
|
g.writeln('')
|
||||||
|
g.write_v_source_line_info(branch.pos)
|
||||||
|
g.writeln('else {')
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if j > 0 || sumtype_index > 0 {
|
if j > 0 || sumtype_index > 0 {
|
||||||
if is_expr {
|
if is_expr {
|
||||||
g.write(' : ')
|
g.write(' : ')
|
||||||
} else {
|
} else {
|
||||||
g.write(' else ')
|
g.writeln('')
|
||||||
|
g.write_v_source_line_info(branch.pos)
|
||||||
|
g.write('else ')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if is_expr {
|
if is_expr {
|
||||||
g.write('(')
|
g.write('(')
|
||||||
} else {
|
} else {
|
||||||
|
g.write_v_source_line_info(branch.pos)
|
||||||
g.write('if (')
|
g.write('if (')
|
||||||
}
|
}
|
||||||
g.write(cond_var)
|
g.write(cond_var)
|
||||||
|
@ -3184,7 +3189,9 @@ fn (mut g Gen) match_expr_classic(node ast.MatchExpr, is_expr bool, cond_var str
|
||||||
// TODO too many branches. maybe separate ?: matches
|
// TODO too many branches. maybe separate ?: matches
|
||||||
g.write(' : ')
|
g.write(' : ')
|
||||||
} else {
|
} else {
|
||||||
g.writeln(' else {')
|
g.writeln('')
|
||||||
|
g.write_v_source_line_info(branch.pos)
|
||||||
|
g.writeln('else {')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -3192,12 +3199,15 @@ fn (mut g Gen) match_expr_classic(node ast.MatchExpr, is_expr bool, cond_var str
|
||||||
if is_expr {
|
if is_expr {
|
||||||
g.write(' : ')
|
g.write(' : ')
|
||||||
} else {
|
} else {
|
||||||
g.write(' else ')
|
g.writeln('')
|
||||||
|
g.write_v_source_line_info(branch.pos)
|
||||||
|
g.write('else ')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if is_expr {
|
if is_expr {
|
||||||
g.write('(')
|
g.write('(')
|
||||||
} else {
|
} else {
|
||||||
|
g.write_v_source_line_info(branch.pos)
|
||||||
g.write('if (')
|
g.write('if (')
|
||||||
}
|
}
|
||||||
for i, expr in branch.exprs {
|
for i, expr in branch.exprs {
|
||||||
|
|
Loading…
Reference in New Issue