aboutsummaryrefslogtreecommitdiff
path: root/parse.c
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2024-03-18 15:27:07 -0400
committerBruce Hill <bruce@bruce-hill.com>2024-03-18 15:27:07 -0400
commit7c0a77df332651c4dd6d4a6c80d3d7afabb22527 (patch)
tree4c1b883228263bfa38565926495d99e192877821 /parse.c
parentd94c1057accb197ec3b957fb91ff75597ac54c40 (diff)
Handle function type annotations without returns better
Diffstat (limited to 'parse.c')
-rw-r--r--parse.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/parse.c b/parse.c
index 14d18682..c39532c9 100644
--- a/parse.c
+++ b/parse.c
@@ -479,8 +479,7 @@ type_ast_t *parse_func_type(parse_ctx_t *ctx, const char *pos) {
arg_ast_t *args = parse_args(ctx, &pos, true);
expect_closing(ctx, &pos, ")", "I wasn't able to parse the rest of this function type");
spaces(&pos);
- if (!match(&pos, "->")) return NULL;
- type_ast_t *ret = optional(ctx, &pos, parse_type);
+ type_ast_t *ret = match(&pos, "->") ? optional(ctx, &pos, parse_type) : NULL;
return NewTypeAST(ctx->file, start, pos, FunctionTypeAST, .args=args, .ret=ret);
}