diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2017-01-23 16:40:17 -0500 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2017-01-23 16:40:17 -0500 |
| commit | 17cb85dfb837949cd3a559fe8e99dee1f72463a4 (patch) | |
| tree | a35d23e26938586ba0fb706964e2b7c2b4b894f7 /src/ast_render.cpp | |
| parent | 1826a961608037405237f12df5aec94f8f5f3a10 (diff) | |
| download | zig-17cb85dfb837949cd3a559fe8e99dee1f72463a4.tar.gz zig-17cb85dfb837949cd3a559fe8e99dee1f72463a4.zip | |
basic support for functions with variable length arguments
See #77
Diffstat (limited to 'src/ast_render.cpp')
| -rw-r--r-- | src/ast_render.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/ast_render.cpp b/src/ast_render.cpp index 20fcf955cf..2166d68cd5 100644 --- a/src/ast_render.cpp +++ b/src/ast_render.cpp @@ -393,7 +393,6 @@ static void render_node_extra(AstRender *ar, AstNode *node, bool grouped) { print_symbol(ar, node->data.fn_proto.name); fprintf(ar->f, "("); int arg_count = node->data.fn_proto.params.length; - bool is_var_args = node->data.fn_proto.is_var_args; for (int arg_i = 0; arg_i < arg_count; arg_i += 1) { AstNode *param_decl = node->data.fn_proto.params.at(arg_i); assert(param_decl->type == NodeTypeParamDecl); @@ -404,15 +403,16 @@ static void render_node_extra(AstRender *ar, AstNode *node, bool grouped) { print_symbol(ar, param_decl->data.param_decl.name); fprintf(ar->f, ": "); } - render_node_grouped(ar, param_decl->data.param_decl.type); + if (param_decl->data.param_decl.is_var_args) { + fprintf(ar->f, "..."); + } else { + render_node_grouped(ar, param_decl->data.param_decl.type); + } - if (arg_i + 1 < arg_count || is_var_args) { + if (arg_i + 1 < arg_count) { fprintf(ar->f, ", "); } } - if (is_var_args) { - fprintf(ar->f, "..."); - } fprintf(ar->f, ")"); AstNode *return_type_node = node->data.fn_proto.return_type; |
