cgen: don't generate a default expr if a function ends with `return` (#6766)
parent
6d8a7ced24
commit
1d706674f2
|
@ -158,8 +158,8 @@ fn (mut g Gen) gen_fn_decl(it ast.FnDecl, skip bool) {
|
||||||
// TODO: remove this, when g.write_autofree_stmts_when_needed works properly
|
// TODO: remove this, when g.write_autofree_stmts_when_needed works properly
|
||||||
g.autofree_scope_vars(it.body_pos.pos)
|
g.autofree_scope_vars(it.body_pos.pos)
|
||||||
}
|
}
|
||||||
if it.return_type != table.void_type {
|
if it.return_type != table.void_type && it.stmts.len > 0 && it.stmts.last() !is ast.Return {
|
||||||
mut default_expr := g.type_default(it.return_type)
|
default_expr := g.type_default(it.return_type)
|
||||||
// TODO: perf?
|
// TODO: perf?
|
||||||
if default_expr == '{0}' {
|
if default_expr == '{0}' {
|
||||||
g.writeln('\treturn ($type_name)$default_expr;')
|
g.writeln('\treturn ($type_name)$default_expr;')
|
||||||
|
|
Loading…
Reference in New Issue