std: fix compile errors caught by stage2 AstGen

* `comptime const` is redundant
 * don't use `extern enum`; specify a tag type.
   `extern enum` is only when you need tags to alias. But aliasing tags
   is a smell. I will be making a proposal shortly to remove `extern enum`
   from the language.
 * there is no such thing as `packed enum`.
 * instead of `catch |_|`, omit the capture entirely.
 * unused function definition with missing parameter name
 * using `try` outside of a function or test
This commit is contained in:
Andrew Kelley
2021-04-22 18:07:46 -07:00
parent 7c453b91b8
commit 507a8096d2
40 changed files with 101 additions and 103 deletions

View File

@@ -32,6 +32,8 @@
compile error for a local shadowing a decl with Sema looking up the decl name.
- this means LocalVal and LocalPtr should use the string table
* sort compile errors before presenting them to eliminate nondeterministic error reporting
const container_name_hash: Scope.NameHash = if (found_pkg) |pkg|
pkg.namespace_hash
else

View File

@@ -1310,7 +1310,7 @@ test "reIndex" {
}
test "fromOwnedArrayList" {
comptime const array_hash_map_type = AutoArrayHashMap(i32, i32);
const array_hash_map_type = AutoArrayHashMap(i32, i32);
var al = std.ArrayListUnmanaged(array_hash_map_type.Entry){};
const hash = getAutoHashFn(i32);

View File

@@ -238,7 +238,7 @@ pub const Edwards25519 = struct {
pub fn mul(p: Edwards25519, s: [32]u8) Error!Edwards25519 {
const pc = if (p.is_base) basePointPc else pc: {
const xpc = precompute(p, 15);
xpc[4].rejectIdentity() catch |_| return error.WeakPublicKey;
xpc[4].rejectIdentity() catch return error.WeakPublicKey;
break :pc xpc;
};
return pcMul16(pc, s, false);
@@ -251,7 +251,7 @@ pub const Edwards25519 = struct {
return pcMul16(basePointPc, s, true);
} else {
const pc = precompute(p, 8);
pc[4].rejectIdentity() catch |_| return error.WeakPublicKey;
pc[4].rejectIdentity() catch return error.WeakPublicKey;
return pcMul(pc, s, true);
}
}
@@ -266,7 +266,7 @@ pub const Edwards25519 = struct {
pcs[i] = comptime precompute(Edwards25519.basePoint, 8);
} else {
pcs[i] = precompute(p, 8);
pcs[i][4].rejectIdentity() catch |_| return error.WeakPublicKey;
pcs[i][4].rejectIdentity() catch return error.WeakPublicKey;
}
}
var es: [count][2 * 32]i8 = undefined;

View File

@@ -16,9 +16,9 @@ pub fn timingSafeEql(comptime T: type, a: T, b: T) bool {
for (a) |x, i| {
acc |= x ^ b[i];
}
comptime const s = @typeInfo(C).Int.bits;
comptime const Cu = std.meta.Int(.unsigned, s);
comptime const Cext = std.meta.Int(.unsigned, s + 1);
const s = @typeInfo(C).Int.bits;
const Cu = std.meta.Int(.unsigned, s);
const Cext = std.meta.Int(.unsigned, s + 1);
return @bitCast(bool, @truncate(u1, (@as(Cext, @bitCast(Cu, acc)) -% 1) >> s));
},
.Vector => |info| {
@@ -27,9 +27,9 @@ pub fn timingSafeEql(comptime T: type, a: T, b: T) bool {
@compileError("Elements to be compared must be integers");
}
const acc = @reduce(.Or, a ^ b);
comptime const s = @typeInfo(C).Int.bits;
comptime const Cu = std.meta.Int(.unsigned, s);
comptime const Cext = std.meta.Int(.unsigned, s + 1);
const s = @typeInfo(C).Int.bits;
const Cu = std.meta.Int(.unsigned, s);
const Cext = std.meta.Int(.unsigned, s + 1);
return @bitCast(bool, @truncate(u1, (@as(Cext, @bitCast(Cu, acc)) -% 1) >> s));
},
else => {

View File

@@ -311,7 +311,7 @@ pub const VER_FLG_BASE = 0x1;
pub const VER_FLG_WEAK = 0x2;
/// File types
pub const ET = extern enum(u16) {
pub const ET = enum(u16) {
/// No file type
NONE = 0,
@@ -991,7 +991,7 @@ pub const Half = switch (@sizeOf(usize)) {
/// See current registered ELF machine architectures at:
/// http://www.uxsglobal.com/developers/gabi/latest/ch4.eheader.html
/// The underscore prefix is because many of these start with numbers.
pub const EM = extern enum(u16) {
pub const EM = enum(u16) {
/// No machine
_NONE = 0,

View File

@@ -187,7 +187,7 @@ pub fn format(
comptime var i = 0;
inline while (i < fmt.len) {
comptime const start_index = i;
const start_index = i;
inline while (i < fmt.len) : (i += 1) {
switch (fmt[i]) {
@@ -226,10 +226,10 @@ pub fn format(
comptime assert(fmt[i] == '{');
i += 1;
comptime const fmt_begin = i;
const fmt_begin = i;
// Find the closing brace
inline while (i < fmt.len and fmt[i] != '}') : (i += 1) {}
comptime const fmt_end = i;
const fmt_end = i;
if (i >= fmt.len) {
@compileError("Missing closing }");
@@ -246,23 +246,23 @@ pub fn format(
parser.pos = 0;
// Parse the positional argument number
comptime const opt_pos_arg = init: {
if (comptime parser.maybe('[')) {
comptime const arg_name = parser.until(']');
const opt_pos_arg = comptime init: {
if (parser.maybe('[')) {
const arg_name = parser.until(']');
if (!comptime parser.maybe(']')) {
if (!parser.maybe(']')) {
@compileError("Expected closing ]");
}
break :init comptime meta.fieldIndex(ArgsType, arg_name) orelse
break :init meta.fieldIndex(ArgsType, arg_name) orelse
@compileError("No argument with name '" ++ arg_name ++ "'");
} else {
break :init comptime parser.number();
break :init parser.number();
}
};
// Parse the format specifier
comptime const specifier_arg = comptime parser.until(':');
const specifier_arg = comptime parser.until(':');
// Skip the colon, if present
if (comptime parser.char()) |ch| {
@@ -302,13 +302,13 @@ pub fn format(
// Parse the width parameter
options.width = init: {
if (comptime parser.maybe('[')) {
comptime const arg_name = parser.until(']');
const arg_name = parser.until(']');
if (!comptime parser.maybe(']')) {
@compileError("Expected closing ]");
}
comptime const index = meta.fieldIndex(ArgsType, arg_name) orelse
const index = meta.fieldIndex(ArgsType, arg_name) orelse
@compileError("No argument with name '" ++ arg_name ++ "'");
const arg_index = comptime arg_state.nextArg(index);
@@ -328,13 +328,13 @@ pub fn format(
// Parse the precision parameter
options.precision = init: {
if (comptime parser.maybe('[')) {
comptime const arg_name = parser.until(']');
const arg_name = parser.until(']');
if (!comptime parser.maybe(']')) {
@compileError("Expected closing ]");
}
comptime const arg_i = meta.fieldIndex(ArgsType, arg_name) orelse
const arg_i = meta.fieldIndex(ArgsType, arg_name) orelse
@compileError("No argument with name '" ++ arg_name ++ "'");
const arg_to_use = comptime arg_state.nextArg(arg_i);

View File

@@ -195,7 +195,7 @@ pub const StreamingParser = struct {
p.number_is_integer = undefined;
}
pub const State = enum {
pub const State = enum(u8) {
// These must be first with these explicit values as we rely on them for indexing the
// bit-stack directly and avoiding a branch.
ObjectSeparator = 0,
@@ -1765,7 +1765,7 @@ test "parse" {
}
test "parse into enum" {
const T = extern enum {
const T = enum(u32) {
Foo = 42,
Bar,
@"with\\escape",

View File

@@ -1314,13 +1314,13 @@ pub const BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM: u8 = 0x40;
pub const BIND_OPCODE_SET_TYPE_IMM: u8 = 0x50;
pub const BIND_OPCODE_SET_ADDEND_SLEB: u8 = 0x60;
pub const BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB: u8 = 0x70;
pub const BIND_OPCODE_ADD_ADDR_ULEB: 0x80;
pub const BIND_OPCODE_ADD_ADDR_ULEB: u8 = 0x80;
pub const BIND_OPCODE_DO_BIND: u8 = 0x90;
pub const BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB: u8 = 0xa0;
pub const BIND_OPCODE_DO_BIND_ADD_ADDR_IMM_SCALED: u8 = 0xb0;
pub const BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB: u8 = xc0;
pub const BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB: u8 = 0xc0;
pub const reloc_type_x86_64 = packed enum(u4) {
pub const reloc_type_x86_64 = enum(u4) {
/// for absolute addresses
X86_64_RELOC_UNSIGNED = 0,
@@ -1352,9 +1352,9 @@ pub const reloc_type_x86_64 = packed enum(u4) {
X86_64_RELOC_TLV,
};
pub const reloc_type_arm64 = packed enum(u4) {
pub const reloc_type_arm64 = enum(u4) {
/// For pointers.
ARM64_RELOC_UNSIGNED = 0,
ARM64_RELOC_UNSIGNED,
/// Must be followed by a ARM64_RELOC_UNSIGNED.
ARM64_RELOC_SUBTRACTOR,

View File

@@ -356,7 +356,7 @@ test "mem.zeroes" {
/// If the field is present in the provided initial values, it will have that value instead.
/// Structs are initialized recursively.
pub fn zeroInit(comptime T: type, init: anytype) T {
comptime const Init = @TypeOf(init);
const Init = @TypeOf(init);
switch (@typeInfo(T)) {
.Struct => |struct_info| {

View File

@@ -335,9 +335,6 @@ test "std.meta.containerLayout" {
const E1 = enum {
A,
};
const E2 = packed enum {
A,
};
const E3 = extern enum {
A,
};
@@ -355,7 +352,6 @@ test "std.meta.containerLayout" {
};
testing.expect(containerLayout(E1) == .Auto);
testing.expect(containerLayout(E2) == .Packed);
testing.expect(containerLayout(E3) == .Extern);
testing.expect(containerLayout(S1) == .Auto);
testing.expect(containerLayout(S2) == .Packed);

View File

@@ -1521,19 +1521,19 @@ pub const rusage = extern struct {
nivcsw: isize,
};
pub const rlimit_resource = extern enum(c_int) {
pub const rlimit_resource = enum(c_int) {
CPU = 0,
FSIZE = 1,
DATA = 2,
STACK = 3,
CORE = 4,
AS = 5,
RSS = 5,
MEMLOCK = 6,
NPROC = 7,
NOFILE = 8,
_,
pub const AS: rlimit_resource = .RSS;
};
pub const rlim_t = u64;
@@ -1669,7 +1669,7 @@ pub const TCSANOW = 0; // make change immediate
pub const TCSADRAIN = 1; // drain output, then change
pub const TCSAFLUSH = 2; // drain output, flush input
pub const TCSASOFT = 0x10; // flag - don't alter h.w. state
pub const TCSA = extern enum(c_uint) {
pub const TCSA = enum(c_uint) {
NOW,
DRAIN,
FLUSH,

View File

@@ -734,7 +734,7 @@ pub const Flock = extern struct {
l_whence: c_short,
};
pub const rlimit_resource = extern enum(c_int) {
pub const rlimit_resource = enum(c_int) {
CPU = 0,
FSIZE = 1,
DATA = 2,
@@ -745,11 +745,11 @@ pub const rlimit_resource = extern enum(c_int) {
NPROC = 7,
NOFILE = 8,
SBSIZE = 9,
AS = 10,
VMEM = 10,
POSIXLOCKS = 11,
_,
pub const AS: rlimit_resource = .VMEM;
};
pub const rlim_t = i64;

View File

@@ -1459,7 +1459,7 @@ pub const IPPROTO_RESERVED_253 = 253;
/// Reserved
pub const IPPROTO_RESERVED_254 = 254;
pub const rlimit_resource = extern enum(c_int) {
pub const rlimit_resource = enum(c_int) {
CPU = 0,
FSIZE = 1,
DATA = 2,
@@ -1471,13 +1471,13 @@ pub const rlimit_resource = extern enum(c_int) {
NOFILE = 8,
SBSIZE = 9,
VMEM = 10,
AS = 10,
NPTS = 11,
SWAP = 12,
KQUEUES = 13,
UMTXP = 14,
_,
pub const AS: rlimit_resource = .VMEM;
};
pub const rlim_t = i64;

View File

@@ -1401,7 +1401,7 @@ pub const IPPROTO_RESERVED_253 = 253;
/// Reserved
pub const IPPROTO_RESERVED_254 = 254;
pub const rlimit_resource = extern enum(c_int) {
pub const rlimit_resource = enum(c_int) {
CPU = 0,
FSIZE = 1,
DATA = 2,
@@ -1413,13 +1413,13 @@ pub const rlimit_resource = extern enum(c_int) {
NOFILE = 8,
SBSIZE = 9,
VMEM = 10,
AS = 10,
NPTS = 11,
SWAP = 12,
KQUEUES = 13,
UMTXP = 14,
_,
pub const AS: rlimit_resource = .VMEM;
};
pub const rlim_t = i64;
@@ -1442,7 +1442,7 @@ pub const SHUT_WR = 1;
pub const SHUT_RDWR = 2;
// TODO fill out if needed
pub const directory_which = extern enum(c_int) {
pub const directory_which = enum(c_int) {
B_USER_SETTINGS_DIRECTORY = 0xbbe,
_,

View File

@@ -1487,7 +1487,7 @@ pub const io_uring_sqe = extern struct {
__pad2: [2]u64,
};
pub const IOSQE_BIT = extern enum(u8) {
pub const IOSQE_BIT = enum(u8) {
FIXED_FILE,
IO_DRAIN,
IO_LINK,
@@ -1518,7 +1518,7 @@ pub const IOSQE_ASYNC = 1 << @enumToInt(IOSQE_BIT.ASYNC);
/// select buffer from buf_group
pub const IOSQE_BUFFER_SELECT = 1 << @enumToInt(IOSQE_BIT.BUFFER_SELECT);
pub const IORING_OP = extern enum(u8) {
pub const IORING_OP = enum(u8) {
NOP,
READV,
WRITEV,
@@ -1587,7 +1587,7 @@ pub const IORING_ENTER_GETEVENTS = 1 << 0;
pub const IORING_ENTER_SQ_WAKEUP = 1 << 1;
// io_uring_register opcodes and arguments
pub const IORING_REGISTER = extern enum(u8) {
pub const IORING_REGISTER = enum(u8) {
REGISTER_BUFFERS,
UNREGISTER_BUFFERS,
REGISTER_FILES,
@@ -1654,7 +1654,7 @@ pub const io_uring_restriction = extern struct {
};
/// io_uring_restriction->opcode values
pub const IORING_RESTRICTION = extern enum(u8) {
pub const IORING_RESTRICTION = enum(u8) {
/// Allow an io_uring_register(2) opcode
REGISTER_OP = 0,
@@ -1909,7 +1909,7 @@ pub const tcp_repair_window = extern struct {
rcv_wup: u32,
};
pub const TcpRepairOption = extern enum {
pub const TcpRepairOption = enum {
TCP_NO_QUEUE,
TCP_RECV_QUEUE,
TCP_SEND_QUEUE,
@@ -1917,7 +1917,7 @@ pub const TcpRepairOption = extern enum {
};
/// why fastopen failed from client perspective
pub const tcp_fastopen_client_fail = extern enum {
pub const tcp_fastopen_client_fail = enum {
/// catch-all
TFO_STATUS_UNSPEC,
/// if not in TFO_CLIENT_NO_COOKIE mode
@@ -2184,7 +2184,7 @@ pub const NOFLSH = 128;
pub const TOSTOP = 256;
pub const IEXTEN = 32768;
pub const TCSA = extern enum(c_uint) {
pub const TCSA = enum(c_uint) {
NOW,
DRAIN,
FLUSH,
@@ -2235,7 +2235,7 @@ pub const ifreq = extern struct {
};
// doc comments copied from musl
pub const rlimit_resource = extern enum(c_int) {
pub const rlimit_resource = enum(c_int) {
/// Per-process CPU limit, in seconds.
CPU,

View File

@@ -15,7 +15,7 @@ const uid_t = linux.uid_t;
const gid_t = linux.gid_t;
const pid_t = linux.pid_t;
pub const SYS = extern enum(usize) {
pub const SYS = enum(usize) {
restart_syscall = 0,
exit = 1,
fork = 2,

View File

@@ -16,7 +16,7 @@ const gid_t = linux.gid_t;
const pid_t = linux.pid_t;
const stack_t = linux.stack_t;
const sigset_t = linux.sigset_t;
pub const SYS = extern enum(usize) {
pub const SYS = enum(usize) {
io_setup = 0,
io_destroy = 1,
io_submit = 2,

View File

@@ -17,7 +17,7 @@ const pid_t = linux.pid_t;
const stack_t = linux.stack_t;
const sigset_t = linux.sigset_t;
pub const SYS = extern enum(usize) {
pub const SYS = enum(usize) {
restart_syscall = 0,
exit = 1,
fork = 2,

View File

@@ -12,7 +12,7 @@ const uid_t = linux.uid_t;
const gid_t = linux.gid_t;
const pid_t = linux.pid_t;
pub const SYS = extern enum(usize) {
pub const SYS = enum(usize) {
pub const Linux = 4000;
syscall = Linux + 0,

View File

@@ -126,7 +126,7 @@ pub const NLM_F_CAPPED = 0x100;
/// extended ACK TVLs were included
pub const NLM_F_ACK_TLVS = 0x200;
pub const NetlinkMessageType = extern enum(u16) {
pub const NetlinkMessageType = enum(u16) {
/// < 0x10: reserved control messages
pub const MIN_TYPE = 0x10;
@@ -287,7 +287,7 @@ pub const rtattr = extern struct {
pub const ALIGNTO = 4;
};
pub const IFLA = extern enum(c_ushort) {
pub const IFLA = enum(c_ushort) {
UNSPEC,
ADDRESS,
BROADCAST,
@@ -351,8 +351,7 @@ pub const IFLA = extern enum(c_ushort) {
EVENT,
NEW_NETNSID,
IF_NETNSID = 46,
TARGET_NETNSID = 46, // new alias
IF_NETNSID,
CARRIER_UP_COUNT,
CARRIER_DOWN_COUNT,
@@ -361,6 +360,8 @@ pub const IFLA = extern enum(c_ushort) {
MAX_MTU,
_,
pub const TARGET_NETNSID: IFLA = .IF_NETNSID;
};
pub const rtnl_link_ifmap = extern struct {

View File

@@ -14,7 +14,7 @@ const gid_t = linux.gid_t;
const pid_t = linux.pid_t;
const stack_t = linux.stack_t;
const sigset_t = linux.sigset_t;
pub const SYS = extern enum(usize) {
pub const SYS = enum(usize) {
restart_syscall = 0,
exit = 1,
fork = 2,

View File

@@ -14,7 +14,7 @@ const gid_t = linux.gid_t;
const pid_t = linux.pid_t;
const stack_t = linux.stack_t;
const sigset_t = linux.sigset_t;
pub const SYS = extern enum(usize) {
pub const SYS = enum(usize) {
restart_syscall = 0,
exit = 1,
fork = 2,
@@ -295,7 +295,7 @@ pub const SYS = extern enum(usize) {
mknodat = 288,
fchownat = 289,
futimesat = 290,
newfstatat = 291,
fstatat = 291,
unlinkat = 292,
renameat = 293,
linkat = 294,

View File

@@ -4,7 +4,7 @@
// The MIT license requires this copyright notice to be included in all copies
// and substantial portions of the software.
pub const PR = extern enum(i32) {
pub const PR = enum(i32) {
SET_PDEATHSIG = 1,
GET_PDEATHSIG = 2,

View File

@@ -9,7 +9,7 @@ const uid_t = std.os.linux.uid_t;
const gid_t = std.os.linux.gid_t;
const pid_t = std.os.linux.pid_t;
pub const SYS = extern enum(usize) {
pub const SYS = enum(usize) {
pub const arch_specific_syscall = 244;
io_setup = 0,

View File

@@ -12,7 +12,7 @@ const socklen_t = linux.socklen_t;
const iovec = linux.iovec;
const iovec_const = linux.iovec_const;
pub const SYS = extern enum(usize) {
pub const SYS = enum(usize) {
restart_syscall = 0,
exit = 1,
fork = 2,

View File

@@ -21,7 +21,7 @@ const iovec_const = linux.iovec_const;
pub const mode_t = usize;
pub const time_t = isize;
pub const SYS = extern enum(usize) {
pub const SYS = enum(usize) {
read = 0,
write = 1,
open = 2,
@@ -284,7 +284,6 @@ pub const SYS = extern enum(usize) {
mknodat = 259,
fchownat = 260,
futimesat = 261,
newfstatat = 262,
fstatat = 262,
unlinkat = 263,
renameat = 264,

View File

@@ -60,7 +60,7 @@ pub const addrinfo = extern struct {
next: ?*addrinfo,
};
pub const EAI = extern enum(c_int) {
pub const EAI = enum(c_int) {
/// address family for hostname not supported
ADDRFAMILY = 1,
@@ -1179,7 +1179,7 @@ pub const IPPROTO_PFSYNC = 240;
/// raw IP packet
pub const IPPROTO_RAW = 255;
pub const rlimit_resource = extern enum(c_int) {
pub const rlimit_resource = enum(c_int) {
CPU = 0,
FSIZE = 1,
DATA = 2,
@@ -1190,11 +1190,11 @@ pub const rlimit_resource = extern enum(c_int) {
NPROC = 7,
NOFILE = 8,
SBSIZE = 9,
AS = 10,
VMEM = 10,
NTHR = 11,
_,
pub const AS: rlimit_resource = .VMEM;
};
pub const rlim_t = u64;

View File

@@ -76,7 +76,7 @@ pub const addrinfo = extern struct {
next: ?*addrinfo,
};
pub const EAI = extern enum(c_int) {
pub const EAI = enum(c_int) {
/// address family for hostname not supported
ADDRFAMILY = -9,
@@ -805,7 +805,7 @@ comptime {
if (@sizeOf(usize) == 4)
std.debug.assert(@sizeOf(siginfo_t) == 128)
else
// Take into account the padding between errno and data fields.
// Take into account the padding between errno and data fields.
std.debug.assert(@sizeOf(siginfo_t) == 136);
}
@@ -1177,7 +1177,7 @@ pub const IPPROTO_PFSYNC = 240;
/// raw IP packet
pub const IPPROTO_RAW = 255;
pub const rlimit_resource = extern enum(c_int) {
pub const rlimit_resource = enum(c_int) {
CPU,
FSIZE,
DATA,

View File

@@ -1143,8 +1143,6 @@ pub fn lstat(pathname: [*:0]const u8, statbuf: *kernel_stat) usize {
pub fn fstatat(dirfd: i32, path: [*:0]const u8, stat_buf: *kernel_stat, flags: u32) usize {
if (@hasField(SYS, "fstatat64")) {
return syscall4(.fstatat64, @bitCast(usize, @as(isize, dirfd)), @ptrToInt(path), @ptrToInt(stat_buf), flags);
} else if (@hasField(SYS, "newfstatat")) {
return syscall4(.newfstatat, @bitCast(usize, @as(isize, dirfd)), @ptrToInt(path), @ptrToInt(stat_buf), flags);
} else {
return syscall4(.fstatat, @bitCast(usize, @as(isize, dirfd)), @ptrToInt(path), @ptrToInt(stat_buf), flags);
}

View File

@@ -5,7 +5,7 @@
// and substantial portions of the software.
const high_bit = 1 << @typeInfo(usize).Int.bits - 1;
pub const Status = extern enum(usize) {
pub const Status = enum(usize) {
/// The operation completed successfully.
Success = 0,

View File

@@ -281,7 +281,7 @@ pub const IO_STATUS_BLOCK = extern struct {
Information: ULONG_PTR,
};
pub const FILE_INFORMATION_CLASS = extern enum {
pub const FILE_INFORMATION_CLASS = enum(c_int) {
FileDirectoryInformation = 1,
FileFullDirectoryInformation,
FileBothDirectoryInformation,
@@ -901,7 +901,7 @@ pub const COINIT_APARTMENTTHREADED = COINIT.COINIT_APARTMENTTHREADED;
pub const COINIT_MULTITHREADED = COINIT.COINIT_MULTITHREADED;
pub const COINIT_DISABLE_OLE1DDE = COINIT.COINIT_DISABLE_OLE1DDE;
pub const COINIT_SPEED_OVER_MEMORY = COINIT.COINIT_SPEED_OVER_MEMORY;
pub const COINIT = extern enum {
pub const COINIT = enum(c_int) {
COINIT_APARTMENTTHREADED = 2,
COINIT_MULTITHREADED = 0,
COINIT_DISABLE_OLE1DDE = 4,
@@ -1623,7 +1623,7 @@ pub const SD_RECEIVE = 0;
pub const SD_SEND = 1;
pub const SD_BOTH = 2;
pub const OBJECT_INFORMATION_CLASS = extern enum {
pub const OBJECT_INFORMATION_CLASS = enum(c_int) {
ObjectBasicInformation = 0,
ObjectNameInformation = 1,
ObjectTypeInformation = 2,

View File

@@ -4,7 +4,7 @@
// The MIT license requires this copyright notice to be included in all copies
// and substantial portions of the software.
// NTSTATUS codes from https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-erref/596a1078-e883-4972-9bbc-49e60bebca55?
pub const NTSTATUS = extern enum(u32) {
pub const NTSTATUS = enum(u32) {
/// The operation completed successfully.
SUCCESS = 0x00000000,

View File

@@ -4,7 +4,7 @@
// The MIT license requires this copyright notice to be included in all copies
// and substantial portions of the software.
// Codes are from https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-erref/18d8fbe8-a967-4f1c-ae50-99ca8e491d2d
pub const Win32Error = extern enum(u16) {
pub const Win32Error = enum(u16) {
/// The operation completed successfully.
SUCCESS = 0,

View File

@@ -256,7 +256,7 @@ pub const POLLHUP = 0x0002;
pub const POLLNVAL = 0x0004;
// https://docs.microsoft.com/en-au/windows/win32/winsock/windows-sockets-error-codes-2
pub const WinsockError = extern enum(u16) {
pub const WinsockError = enum(u16) {
/// Specified event object handle is invalid.
/// An application attempts to use an event object, but the specified handle is not valid.
WSA_INVALID_HANDLE = 6,

View File

@@ -115,7 +115,7 @@ pub const StreamType = enum(u16) {
/// Duplicate copy of SymbolRecordKind, but using the official CV names. Useful
/// for reference purposes and when dealing with unknown record types.
pub const SymbolKind = packed enum(u16) {
pub const SymbolKind = enum(u16) {
S_COMPILE = 1,
S_REGISTER_16t = 2,
S_CONSTANT_16t = 3,
@@ -426,7 +426,7 @@ pub const FileChecksumEntryHeader = packed struct {
ChecksumKind: u8,
};
pub const DebugSubsectionKind = packed enum(u32) {
pub const DebugSubsectionKind = enum(u32) {
None = 0,
Symbols = 0xf1,
Lines = 0xf2,

View File

@@ -48,7 +48,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:
}
}
pub const ClientRequest = extern enum {
pub const ClientRequest = enum(u32) {
RunningOnValgrind = 4097,
DiscardTranslations = 4098,
ClientCall0 = 4353,
@@ -156,9 +156,9 @@ pub fn freeLikeBlock(addr: [*]u8, rzB: usize) void {
}
/// Create a memory pool.
pub const MempoolFlags = extern enum {
AutoFree = 1,
MetaPool = 2,
pub const MempoolFlags = struct {
pub const AutoFree = 1;
pub const MetaPool = 2;
};
pub fn createMempool(pool: [*]u8, rzB: usize, is_zeroed: bool, flags: usize) void {
doClientRequestStmt(.CreateMempool, @ptrToInt(pool), rzB, @boolToInt(is_zeroed), flags, 0);

View File

@@ -6,7 +6,7 @@
const std = @import("../std.zig");
const valgrind = std.valgrind;
pub const CallgrindClientRequest = extern enum {
pub const CallgrindClientRequest = enum(usize) {
DumpStats = valgrind.ToolBase("CT"),
ZeroStats,
ToggleCollect,

View File

@@ -7,7 +7,7 @@ const std = @import("../std.zig");
const testing = std.testing;
const valgrind = std.valgrind;
pub const MemCheckClientRequest = extern enum {
pub const MemCheckClientRequest = enum(usize) {
MakeMemNoAccess = valgrind.ToolBase("MC".*),
MakeMemUndefined,
MakeMemDefined,
@@ -76,7 +76,7 @@ pub fn createBlock(qzz: []u8, desc: [*]u8) usize {
/// Discard a block-description-handle. Returns 1 for an
/// invalid handle, 0 for a valid handle.
pub fn discard(blkindex) bool {
pub fn discard(blkindex: usize) bool {
return doMemCheckClientRequestExpr(0, // default return
.Discard, 0, blkindex, 0, 0, 0) != 0;
}

View File

@@ -2658,7 +2658,9 @@ fn fnDecl(
var i: usize = 0;
var it = fn_proto.iterate(tree.*);
while (it.next()) |param| : (i += 1) {
const name_token = param.name_token.?;
const name_token = param.name_token orelse {
return astgen.failNode(param.type_expr, "missing parameter name", .{});
};
const param_name = try astgen.identifierTokenString(name_token);
const sub_scope = try astgen.arena.create(Scope.LocalVal);
sub_scope.* = .{

View File

@@ -3220,7 +3220,7 @@ pub fn generateBuiltinZigSource(comp: *Compilation, allocator: *Allocator) Alloc
\\const std = @import("std");
\\/// Zig version. When writing code that supports multiple versions of Zig, prefer
\\/// feature detection (i.e. with `@hasDecl` or `@hasField`) over version checks.
\\pub const zig_version = try std.SemanticVersion.parse("{s}");
\\pub const zig_version = std.SemanticVersion.parse("{s}") catch unreachable;
\\/// Temporary until self-hosted is feature complete.
\\pub const zig_is_stage2 = {};
\\/// Temporary until self-hosted supports the `cpu.arch` value.