authorgravatar for me@tadeo.caTadeo Kondrak <me@tadeo.ca> 2020-09-25 14:29:03-06:00
committergravatar for me@tadeo.caTadeo Kondrak <me@tadeo.ca> 2020-10-06 22:08:25-06:00
log2b4b03d301ee12126f3bb5ce1d350bac7ad48b84
tree8fb38492090561e7cd9707e9a123c5e9d6af787a
parent069fbb3c01d8be0940d60e3324213a0cde4a42d5
signaturelock-open Commit is signed but in an unrecognized format.

Update zig files for opaque type syntax


11 files changed, 157 insertions(+), 157 deletions(-)

lib/std/c.zig+2-2
...@@ -329,8 +329,8 @@ pub extern "c" fn pthread_cond_signal(cond: *pthread_cond_t) c_int;...@@ -329,8 +329,8 @@ pub extern "c" fn pthread_cond_signal(cond: *pthread_cond_t) c_int;
329pub extern "c" fn pthread_cond_broadcast(cond: *pthread_cond_t) c_int;329pub extern "c" fn pthread_cond_broadcast(cond: *pthread_cond_t) c_int;
330pub extern "c" fn pthread_cond_destroy(cond: *pthread_cond_t) c_int;330pub extern "c" fn pthread_cond_destroy(cond: *pthread_cond_t) c_int;
331331
332pub const pthread_t = *@Type(.Opaque);332pub const pthread_t = *opaque {};
333pub const FILE = @Type(.Opaque);333pub const FILE = opaque {};
334334
335pub extern "c" fn dlopen(path: [*:0]const u8, mode: c_int) ?*c_void;335pub extern "c" fn dlopen(path: [*:0]const u8, mode: c_int) ?*c_void;
336pub extern "c" fn dlclose(handle: *c_void) c_int;336pub extern "c" fn dlclose(handle: *c_void) c_int;
lib/std/os/linux/bpf/kern.zig+25-25
...@@ -12,28 +12,28 @@ const in_bpf_program = switch (std.builtin.arch) {...@@ -12,28 +12,28 @@ const in_bpf_program = switch (std.builtin.arch) {
1212
13pub const helpers = if (in_bpf_program) @import("helpers.zig") else struct {};13pub const helpers = if (in_bpf_program) @import("helpers.zig") else struct {};
1414
15pub const BpfSock = @Type(.Opaque);15pub const BpfSock = opaque {};
16pub const BpfSockAddr = @Type(.Opaque);16pub const BpfSockAddr = opaque {};
17pub const FibLookup = @Type(.Opaque);17pub const FibLookup = opaque {};
18pub const MapDef = @Type(.Opaque);18pub const MapDef = opaque {};
19pub const PerfEventData = @Type(.Opaque);19pub const PerfEventData = opaque {};
20pub const PerfEventValue = @Type(.Opaque);20pub const PerfEventValue = opaque {};
21pub const PidNsInfo = @Type(.Opaque);21pub const PidNsInfo = opaque {};
22pub const SeqFile = @Type(.Opaque);22pub const SeqFile = opaque {};
23pub const SkBuff = @Type(.Opaque);23pub const SkBuff = opaque {};
24pub const SkMsgMd = @Type(.Opaque);24pub const SkMsgMd = opaque {};
25pub const SkReusePortMd = @Type(.Opaque);25pub const SkReusePortMd = opaque {};
26pub const Sock = @Type(.Opaque);26pub const Sock = opaque {};
27pub const SockAddr = @Type(.Opaque);27pub const SockAddr = opaque {};
28pub const SockOps = @Type(.Opaque);28pub const SockOps = opaque {};
29pub const SockTuple = @Type(.Opaque);29pub const SockTuple = opaque {};
30pub const SpinLock = @Type(.Opaque);30pub const SpinLock = opaque {};
31pub const SysCtl = @Type(.Opaque);31pub const SysCtl = opaque {};
32pub const Tcp6Sock = @Type(.Opaque);32pub const Tcp6Sock = opaque {};
33pub const TcpRequestSock = @Type(.Opaque);33pub const TcpRequestSock = opaque {};
34pub const TcpSock = @Type(.Opaque);34pub const TcpSock = opaque {};
35pub const TcpTimewaitSock = @Type(.Opaque);35pub const TcpTimewaitSock = opaque {};
36pub const TunnelKey = @Type(.Opaque);36pub const TunnelKey = opaque {};
37pub const Udp6Sock = @Type(.Opaque);37pub const Udp6Sock = opaque {};
38pub const XdpMd = @Type(.Opaque);38pub const XdpMd = opaque {};
39pub const XfrmState = @Type(.Opaque);39pub const XfrmState = opaque {};
lib/std/os/uefi.zig+3-3
...@@ -17,7 +17,7 @@ pub var handle: Handle = undefined;...@@ -17,7 +17,7 @@ pub var handle: Handle = undefined;
17pub var system_table: *tables.SystemTable = undefined;17pub var system_table: *tables.SystemTable = undefined;
1818
19/// A handle to an event structure.19/// A handle to an event structure.
20pub const Event = *@Type(.Opaque);20pub const Event = *opaque {};
2121
22/// GUIDs must be align(8)22/// GUIDs must be align(8)
23pub const Guid = extern struct {23pub const Guid = extern struct {
...@@ -51,7 +51,7 @@ pub const Guid = extern struct {...@@ -51,7 +51,7 @@ pub const Guid = extern struct {
51};51};
5252
53/// An EFI Handle represents a collection of related interfaces.53/// An EFI Handle represents a collection of related interfaces.
54pub const Handle = *@Type(.Opaque);54pub const Handle = *opaque {};
5555
56/// This structure represents time information.56/// This structure represents time information.
57pub const Time = extern struct {57pub const Time = extern struct {
...@@ -108,4 +108,4 @@ pub const TimeCapabilities = extern struct {...@@ -108,4 +108,4 @@ pub const TimeCapabilities = extern struct {
108};108};
109109
110/// File Handle as specified in the EFI Shell Spec110/// File Handle as specified in the EFI Shell Spec
111pub const FileHandle = *@Type(.Opaque);111pub const FileHandle = *opaque {};
lib/std/os/uefi/protocols/hii.zig+1-1
...@@ -6,7 +6,7 @@...@@ -6,7 +6,7 @@
6const uefi = @import("std").os.uefi;6const uefi = @import("std").os.uefi;
7const Guid = uefi.Guid;7const Guid = uefi.Guid;
88
9pub const HIIHandle = *@Type(.Opaque);9pub const HIIHandle = *opaque {};
1010
11/// The header found at the start of each package.11/// The header found at the start of each package.
12pub const HIIPackageHeader = packed struct {12pub const HIIPackageHeader = packed struct {
lib/std/os/windows/bits.zig+15-15
...@@ -32,16 +32,16 @@ pub const UCHAR = u8;...@@ -32,16 +32,16 @@ pub const UCHAR = u8;
32pub const FLOAT = f32;32pub const FLOAT = f32;
33pub const HANDLE = *c_void;33pub const HANDLE = *c_void;
34pub const HCRYPTPROV = ULONG_PTR;34pub const HCRYPTPROV = ULONG_PTR;
35pub const HBRUSH = *@Type(.Opaque);35pub const HBRUSH = *opaque {};
36pub const HCURSOR = *@Type(.Opaque);36pub const HCURSOR = *opaque {};
37pub const HICON = *@Type(.Opaque);37pub const HICON = *opaque {};
38pub const HINSTANCE = *@Type(.Opaque);38pub const HINSTANCE = *opaque {};
39pub const HMENU = *@Type(.Opaque);39pub const HMENU = *opaque {};
40pub const HMODULE = *@Type(.Opaque);40pub const HMODULE = *opaque {};
41pub const HWND = *@Type(.Opaque);41pub const HWND = *opaque {};
42pub const HDC = *@Type(.Opaque);42pub const HDC = *opaque {};
43pub const HGLRC = *@Type(.Opaque);43pub const HGLRC = *opaque {};
44pub const FARPROC = *@Type(.Opaque);44pub const FARPROC = *opaque {};
45pub const INT = c_int;45pub const INT = c_int;
46pub const LPBYTE = *BYTE;46pub const LPBYTE = *BYTE;
47pub const LPCH = *CHAR;47pub const LPCH = *CHAR;
...@@ -81,7 +81,7 @@ pub const WPARAM = usize;...@@ -81,7 +81,7 @@ pub const WPARAM = usize;
81pub const LPARAM = ?*c_void;81pub const LPARAM = ?*c_void;
82pub const LRESULT = ?*c_void;82pub const LRESULT = ?*c_void;
8383
84pub const va_list = *@Type(.Opaque);84pub const va_list = *opaque {};
8585
86pub const TRUE = 1;86pub const TRUE = 1;
87pub const FALSE = 0;87pub const FALSE = 0;
...@@ -1175,10 +1175,10 @@ pub const UNICODE_STRING = extern struct {...@@ -1175,10 +1175,10 @@ pub const UNICODE_STRING = extern struct {
1175 Buffer: [*]WCHAR,1175 Buffer: [*]WCHAR,
1176};1176};
11771177
1178const ACTIVATION_CONTEXT_DATA = @Type(.Opaque);1178const ACTIVATION_CONTEXT_DATA = opaque {};
1179const ASSEMBLY_STORAGE_MAP = @Type(.Opaque);1179const ASSEMBLY_STORAGE_MAP = opaque {};
1180const FLS_CALLBACK_INFO = @Type(.Opaque);1180const FLS_CALLBACK_INFO = opaque {};
1181const RTL_BITMAP = @Type(.Opaque);1181const RTL_BITMAP = opaque {};
1182pub const PRTL_BITMAP = *RTL_BITMAP;1182pub const PRTL_BITMAP = *RTL_BITMAP;
1183const KAFFINITY = usize;1183const KAFFINITY = usize;
11841184
lib/std/os/windows/ws2_32.zig+1-1
...@@ -5,7 +5,7 @@...@@ -5,7 +5,7 @@
5// and substantial portions of the software.5// and substantial portions of the software.
6usingnamespace @import("bits.zig");6usingnamespace @import("bits.zig");
77
8pub const SOCKET = *@Type(.Opaque);8pub const SOCKET = *opaque {};
9pub const INVALID_SOCKET = @intToPtr(SOCKET, ~@as(usize, 0));9pub const INVALID_SOCKET = @intToPtr(SOCKET, ~@as(usize, 0));
10pub const SOCKET_ERROR = -1;10pub const SOCKET_ERROR = -1;
1111
src/clang.zig+86-86
...@@ -1,89 +1,89 @@...@@ -1,89 +1,89 @@
1const builtin = @import("builtin");1const builtin = @import("builtin");
22
3pub const struct_ZigClangConditionalOperator = @Type(.Opaque);3pub const struct_ZigClangConditionalOperator = opaque {};
4pub const struct_ZigClangBinaryConditionalOperator = @Type(.Opaque);4pub const struct_ZigClangBinaryConditionalOperator = opaque {};
5pub const struct_ZigClangAbstractConditionalOperator = @Type(.Opaque);5pub const struct_ZigClangAbstractConditionalOperator = opaque {};
6pub const struct_ZigClangAPInt = @Type(.Opaque);6pub const struct_ZigClangAPInt = opaque {};
7pub const struct_ZigClangAPSInt = @Type(.Opaque);7pub const struct_ZigClangAPSInt = opaque {};
8pub const struct_ZigClangAPFloat = @Type(.Opaque);8pub const struct_ZigClangAPFloat = opaque {};
9pub const struct_ZigClangASTContext = @Type(.Opaque);9pub const struct_ZigClangASTContext = opaque {};
10pub const struct_ZigClangASTUnit = @Type(.Opaque);10pub const struct_ZigClangASTUnit = opaque {};
11pub const struct_ZigClangArraySubscriptExpr = @Type(.Opaque);11pub const struct_ZigClangArraySubscriptExpr = opaque {};
12pub const struct_ZigClangArrayType = @Type(.Opaque);12pub const struct_ZigClangArrayType = opaque {};
13pub const struct_ZigClangAttributedType = @Type(.Opaque);13pub const struct_ZigClangAttributedType = opaque {};
14pub const struct_ZigClangBinaryOperator = @Type(.Opaque);14pub const struct_ZigClangBinaryOperator = opaque {};
15pub const struct_ZigClangBreakStmt = @Type(.Opaque);15pub const struct_ZigClangBreakStmt = opaque {};
16pub const struct_ZigClangBuiltinType = @Type(.Opaque);16pub const struct_ZigClangBuiltinType = opaque {};
17pub const struct_ZigClangCStyleCastExpr = @Type(.Opaque);17pub const struct_ZigClangCStyleCastExpr = opaque {};
18pub const struct_ZigClangCallExpr = @Type(.Opaque);18pub const struct_ZigClangCallExpr = opaque {};
19pub const struct_ZigClangCaseStmt = @Type(.Opaque);19pub const struct_ZigClangCaseStmt = opaque {};
20pub const struct_ZigClangCompoundAssignOperator = @Type(.Opaque);20pub const struct_ZigClangCompoundAssignOperator = opaque {};
21pub const struct_ZigClangCompoundStmt = @Type(.Opaque);21pub const struct_ZigClangCompoundStmt = opaque {};
22pub const struct_ZigClangConstantArrayType = @Type(.Opaque);22pub const struct_ZigClangConstantArrayType = opaque {};
23pub const struct_ZigClangContinueStmt = @Type(.Opaque);23pub const struct_ZigClangContinueStmt = opaque {};
24pub const struct_ZigClangDecayedType = @Type(.Opaque);24pub const struct_ZigClangDecayedType = opaque {};
25pub const ZigClangDecl = @Type(.Opaque);25pub const ZigClangDecl = opaque {};
26pub const struct_ZigClangDeclRefExpr = @Type(.Opaque);26pub const struct_ZigClangDeclRefExpr = opaque {};
27pub const struct_ZigClangDeclStmt = @Type(.Opaque);27pub const struct_ZigClangDeclStmt = opaque {};
28pub const struct_ZigClangDefaultStmt = @Type(.Opaque);28pub const struct_ZigClangDefaultStmt = opaque {};
29pub const struct_ZigClangDiagnosticOptions = @Type(.Opaque);29pub const struct_ZigClangDiagnosticOptions = opaque {};
30pub const struct_ZigClangDiagnosticsEngine = @Type(.Opaque);30pub const struct_ZigClangDiagnosticsEngine = opaque {};
31pub const struct_ZigClangDoStmt = @Type(.Opaque);31pub const struct_ZigClangDoStmt = opaque {};
32pub const struct_ZigClangElaboratedType = @Type(.Opaque);32pub const struct_ZigClangElaboratedType = opaque {};
33pub const struct_ZigClangEnumConstantDecl = @Type(.Opaque);33pub const struct_ZigClangEnumConstantDecl = opaque {};
34pub const struct_ZigClangEnumDecl = @Type(.Opaque);34pub const struct_ZigClangEnumDecl = opaque {};
35pub const struct_ZigClangEnumType = @Type(.Opaque);35pub const struct_ZigClangEnumType = opaque {};
36pub const struct_ZigClangExpr = @Type(.Opaque);36pub const struct_ZigClangExpr = opaque {};
37pub const struct_ZigClangFieldDecl = @Type(.Opaque);37pub const struct_ZigClangFieldDecl = opaque {};
38pub const struct_ZigClangFileID = @Type(.Opaque);38pub const struct_ZigClangFileID = opaque {};
39pub const struct_ZigClangForStmt = @Type(.Opaque);39pub const struct_ZigClangForStmt = opaque {};
40pub const struct_ZigClangFullSourceLoc = @Type(.Opaque);40pub const struct_ZigClangFullSourceLoc = opaque {};
41pub const struct_ZigClangFunctionDecl = @Type(.Opaque);41pub const struct_ZigClangFunctionDecl = opaque {};
42pub const struct_ZigClangFunctionProtoType = @Type(.Opaque);42pub const struct_ZigClangFunctionProtoType = opaque {};
43pub const struct_ZigClangIfStmt = @Type(.Opaque);43pub const struct_ZigClangIfStmt = opaque {};
44pub const struct_ZigClangImplicitCastExpr = @Type(.Opaque);44pub const struct_ZigClangImplicitCastExpr = opaque {};
45pub const struct_ZigClangIncompleteArrayType = @Type(.Opaque);45pub const struct_ZigClangIncompleteArrayType = opaque {};
46pub const struct_ZigClangIntegerLiteral = @Type(.Opaque);46pub const struct_ZigClangIntegerLiteral = opaque {};
47pub const struct_ZigClangMacroDefinitionRecord = @Type(.Opaque);47pub const struct_ZigClangMacroDefinitionRecord = opaque {};
48pub const struct_ZigClangMacroExpansion = @Type(.Opaque);48pub const struct_ZigClangMacroExpansion = opaque {};
49pub const struct_ZigClangMacroQualifiedType = @Type(.Opaque);49pub const struct_ZigClangMacroQualifiedType = opaque {};
50pub const struct_ZigClangMemberExpr = @Type(.Opaque);50pub const struct_ZigClangMemberExpr = opaque {};
51pub const struct_ZigClangNamedDecl = @Type(.Opaque);51pub const struct_ZigClangNamedDecl = opaque {};
52pub const struct_ZigClangNone = @Type(.Opaque);52pub const struct_ZigClangNone = opaque {};
53pub const struct_ZigClangOpaqueValueExpr = @Type(.Opaque);53pub const struct_ZigClangOpaqueValueExpr = opaque {};
54pub const struct_ZigClangPCHContainerOperations = @Type(.Opaque);54pub const struct_ZigClangPCHContainerOperations = opaque {};
55pub const struct_ZigClangParenExpr = @Type(.Opaque);55pub const struct_ZigClangParenExpr = opaque {};
56pub const struct_ZigClangParenType = @Type(.Opaque);56pub const struct_ZigClangParenType = opaque {};
57pub const struct_ZigClangParmVarDecl = @Type(.Opaque);57pub const struct_ZigClangParmVarDecl = opaque {};
58pub const struct_ZigClangPointerType = @Type(.Opaque);58pub const struct_ZigClangPointerType = opaque {};
59pub const struct_ZigClangPreprocessedEntity = @Type(.Opaque);59pub const struct_ZigClangPreprocessedEntity = opaque {};
60pub const struct_ZigClangRecordDecl = @Type(.Opaque);60pub const struct_ZigClangRecordDecl = opaque {};
61pub const struct_ZigClangRecordType = @Type(.Opaque);61pub const struct_ZigClangRecordType = opaque {};
62pub const struct_ZigClangReturnStmt = @Type(.Opaque);62pub const struct_ZigClangReturnStmt = opaque {};
63pub const struct_ZigClangSkipFunctionBodiesScope = @Type(.Opaque);63pub const struct_ZigClangSkipFunctionBodiesScope = opaque {};
64pub const struct_ZigClangSourceManager = @Type(.Opaque);64pub const struct_ZigClangSourceManager = opaque {};
65pub const struct_ZigClangSourceRange = @Type(.Opaque);65pub const struct_ZigClangSourceRange = opaque {};
66pub const ZigClangStmt = @Type(.Opaque);66pub const ZigClangStmt = opaque {};
67pub const struct_ZigClangStringLiteral = @Type(.Opaque);67pub const struct_ZigClangStringLiteral = opaque {};
68pub const struct_ZigClangStringRef = @Type(.Opaque);68pub const struct_ZigClangStringRef = opaque {};
69pub const struct_ZigClangSwitchStmt = @Type(.Opaque);69pub const struct_ZigClangSwitchStmt = opaque {};
70pub const struct_ZigClangTagDecl = @Type(.Opaque);70pub const struct_ZigClangTagDecl = opaque {};
71pub const struct_ZigClangType = @Type(.Opaque);71pub const struct_ZigClangType = opaque {};
72pub const struct_ZigClangTypedefNameDecl = @Type(.Opaque);72pub const struct_ZigClangTypedefNameDecl = opaque {};
73pub const struct_ZigClangTypedefType = @Type(.Opaque);73pub const struct_ZigClangTypedefType = opaque {};
74pub const struct_ZigClangUnaryExprOrTypeTraitExpr = @Type(.Opaque);74pub const struct_ZigClangUnaryExprOrTypeTraitExpr = opaque {};
75pub const struct_ZigClangUnaryOperator = @Type(.Opaque);75pub const struct_ZigClangUnaryOperator = opaque {};
76pub const struct_ZigClangValueDecl = @Type(.Opaque);76pub const struct_ZigClangValueDecl = opaque {};
77pub const struct_ZigClangVarDecl = @Type(.Opaque);77pub const struct_ZigClangVarDecl = opaque {};
78pub const struct_ZigClangWhileStmt = @Type(.Opaque);78pub const struct_ZigClangWhileStmt = opaque {};
79pub const struct_ZigClangFunctionType = @Type(.Opaque);79pub const struct_ZigClangFunctionType = opaque {};
80pub const struct_ZigClangPredefinedExpr = @Type(.Opaque);80pub const struct_ZigClangPredefinedExpr = opaque {};
81pub const struct_ZigClangInitListExpr = @Type(.Opaque);81pub const struct_ZigClangInitListExpr = opaque {};
82pub const ZigClangPreprocessingRecord = @Type(.Opaque);82pub const ZigClangPreprocessingRecord = opaque {};
83pub const ZigClangFloatingLiteral = @Type(.Opaque);83pub const ZigClangFloatingLiteral = opaque {};
84pub const ZigClangConstantExpr = @Type(.Opaque);84pub const ZigClangConstantExpr = opaque {};
85pub const ZigClangCharacterLiteral = @Type(.Opaque);85pub const ZigClangCharacterLiteral = opaque {};
86pub const ZigClangStmtExpr = @Type(.Opaque);86pub const ZigClangStmtExpr = opaque {};
8787
88pub const ZigClangBO = extern enum {88pub const ZigClangBO = extern enum {
89 PtrMemD,89 PtrMemD,
...@@ -749,11 +749,11 @@ pub const ZigClangCharacterLiteral_CharacterKind = extern enum {...@@ -749,11 +749,11 @@ pub const ZigClangCharacterLiteral_CharacterKind = extern enum {
749};749};
750750
751pub const ZigClangRecordDecl_field_iterator = extern struct {751pub const ZigClangRecordDecl_field_iterator = extern struct {
752 opaque: *c_void,752 ptr: *c_void,
753};753};
754754
755pub const ZigClangEnumDecl_enumerator_iterator = extern struct {755pub const ZigClangEnumDecl_enumerator_iterator = extern struct {
756 opaque: *c_void,756 ptr: *c_void,
757};757};
758758
759pub const ZigClangPreprocessingRecord_iterator = extern struct {759pub const ZigClangPreprocessingRecord_iterator = extern struct {
test/compile_errors.zig+13-13
...@@ -180,7 +180,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {...@@ -180,7 +180,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
180 \\ .layout = .Auto,180 \\ .layout = .Auto,
181 \\ .tag_type = null,181 \\ .tag_type = null,
182 \\ .fields = &[_]TypeInfo.UnionField{182 \\ .fields = &[_]TypeInfo.UnionField{
183 \\ .{ .name = "foo", .field_type = @Type(.Opaque), .alignment = 1 },183 \\ .{ .name = "foo", .field_type = opaque {}, .alignment = 1 },
184 \\ },184 \\ },
185 \\ .decls = &[_]TypeInfo.Declaration{},185 \\ .decls = &[_]TypeInfo.Declaration{},
186 \\ },186 \\ },
...@@ -2613,7 +2613,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {...@@ -2613,7 +2613,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
2613 });2613 });
26142614
2615 cases.add("directly embedding opaque type in struct and union",2615 cases.add("directly embedding opaque type in struct and union",
2616 \\const O = @Type(.Opaque);2616 \\const O = opaque {};
2617 \\const Foo = struct {2617 \\const Foo = struct {
2618 \\ o: O,2618 \\ o: O,
2619 \\};2619 \\};
...@@ -2628,7 +2628,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {...@@ -2628,7 +2628,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
2628 \\ var bar: Bar = undefined;2628 \\ var bar: Bar = undefined;
2629 \\}2629 \\}
2630 \\export fn c() void {2630 \\export fn c() void {
2631 \\ var baz: *@Type(.Opaque) = undefined;2631 \\ var baz: *opaque {} = undefined;
2632 \\ const qux = .{baz.*};2632 \\ const qux = .{baz.*};
2633 \\}2633 \\}
2634 , &[_][]const u8{2634 , &[_][]const u8{
...@@ -3592,7 +3592,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {...@@ -3592,7 +3592,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
3592 });3592 });
35933593
3594 cases.add("unknown length pointer to opaque",3594 cases.add("unknown length pointer to opaque",
3595 \\export const T = [*]@Type(.Opaque);3595 \\export const T = [*]opaque {};
3596 , &[_][]const u8{3596 , &[_][]const u8{
3597 "tmp.zig:1:21: error: unknown-length pointer to opaque",3597 "tmp.zig:1:21: error: unknown-length pointer to opaque",
3598 });3598 });
...@@ -6827,8 +6827,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {...@@ -6827,8 +6827,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
6827 "tmp.zig:2:31: error: index 2 outside array of size 2",6827 "tmp.zig:2:31: error: index 2 outside array of size 2",
6828 });6828 });
68296829
6830 cases.add("wrong pointer coerced to pointer to @Type(.Opaque)",6830 cases.add("wrong pointer coerced to pointer to opaque {}",
6831 \\const Derp = @Type(.Opaque);6831 \\const Derp = opaque {};
6832 \\extern fn bar(d: *Derp) void;6832 \\extern fn bar(d: *Derp) void;
6833 \\export fn foo() void {6833 \\export fn foo() void {
6834 \\ var x = @as(u8, 1);6834 \\ var x = @as(u8, 1);
...@@ -6854,8 +6854,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {...@@ -6854,8 +6854,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
6854 \\export fn entry5() void {6854 \\export fn entry5() void {
6855 \\ var d = null;6855 \\ var d = null;
6856 \\}6856 \\}
6857 \\export fn entry6(opaque: *Opaque) void {6857 \\export fn entry6(opaque_: *Opaque) void {
6858 \\ var e = opaque.*;6858 \\ var e = opaque_.*;
6859 \\}6859 \\}
6860 \\export fn entry7() void {6860 \\export fn entry7() void {
6861 \\ var f = i32;6861 \\ var f = i32;
...@@ -6866,7 +6866,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {...@@ -6866,7 +6866,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
6866 \\export fn entry9() void {6866 \\export fn entry9() void {
6867 \\ var z: noreturn = return;6867 \\ var z: noreturn = return;
6868 \\}6868 \\}
6869 \\const Opaque = @Type(.Opaque);6869 \\const Opaque = opaque {};
6870 \\const Foo = struct {6870 \\const Foo = struct {
6871 \\ fn bar(self: *const Foo) void {}6871 \\ fn bar(self: *const Foo) void {}
6872 \\};6872 \\};
...@@ -7020,7 +7020,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {...@@ -7020,7 +7020,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
7020 });7020 });
70217021
7022 cases.add("field access of opaque type",7022 cases.add("field access of opaque type",
7023 \\const MyType = @Type(.Opaque);7023 \\const MyType = opaque {};
7024 \\7024 \\
7025 \\export fn entry() bool {7025 \\export fn entry() bool {
7026 \\ var x: i32 = 1;7026 \\ var x: i32 = 1;
...@@ -7623,7 +7623,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {...@@ -7623,7 +7623,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
7623 });7623 });
76247624
7625 cases.add("function returning opaque type",7625 cases.add("function returning opaque type",
7626 \\const FooType = @Type(.Opaque);7626 \\const FooType = opaque {};
7627 \\export fn bar() !FooType {7627 \\export fn bar() !FooType {
7628 \\ return error.InvalidValue;7628 \\ return error.InvalidValue;
7629 \\}7629 \\}
...@@ -7641,7 +7641,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {...@@ -7641,7 +7641,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
7641 });7641 });
76427642
7643 cases.add("generic function returning opaque type",7643 cases.add("generic function returning opaque type",
7644 \\const FooType = @Type(.Opaque);7644 \\const FooType = opaque {};
7645 \\fn generic(comptime T: type) !T {7645 \\fn generic(comptime T: type) !T {
7646 \\ return undefined;7646 \\ return undefined;
7647 \\}7647 \\}
...@@ -7665,7 +7665,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {...@@ -7665,7 +7665,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
7665 });7665 });
76667666
7667 cases.add("function parameter is opaque",7667 cases.add("function parameter is opaque",
7668 \\const FooType = @Type(.Opaque);7668 \\const FooType = opaque {};
7669 \\export fn entry1() void {7669 \\export fn entry1() void {
7670 \\ const someFuncPtr: fn (FooType) void = undefined;7670 \\ const someFuncPtr: fn (FooType) void = undefined;
7671 \\}7671 \\}
test/gen_h.zig+1-1
...@@ -74,7 +74,7 @@ pub fn addCases(cases: *tests.GenHContext) void {...@@ -74,7 +74,7 @@ pub fn addCases(cases: *tests.GenHContext) void {
74 });74 });
7575
76 cases.add("declare opaque type",76 cases.add("declare opaque type",
77 \\const Foo = @Type(.Opaque);77 \\const Foo = opaque {};
78 \\78 \\
79 \\export fn entry(foo: ?*Foo) void { }79 \\export fn entry(foo: ?*Foo) void { }
80 , &[_][]const u8{80 , &[_][]const u8{
test/stage1/behavior/misc.zig+3-3
...@@ -438,8 +438,8 @@ export fn writeToVRam() void {...@@ -438,8 +438,8 @@ export fn writeToVRam() void {
438 vram[0] = 'X';438 vram[0] = 'X';
439}439}
440440
441const OpaqueA = @Type(.Opaque);441const OpaqueA = opaque {};
442const OpaqueB = @Type(.Opaque);442const OpaqueB = opaque {};
443test "opaque types" {443test "opaque types" {
444 expect(*OpaqueA != *OpaqueB);444 expect(*OpaqueA != *OpaqueB);
445 expect(mem.eql(u8, @typeName(OpaqueA), "OpaqueA"));445 expect(mem.eql(u8, @typeName(OpaqueA), "OpaqueA"));
...@@ -704,7 +704,7 @@ test "auto created variables have correct alignment" {...@@ -704,7 +704,7 @@ test "auto created variables have correct alignment" {
704 comptime expect(S.foo("\x7a\x7a\x7a\x7a") == 0x7a7a7a7a);704 comptime expect(S.foo("\x7a\x7a\x7a\x7a") == 0x7a7a7a7a);
705}705}
706706
707extern var opaque_extern_var: @Type(.Opaque);707extern var opaque_extern_var: opaque {};
708var var_to_export: u32 = 42;708var var_to_export: u32 = 42;
709test "extern variable with non-pointer opaque type" {709test "extern variable with non-pointer opaque type" {
710 @export(var_to_export, .{ .name = "opaque_extern_var" });710 @export(var_to_export, .{ .name = "opaque_extern_var" });
test/translate_c.zig+7-7
...@@ -121,9 +121,9 @@ pub fn addCases(cases: *tests.TranslateCContext) void {...@@ -121,9 +121,9 @@ pub fn addCases(cases: *tests.TranslateCContext) void {
121 \\struct foo { int x; int y[]; };121 \\struct foo { int x; int y[]; };
122 \\struct bar { int x; int y[0]; };122 \\struct bar { int x; int y[0]; };
123 , &[_][]const u8{123 , &[_][]const u8{
124 \\pub const struct_foo = @Type(.Opaque);124 \\pub const struct_foo = opaque {};
125 ,125 ,
126 \\pub const struct_bar = @Type(.Opaque);126 \\pub const struct_bar = opaque {};
127 });127 });
128128
129 cases.add("nested loops without blocks",129 cases.add("nested loops without blocks",
...@@ -191,7 +191,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void {...@@ -191,7 +191,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void {
191 \\pub const struct_arcan_shmif_page = //191 \\pub const struct_arcan_shmif_page = //
192 ,192 ,
193 \\warning: unsupported type: 'Atomic'193 \\warning: unsupported type: 'Atomic'
194 \\ @Type(.Opaque); //194 \\ opaque {}; //
195 ,195 ,
196 \\ warning: struct demoted to opaque type - unable to translate type of field abufused196 \\ warning: struct demoted to opaque type - unable to translate type of field abufused
197 , // TODO should be `addr: *struct_arcan_shmif_page`197 , // TODO should be `addr: *struct_arcan_shmif_page`
...@@ -370,8 +370,8 @@ pub fn addCases(cases: *tests.TranslateCContext) void {...@@ -370,8 +370,8 @@ pub fn addCases(cases: *tests.TranslateCContext) void {
370 \\ struct opaque_2 *cast = (struct opaque_2 *)opaque;370 \\ struct opaque_2 *cast = (struct opaque_2 *)opaque;
371 \\}371 \\}
372 , &[_][]const u8{372 , &[_][]const u8{
373 \\pub const struct_opaque = @Type(.Opaque);373 \\pub const struct_opaque = opaque {};
374 \\pub const struct_opaque_2 = @Type(.Opaque);374 \\pub const struct_opaque_2 = opaque {};
375 \\pub export fn function(arg_opaque_1: ?*struct_opaque) void {375 \\pub export fn function(arg_opaque_1: ?*struct_opaque) void {
376 \\ var opaque_1 = arg_opaque_1;376 \\ var opaque_1 = arg_opaque_1;
377 \\ var cast: ?*struct_opaque_2 = @ptrCast(?*struct_opaque_2, opaque_1);377 \\ var cast: ?*struct_opaque_2 = @ptrCast(?*struct_opaque_2, opaque_1);
...@@ -612,7 +612,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void {...@@ -612,7 +612,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void {
612 \\ struct Foo *foo;612 \\ struct Foo *foo;
613 \\};613 \\};
614 , &[_][]const u8{614 , &[_][]const u8{
615 \\pub const struct_Foo = @Type(.Opaque);615 \\pub const struct_Foo = opaque {};
616 ,616 ,
617 \\pub const struct_Bar = extern struct {617 \\pub const struct_Bar = extern struct {
618 \\ foo: ?*struct_Foo,618 \\ foo: ?*struct_Foo,
...@@ -689,7 +689,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void {...@@ -689,7 +689,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void {
689 \\struct Foo;689 \\struct Foo;
690 \\struct Foo *some_func(struct Foo *foo, int x);690 \\struct Foo *some_func(struct Foo *foo, int x);
691 , &[_][]const u8{691 , &[_][]const u8{
692 \\pub const struct_Foo = @Type(.Opaque);692 \\pub const struct_Foo = opaque {};
693 ,693 ,
694 \\pub extern fn some_func(foo: ?*struct_Foo, x: c_int) ?*struct_Foo;694 \\pub extern fn some_func(foo: ?*struct_Foo, x: c_int) ?*struct_Foo;
695 ,695 ,