diff options
| author | Vexu <15308111+Vexu@users.noreply.github.com> | 2019-11-23 19:13:48 +0200 |
|---|---|---|
| committer | Vexu <15308111+Vexu@users.noreply.github.com> | 2019-11-23 19:13:48 +0200 |
| commit | 03cc81665bb28eb35c8c6d4be17b5a56fa66261f (patch) | |
| tree | e686671775e606c3cf1129b535f2c2487e4e6e3c /src/ast_render.cpp | |
| parent | 86d9563d1539cd7581dc120023bb830fae77ba0f (diff) | |
| parent | ad0871ea4bf2dfbed07282ffe14738b5347d5d32 (diff) | |
| download | zig-03cc81665bb28eb35c8c6d4be17b5a56fa66261f.tar.gz zig-03cc81665bb28eb35c8c6d4be17b5a56fa66261f.zip | |
Merge branch 'master' into modernize-stage2
Diffstat (limited to 'src/ast_render.cpp')
| -rw-r--r-- | src/ast_render.cpp | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/ast_render.cpp b/src/ast_render.cpp index 18940c4b80..34cbed245a 100644 --- a/src/ast_render.cpp +++ b/src/ast_render.cpp @@ -821,7 +821,9 @@ static void render_node_extra(AstRender *ar, AstNode *node, bool grouped) { break; } case NodeTypeContainerInitExpr: - render_node_ungrouped(ar, node->data.container_init_expr.type); + if (node->data.container_init_expr.type != nullptr) { + render_node_ungrouped(ar, node->data.container_init_expr.type); + } if (node->data.container_init_expr.kind == ContainerInitKindStruct) { fprintf(ar->f, "{\n"); ar->indent += ar->indent_size; @@ -1137,10 +1139,20 @@ static void render_node_extra(AstRender *ar, AstNode *node, bool grouped) { for (size_t i = 0; i < node->data.err_set_decl.decls.length; i += 1) { AstNode *field_node = node->data.err_set_decl.decls.at(i); - assert(field_node->type == NodeTypeSymbol); - print_indent(ar); - print_symbol(ar, field_node->data.symbol_expr.symbol); - fprintf(ar->f, ",\n"); + switch (field_node->type) { + case NodeTypeSymbol: + print_indent(ar); + print_symbol(ar, field_node->data.symbol_expr.symbol); + fprintf(ar->f, ",\n"); + break; + case NodeTypeErrorSetField: + print_indent(ar); + print_symbol(ar, field_node->data.err_set_field.field_name->data.symbol_expr.symbol); + fprintf(ar->f, ",\n"); + break; + default: + zig_unreachable(); + } } ar->indent -= ar->indent_size; |
