From aaf9c614aa1930ccd8df9c08ab9cb9776df4453f Mon Sep 17 00:00:00 2001 From: Leo Tenenbaum Date: Sat, 15 Feb 2020 21:00:15 -0500 Subject: more struct params --- test.toc | 2 +- types.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/test.toc b/test.toc index ba3ef1b..286e83a 100644 --- a/test.toc +++ b/test.toc @@ -7,5 +7,5 @@ foo ::= struct(t::Type) { }; main ::= fn() { - + }; \ No newline at end of file diff --git a/types.c b/types.c index 0f89af7..42e32da 100644 --- a/types.c +++ b/types.c @@ -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; -- cgit v1.2.3