From 89754ac89dd1d568ab0ff14d145cae259d9db66f Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Sun, 6 Apr 2025 18:04:35 -0400 Subject: Make it a bit more ergonomic to make function types --- src/types.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/types.c') 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 -- cgit v1.2.3