summaryrefslogtreecommitdiff
path: root/types.c
diff options
context:
space:
mode:
Diffstat (limited to 'types.c')
-rw-r--r--types.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/types.c b/types.c
index 6ba624d..c4d609c 100644
--- a/types.c
+++ b/types.c
@@ -1762,12 +1762,14 @@ static bool types_decl(Typer *tr, Declaration *d) {
success = false;
goto ret;
}
- Value *val = d->type.kind == TYPE_TUPLE ? &d->val.tuple[i] : &d->val;
- if (!type_resolve(tr, val->type, d->where)) return false;
- if (val->type->kind == TYPE_TUPLE) {
- err_print(d->where, "You can't declare a new type to be a tuple.");
- success = false;
- goto ret;
+ if (d->flags & DECL_HAS_EXPR) {
+ Value *val = d->type.kind == TYPE_TUPLE ? &d->val.tuple[i] : &d->val;
+ if (!type_resolve(tr, val->type, d->where)) return false;
+ if (val->type->kind == TYPE_TUPLE) {
+ err_print(d->where, "You can't declare a new type to be a tuple.");
+ success = false;
+ goto ret;
+ }
}
} else if (!(d->flags & DECL_IS_CONST) && t->kind == TYPE_FN && t->fn.constness) {
for (size_t p = 0; p < arr_len(t->fn.types)-1; p++) {