aboutsummaryrefslogtreecommitdiff
path: root/src/ast_render.cpp
diff options
context:
space:
mode:
authorVexu <15308111+Vexu@users.noreply.github.com>2019-11-23 19:13:48 +0200
committerVexu <15308111+Vexu@users.noreply.github.com>2019-11-23 19:13:48 +0200
commit03cc81665bb28eb35c8c6d4be17b5a56fa66261f (patch)
treee686671775e606c3cf1129b535f2c2487e4e6e3c /src/ast_render.cpp
parent86d9563d1539cd7581dc120023bb830fae77ba0f (diff)
parentad0871ea4bf2dfbed07282ffe14738b5347d5d32 (diff)
downloadzig-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.cpp22
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;