aboutsummaryrefslogtreecommitdiff
path: root/src/ir.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2019-10-06 16:39:27 -0400
committerAndrew Kelley <andrew@ziglang.org>2019-10-06 16:39:27 -0400
commit8e2c441b2eae7af27fe311c4539f6932a7f47cea (patch)
tree9bb0bd70760ab320431ada61169520689a65a4c1 /src/ir.cpp
parent86171afb9b7d7f1c1d5444f894e273ca40e87147 (diff)
downloadzig-8e2c441b2eae7af27fe311c4539f6932a7f47cea.tar.gz
zig-8e2c441b2eae7af27fe311c4539f6932a7f47cea.zip
stage1 parser supports doc comments
Diffstat (limited to 'src/ir.cpp')
-rw-r--r--src/ir.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/ir.cpp b/src/ir.cpp
index 52b59ddcad..2bfde74da0 100644
--- a/src/ir.cpp
+++ b/src/ir.cpp
@@ -7945,7 +7945,15 @@ static IrInstruction *ir_gen_err_set_decl(IrBuilder *irb, Scope *parent_scope, A
ErrorTableEntry **errors = allocate<ErrorTableEntry *>(irb->codegen->errors_by_index.length + err_count);
for (uint32_t i = 0; i < err_count; i += 1) {
- AstNode *symbol_node = node->data.err_set_decl.decls.at(i);
+ AstNode *field_node = node->data.err_set_decl.decls.at(i);
+ AstNode *symbol_node;
+ if (field_node->type == NodeTypeSymbol) {
+ symbol_node = field_node;
+ } else if (field_node->type == NodeTypeErrorSetField) {
+ symbol_node = field_node->data.err_set_field.field_name;
+ } else {
+ zig_unreachable();
+ }
assert(symbol_node->type == NodeTypeSymbol);
Buf *err_name = symbol_node->data.symbol_expr.symbol;
ErrorTableEntry *err = allocate<ErrorTableEntry>(1);
@@ -8116,6 +8124,7 @@ static IrInstruction *ir_gen_node_raw(IrBuilder *irb, AstNode *node, Scope *scop
case NodeTypeSwitchProng:
case NodeTypeSwitchRange:
case NodeTypeStructField:
+ case NodeTypeErrorSetField:
case NodeTypeFnDef:
case NodeTypeTestDecl:
zig_unreachable();