diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2016-05-09 13:44:29 -0700 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2016-05-09 13:44:29 -0700 |
| commit | f1e5be96860406d7a4239b174c896799d8fd6545 (patch) | |
| tree | 4b322fa179f2eaca32664d415a4c069777bd3e7f /src/parser.cpp | |
| parent | 745c325d0f498406f229e532753e5d5712e824d4 (diff) | |
| download | zig-f1e5be96860406d7a4239b174c896799d8fd6545.tar.gz zig-f1e5be96860406d7a4239b174c896799d8fd6545.zip | |
fix ability to use previous generic params and
add error when `%return` shows up in a function with incorrect
return type
Diffstat (limited to 'src/parser.cpp')
| -rw-r--r-- | src/parser.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/parser.cpp b/src/parser.cpp index 9a85dc3b9e..943bd2c58d 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -2605,7 +2605,7 @@ static AstNode *ast_parse_use(ParseContext *pc, int *token_index, /* ContainerDecl = ("struct" | "enum" | "union") "Symbol" option(ParamDeclList) "{" many(StructMember) "}" -StructMember = many(Directive) option(VisibleMod) (StructField | FnDef | GlobalVarDecl) +StructMember = many(Directive) option(VisibleMod) (StructField | FnDef | GlobalVarDecl | ContainerDecl) StructField : "Symbol" option(":" Expression) ",") */ static AstNode *ast_parse_container_decl(ParseContext *pc, int *token_index, @@ -2675,6 +2675,12 @@ static AstNode *ast_parse_container_decl(ParseContext *pc, int *token_index, continue; } + AstNode *container_decl_node = ast_parse_container_decl(pc, token_index, directive_list, visib_mod); + if (container_decl_node) { + node->data.struct_decl.decls.append(container_decl_node); + continue; + } + Token *token = &pc->tokens->at(*token_index); if (token->id == TokenIdRBrace) { |
