diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2025-04-06 18:04:35 -0400 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2025-04-06 18:04:35 -0400 |
| commit | 89754ac89dd1d568ab0ff14d145cae259d9db66f (patch) | |
| tree | 14b4920231c2a4d23194f7570ab4e43fd000da3e /src/types.c | |
| parent | e87e6dabfbdc1d35b5fe41b5d84dab38df3c8e76 (diff) | |
Make it a bit more ergonomic to make function types
Diffstat (limited to 'src/types.c')
| -rw-r--r-- | src/types.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/types.c b/src/types.c index 0b69a8c4..0433cc48 100644 --- a/src/types.c +++ b/src/types.c @@ -822,4 +822,15 @@ CONSTFUNC type_t *most_complete_type(type_t *t1, type_t *t2) } } +type_t *_make_function_type(type_t *ret, int n, arg_t args[n]) +{ + arg_t *arg_pointers = GC_MALLOC(sizeof(arg_t[n])); + for (int i = 0; i < n; i++) { + arg_pointers[i] = args[i]; + if (i + 1 < n) + arg_pointers[i].next = &arg_pointers[i+1]; + } + return Type(FunctionType, .ret=ret, .args=&arg_pointers[0]); +} + // vim: ts=4 sw=0 et cino=L2,l1,(0,W4,m1,\:0 |
