summaryrefslogtreecommitdiff
path: root/src/parser/parser_expr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser/parser_expr.c')
-rw-r--r--src/parser/parser_expr.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/parser/parser_expr.c b/src/parser/parser_expr.c
index 990942d..ae7abe9 100644
--- a/src/parser/parser_expr.c
+++ b/src/parser/parser_expr.c
@@ -1611,6 +1611,8 @@ ASTNode *parse_primary(ParserContext *ctx, Lexer *l)
lexer_next(&lookahead);
int valid_generic = 0;
+ int saved_speculative = ctx->is_speculative;
+ ctx->is_speculative = 1;
while (1)
{
parse_type(ctx, &lookahead);
@@ -1625,6 +1627,7 @@ ASTNode *parse_primary(ParserContext *ctx, Lexer *l)
}
break;
}
+ ctx->is_speculative = saved_speculative;
if (valid_generic)
{
@@ -2433,7 +2436,7 @@ ASTNode *parse_primary(ParserContext *ctx, Lexer *l)
register_tuple(ctx, sig);
- char tuple_name[256];
+ char tuple_name[1024];
sprintf(tuple_name, "Tuple_%s", sig);
char *code = xmalloc(4096);