diff options
author | Leo Tenenbaum <pommicket@gmail.com> | 2019-11-30 19:38:28 -0500 |
---|---|---|
committer | Leo Tenenbaum <pommicket@gmail.com> | 2019-11-30 19:38:28 -0500 |
commit | d24409b9bf4783be63109f59d8558cef884069e6 (patch) | |
tree | a1886005cc1e65bed5d03f493149874d8e4398b6 /decls_cgen.c | |
parent | e8cd3b66a9bf20e5a68147a9882685299d40f495 (diff) |
fixed some bugs involving returning types
Diffstat (limited to 'decls_cgen.c')
-rw-r--r-- | decls_cgen.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/decls_cgen.c b/decls_cgen.c index 593bf5d..91ad40a 100644 --- a/decls_cgen.c +++ b/decls_cgen.c @@ -5,20 +5,20 @@ static bool cgen_decls_decl(CGenerator *g, Declaration *d); static bool cgen_decls_fn_instances(CGenerator *g, Expression *e) { assert(e->kind == EXPR_FN); FnExpr *f = &e->fn; - if (!cgen_should_gen_fn(f)) - return true; FnType *type = &e->type.fn; assert(type->constness); Instance **data = f->instances.data; for (U64 i = 0; i < f->instances.cap; i++) { if (f->instances.occupied[i]) { - (*data)->fn.c.name = f->c.name; - (*data)->fn.c.id = f->c.id; - - if (!cgen_fn_header(g, &(*data)->fn, e->where, (*data)->c.id, (*data)->val.tuple[0].u64)) - return false; - cgen_write(g, ";"); - cgen_nl(g); + if (cgen_should_gen_fn(&(*data)->fn)) { + (*data)->fn.c.name = f->c.name; + (*data)->fn.c.id = f->c.id; + + if (!cgen_fn_header(g, &(*data)->fn, e->where, (*data)->c.id, (*data)->val.tuple[0].u64)) + return false; + cgen_write(g, ";"); + cgen_nl(g); + } } data++; } |