aboutsummaryrefslogtreecommitdiff
path: root/src/ast_render.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2018-03-24 19:25:53 -0400
committerAndrew Kelley <superjoe30@gmail.com>2018-03-24 19:25:53 -0400
commit897e783763d60449ad1b9514cb5ba86a38f7ae4a (patch)
tree1f1603884432590aba99c7d2edd0d035548c5286 /src/ast_render.cpp
parent18af2f9a2764cc340571578d58cb2575faeccdc6 (diff)
downloadzig-897e783763d60449ad1b9514cb5ba86a38f7ae4a.tar.gz
zig-897e783763d60449ad1b9514cb5ba86a38f7ae4a.zip
add promise->T syntax parsing
closes #857
Diffstat (limited to 'src/ast_render.cpp')
-rw-r--r--src/ast_render.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/ast_render.cpp b/src/ast_render.cpp
index 432489c4d9..7b5fc03ea8 100644
--- a/src/ast_render.cpp
+++ b/src/ast_render.cpp
@@ -250,6 +250,8 @@ static const char *node_type_str(NodeType node_type) {
return "AwaitExpr";
case NodeTypeSuspend:
return "Suspend";
+ case NodeTypePromiseType:
+ return "PromiseType";
}
zig_unreachable();
}
@@ -781,6 +783,15 @@ static void render_node_extra(AstRender *ar, AstNode *node, bool grouped) {
render_node_ungrouped(ar, node->data.array_type.child_type);
break;
}
+ case NodeTypePromiseType:
+ {
+ fprintf(ar->f, "promise");
+ if (node->data.promise_type.payload_type != nullptr) {
+ fprintf(ar->f, "->");
+ render_node_grouped(ar, node->data.promise_type.payload_type);
+ }
+ break;
+ }
case NodeTypeErrorType:
fprintf(ar->f, "error");
break;