1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

cgen: don't generate a default expr if a function ends with return (#6766)

This commit is contained in:
spaceface777
2020-11-06 17:46:41 +01:00
committed by GitHub
parent 6d8a7ced24
commit 1d706674f2

View File

@@ -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
g.autofree_scope_vars(it.body_pos.pos)
}
if it.return_type != table.void_type {
mut default_expr := g.type_default(it.return_type)
if it.return_type != table.void_type && it.stmts.len > 0 && it.stmts.last() !is ast.Return {
default_expr := g.type_default(it.return_type)
// TODO: perf?
if default_expr == '{0}' {
g.writeln('\treturn ($type_name)$default_expr;')