diff options
author | Leo Tenenbaum <pommicket@gmail.com> | 2020-02-15 21:00:15 -0500 |
---|---|---|
committer | Leo Tenenbaum <pommicket@gmail.com> | 2020-02-15 21:00:15 -0500 |
commit | aaf9c614aa1930ccd8df9c08ab9cb9776df4453f (patch) | |
tree | 87216eb32e42432824906768220fd85b23321ad6 | |
parent | fcf3d7a2bef1dfd01e08741623be4f160dda903c (diff) |
more struct params
-rw-r--r-- | test.toc | 2 | ||||
-rw-r--r-- | types.c | 5 |
2 files changed, 6 insertions, 1 deletions
@@ -7,5 +7,5 @@ foo ::= struct(t::Type) { }; main ::= fn() { - + };
\ No newline at end of file @@ -598,6 +598,11 @@ static bool type_resolve_(Typer *tr, Type *t, Location where, bool is_reference) if (!eval_expr(tr->evalr, t->expr, &typeval)) return false; *t = *typeval.type; + if (t->kind == TYPE_STRUCT && !t->struc.args && t->struc.def->params) { + err_print(where, "Expected arguments to structure, but you didn't provide any."); + info_print(t->struc.def->where, "Structure was declared here."); + return false; + } t->was_expr = expr; assert(t->flags & TYPE_IS_RESOLVED); } break; |