From d5b8172a82f5b301b518501958ca1db11d07bc38 Mon Sep 17 00:00:00 2001 From: Tadeo Kondrak Date: Fri, 25 Sep 2020 14:49:35 -0600 Subject: [PATCH] translate_c: emit opaque {} instead of @Type(.Opaque) --- src/translate_c.zig | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/translate_c.zig b/src/translate_c.zig index 5e2c412f19..40a46fd5ab 100644 --- a/src/translate_c.zig +++ b/src/translate_c.zig @@ -4438,10 +4438,18 @@ fn transCreateNodeFloat(c: *Context, int: anytype) !*ast.Node { } fn transCreateNodeOpaqueType(c: *Context) !*ast.Node { - const call_node = try c.createBuiltinCall("@Type", 1); - call_node.params()[0] = try transCreateNodeEnumLiteral(c, "Opaque"); - call_node.rparen_token = try appendToken(c, .RParen, ")"); - return &call_node.base; + const container_tok = try appendToken(c, .Keyword_opaque, "opaque"); + const lbrace_token = try appendToken(c, .LBrace, "{"); + const container_node = try ast.Node.ContainerDecl.alloc(c.arena, 0); + container_node.* = .{ + .kind_token = container_tok, + .layout_token = null, + .lbrace_token = lbrace_token, + .rbrace_token = try appendToken(c, .RBrace, "}"), + .fields_and_decls_len = 0, + .init_arg_expr = .None, + }; + return &container_node.base; } fn transCreateNodeMacroFn(c: *Context, name: []const u8, ref: *ast.Node, proto_alias: *ast.Node.FnProto) !*ast.Node {