diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2016-11-26 20:52:22 -0500 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2016-11-26 20:52:22 -0500 |
| commit | 84f7805029e6a272f51bfa106cc40081a8581823 (patch) | |
| tree | 74b0f0c1c3550fa3f9371986c3f7fa46e531ab68 /src/ast_render.cpp | |
| parent | 4619b5de0609e98c0c98fe352f3bc32f036b6ad4 (diff) | |
| download | zig-84f7805029e6a272f51bfa106cc40081a8581823.tar.gz zig-84f7805029e6a272f51bfa106cc40081a8581823.zip | |
IR: support import builtin function
Diffstat (limited to 'src/ast_render.cpp')
| -rw-r--r-- | src/ast_render.cpp | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/src/ast_render.cpp b/src/ast_render.cpp index fb7f6bc5cf..4b25bc2f6b 100644 --- a/src/ast_render.cpp +++ b/src/ast_render.cpp @@ -528,25 +528,24 @@ static void render_node_extra(AstRender *ar, AstNode *node, bool grouped) { break; } case NodeTypeFnCallExpr: - if (node->data.fn_call_expr.is_builtin) { - fprintf(ar->f, "@"); - } else { + { + if (node->data.fn_call_expr.is_builtin) { + fprintf(ar->f, "@"); + } + AstNode *fn_ref_node = node->data.fn_call_expr.fn_ref_expr; + bool grouped = (fn_ref_node->type != NodeTypeBinOpExpr); + render_node_extra(ar, fn_ref_node, grouped); fprintf(ar->f, "("); - } - render_node_ungrouped(ar, node->data.fn_call_expr.fn_ref_expr); - if (!node->data.fn_call_expr.is_builtin) { - fprintf(ar->f, ")"); - } - fprintf(ar->f, "("); - for (size_t i = 0; i < node->data.fn_call_expr.params.length; i += 1) { - AstNode *param = node->data.fn_call_expr.params.at(i); - if (i != 0) { - fprintf(ar->f, ", "); + for (size_t i = 0; i < node->data.fn_call_expr.params.length; i += 1) { + AstNode *param = node->data.fn_call_expr.params.at(i); + if (i != 0) { + fprintf(ar->f, ", "); + } + render_node_grouped(ar, param); } - render_node_grouped(ar, param); + fprintf(ar->f, ")"); + break; } - fprintf(ar->f, ")"); - break; case NodeTypeArrayAccessExpr: render_node_ungrouped(ar, node->data.array_access_expr.array_ref_expr); fprintf(ar->f, "["); |
