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

pull/6761/head
spaceface777 2020-11-06 17:46:41 +01:00 committed by GitHub
parent 6d8a7ced24
commit 1d706674f2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 2 additions and 2 deletions

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;')