diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2024-05-21 20:54:09 -0400 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2024-05-21 20:54:09 -0400 |
| commit | 7e275af628ea2217b78c5c0cf12864728a6fc2b4 (patch) | |
| tree | 4cea62a9ccf1ed5dff6191679943c2763d44a16d /compile.c | |
| parent | b1db4fd0f68ddbc357df10743b3c85d12af0bc4e (diff) | |
Get rid of struct constructor
Diffstat (limited to 'compile.c')
| -rw-r--r-- | compile.c | 3 |
1 files changed, 1 insertions, 2 deletions
@@ -1704,8 +1704,7 @@ CORD compile(env_t *env, ast_t *ast) if (t->tag == StructType) { // Struct constructor: fn_t = Type(FunctionType, .args=Match(t, StructType)->fields, .ret=t); - CORD fn = compile(env, call->fn); - return CORD_all(fn, "(", compile_arguments(env, ast, Match(fn_t, FunctionType)->args, call->args), ")"); + return CORD_all("((", compile_type(env, t), "){", compile_arguments(env, ast, Match(fn_t, FunctionType)->args, call->args), "})"); } else if (t->tag == IntType || t->tag == NumType) { // Int/Num constructor: if (!call->args || call->args->next) |
