diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2025-04-05 01:07:09 -0400 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2025-04-05 01:07:09 -0400 |
| commit | 316eff8b4f6c4f0c119360dfbb94aa0840a7e65a (patch) | |
| tree | 06d2ba0a53874b1b34bf495ce1010ed60547054c /src | |
| parent | 355ad9532163f9513c01aa59333aed5363386022 (diff) | |
Fix up more things
Diffstat (limited to 'src')
| -rw-r--r-- | src/typecheck.c | 9 |
1 files changed, 5 insertions, 4 deletions
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)); |
