diff options
| author | Jimmi Holst Christensen <jhc@liab.dk> | 2018-11-13 14:37:03 +0100 |
|---|---|---|
| committer | Jimmi Holst Christensen <jhc@liab.dk> | 2018-11-13 14:43:08 +0100 |
| commit | 5b3f7a8e1f5cc0448d4100dc98f947a7cd7c5723 (patch) | |
| tree | 670e2f1fee29c0bbb7cf012d72ac2c8b9f5781ad /src/parser.cpp | |
| parent | 8139c5a516eaa217ed76acdf09496895451c5c5c (diff) | |
| download | zig-5b3f7a8e1f5cc0448d4100dc98f947a7cd7c5723.tar.gz zig-5b3f7a8e1f5cc0448d4100dc98f947a7cd7c5723.zip | |
Fixed error where we didn't expect the return type of a function
Diffstat (limited to 'src/parser.cpp')
| -rw-r--r-- | src/parser.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/parser.cpp b/src/parser.cpp index 01c4f45e1b..0864e7ed1b 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -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); |
