diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2021-05-08 10:53:22 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2021-05-08 10:53:22 -0700 |
| commit | b6bb0ee1acd6fb9e3360f35d7b63687f755785f6 (patch) | |
| tree | 34f42b24cc683d13a9e78bd27f914dfee00c37b0 /src/stage1/parser.cpp | |
| parent | 28353b315935e54b497f4abb875fac387e20f65f (diff) | |
| parent | 84d5cc31c560749eda1e36b7bc9e6cf542eee550 (diff) | |
| download | zig-b6bb0ee1acd6fb9e3360f35d7b63687f755785f6.tar.gz zig-b6bb0ee1acd6fb9e3360f35d7b63687f755785f6.zip | |
Merge remote-tracking branch 'origin/master' into stage2-whole-file-astgen
Conflicts:
* lib/std/os/linux/tls.zig
* test/behavior/align.zig
* test/behavior/atomics.zig
* test/behavior/vector.zig
Diffstat (limited to 'src/stage1/parser.cpp')
| -rw-r--r-- | src/stage1/parser.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/stage1/parser.cpp b/src/stage1/parser.cpp index d57277cd51..f152f245b7 100644 --- a/src/stage1/parser.cpp +++ b/src/stage1/parser.cpp @@ -825,7 +825,16 @@ static AstNode *ast_parse_fn_proto(ParseContext *pc) { AstNode *return_type = nullptr; if (anytype == nullptr) { exmark = eat_token_if(pc, TokenIdBang); - return_type = ast_expect(pc, ast_parse_type_expr); + return_type = ast_parse_type_expr(pc); + if (return_type == nullptr) { + Token *next = peek_token(pc); + ast_error( + pc, + next, + "expected return type (use 'void' to return nothing), found: '%s'", + token_name(next->id) + ); + } } AstNode *res = ast_create_node(pc, NodeTypeFnProto, first); |
