Fixed error where we didn't expect the return type of a function
This commit is contained in:
parent
8139c5a516
commit
5b3f7a8e1f
|
@ -812,7 +812,7 @@ static AstNode *ast_parse_fn_proto(ParseContext *pc) {
|
|||
AstNode *return_type = nullptr;
|
||||
if (var == nullptr) {
|
||||
exmark = eat_token_if(pc, TokenIdBang);
|
||||
return_type = ast_parse_type_expr(pc);
|
||||
return_type = ast_expect(pc, ast_parse_type_expr);
|
||||
}
|
||||
|
||||
AstNode *res = ast_create_node(pc, NodeTypeFnProto, first);
|
||||
|
@ -1606,6 +1606,7 @@ static AstNode *ast_parse_suffix_expr(ParseContext *pc) {
|
|||
// / FLOAT
|
||||
// / FnProto
|
||||
// / GroupedExpr
|
||||
// / LabeledTypeExpr
|
||||
// / IDENTIFIER
|
||||
// / IfTypeExpr
|
||||
// / INTEGER
|
||||
|
@ -1618,7 +1619,6 @@ static AstNode *ast_parse_suffix_expr(ParseContext *pc) {
|
|||
// / KEYWORD_true
|
||||
// / KEYWORD_undefined
|
||||
// / KEYWORD_unreachable
|
||||
// / LabeledTypeExpr
|
||||
// / STRINGLITERAL
|
||||
// / SwitchExpr
|
||||
static AstNode *ast_parse_primary_type_expr(ParseContext *pc) {
|
||||
|
@ -1682,6 +1682,10 @@ static AstNode *ast_parse_primary_type_expr(ParseContext *pc) {
|
|||
if (grouped_expr != nullptr)
|
||||
return grouped_expr;
|
||||
|
||||
AstNode *labeled_type_expr = ast_parse_labeled_type_expr(pc);
|
||||
if (labeled_type_expr != nullptr)
|
||||
return labeled_type_expr;
|
||||
|
||||
Token *identifier = eat_token_if(pc, TokenIdSymbol);
|
||||
if (identifier != nullptr)
|
||||
return token_symbol(pc, identifier);
|
||||
|
@ -1750,10 +1754,6 @@ static AstNode *ast_parse_primary_type_expr(ParseContext *pc) {
|
|||
if (unreachable != nullptr)
|
||||
return ast_create_node(pc, NodeTypeUnreachable, unreachable);
|
||||
|
||||
AstNode *labeled_type_expr = ast_parse_labeled_type_expr(pc);
|
||||
if (labeled_type_expr != nullptr)
|
||||
return labeled_type_expr;
|
||||
|
||||
Token *string_lit = eat_token_if(pc, TokenIdStringLiteral);
|
||||
if (string_lit != nullptr) {
|
||||
AstNode *res = ast_create_node(pc, NodeTypeStringLiteral, string_lit);
|
||||
|
|
Loading…
Reference in New Issue
Block a user