From 316eff8b4f6c4f0c119360dfbb94aa0840a7e65a Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Sat, 5 Apr 2025 01:07:09 -0400 Subject: Fix up more things --- src/typecheck.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/typecheck.c b/src/typecheck.c index e4176508..4341748b 100644 --- a/src/typecheck.c +++ b/src/typecheck.c @@ -108,12 +108,13 @@ type_t *parse_type_ast(env_t *env, type_ast_t *ast) arg_t *type_args = NULL; for (arg_ast_t *arg = fn->args; arg; arg = arg->next) { type_args = new(arg_t, .name=arg->name, .next=type_args); - if (arg->type) { + if (arg->type) type_args->type = parse_type_ast(env, arg->type); - } else { - type_args->default_val = arg->value; + else if (arg->value) type_args->type = get_type(env, arg->value); - } + + if (arg->value) + type_args->default_val = arg->value; } REVERSE_LIST(type_args); return Type(ClosureType, Type(FunctionType, .args=type_args, .ret=ret_t)); -- cgit v1.2.3