authorgravatar for jhc@dismail.deJimmi Holst Christensen <jhc@dismail.de> 2018-11-13 14:37:03+01:00
committergravatar for jhc@dismail.deJimmi Holst Christensen <jhc@dismail.de> 2018-11-13 14:43:08+01:00
log5b3f7a8e1f5cc0448d4100dc98f947a7cd7c5723
tree670e2f1fee29c0bbb7cf012d72ac2c8b9f5781ad
parent8139c5a516eaa217ed76acdf09496895451c5c5c

Fixed error where we didn't expect the return type of a function


1 files changed, 6 insertions(+), 6 deletions(-)

src/parser.cpp+6-6
......@@ -812,7 +812,7 @@ static AstNode *ast_parse_fn_proto(ParseContext *pc) {
812812 AstNode *return_type = nullptr;
813813 if (var == nullptr) {
814814 exmark = eat_token_if(pc, TokenIdBang);
815 return_type = ast_parse_type_expr(pc);
815 return_type = ast_expect(pc, ast_parse_type_expr);
816816 }
817817
818818 AstNode *res = ast_create_node(pc, NodeTypeFnProto, first);
......@@ -1606,6 +1606,7 @@ static AstNode *ast_parse_suffix_expr(ParseContext *pc) {
16061606// / FLOAT
16071607// / FnProto
16081608// / GroupedExpr
1609// / LabeledTypeExpr
16091610// / IDENTIFIER
16101611// / IfTypeExpr
16111612// / INTEGER
......@@ -1618,7 +1619,6 @@ static AstNode *ast_parse_suffix_expr(ParseContext *pc) {
16181619// / KEYWORD_true
16191620// / KEYWORD_undefined
16201621// / KEYWORD_unreachable
1621// / LabeledTypeExpr
16221622// / STRINGLITERAL
16231623// / SwitchExpr
16241624static AstNode *ast_parse_primary_type_expr(ParseContext *pc) {
......@@ -1682,6 +1682,10 @@ static AstNode *ast_parse_primary_type_expr(ParseContext *pc) {
16821682 if (grouped_expr != nullptr)
16831683 return grouped_expr;
16841684
1685 AstNode *labeled_type_expr = ast_parse_labeled_type_expr(pc);
1686 if (labeled_type_expr != nullptr)
1687 return labeled_type_expr;
1688
16851689 Token *identifier = eat_token_if(pc, TokenIdSymbol);
16861690 if (identifier != nullptr)
16871691 return token_symbol(pc, identifier);
......@@ -1750,10 +1754,6 @@ static AstNode *ast_parse_primary_type_expr(ParseContext *pc) {
17501754 if (unreachable != nullptr)
17511755 return ast_create_node(pc, NodeTypeUnreachable, unreachable);
17521756
1753 AstNode *labeled_type_expr = ast_parse_labeled_type_expr(pc);
1754 if (labeled_type_expr != nullptr)
1755 return labeled_type_expr;
1756
17571757 Token *string_lit = eat_token_if(pc, TokenIdStringLiteral);
17581758 if (string_lit != nullptr) {
17591759 AstNode *res = ast_create_node(pc, NodeTypeStringLiteral, string_lit);