From 641ecc260f43ffb2398acb80cbd141535dbbb03d Mon Sep 17 00:00:00 2001 From: Jacob G-W Date: Wed, 9 Jun 2021 21:35:42 -0400 Subject: [PATCH] std, src, doc, test: remove unused variables --- doc/docgen.zig | 12 ------ lib/std/Thread.zig | 4 +- lib/std/base64.zig | 5 --- lib/std/c/tokenizer.zig | 13 +++--- lib/std/compress/gzip.zig | 2 + lib/std/compress/zlib.zig | 1 + lib/std/crypto/25519/scalar.zig | 6 --- lib/std/crypto/aes/soft.zig | 8 ---- lib/std/crypto/aes_gcm.zig | 1 - lib/std/crypto/aes_ocb.zig | 1 - lib/std/crypto/bcrypt.zig | 2 - lib/std/crypto/chacha20.zig | 1 - lib/std/dynamic_library.zig | 2 +- lib/std/event/channel.zig | 1 - lib/std/event/group.zig | 2 +- lib/std/event/loop.zig | 2 +- lib/std/event/rwlock.zig | 2 +- lib/std/fmt.zig | 5 +-- lib/std/fmt/parse_float.zig | 1 - lib/std/fs.zig | 4 +- lib/std/hash/cityhash.zig | 1 - lib/std/hash/wyhash.zig | 2 - lib/std/hash_map.zig | 2 +- lib/std/leb128.zig | 5 +-- lib/std/linked_list.zig | 4 +- lib/std/math/big/int.zig | 2 - lib/std/math/big/rational.zig | 1 - lib/std/math/complex/ldexp.zig | 2 +- lib/std/math/expm1.zig | 4 -- lib/std/math/modf.zig | 7 +-- lib/std/meta.zig | 7 --- lib/std/os.zig | 6 +-- lib/std/os/linux/io_uring.zig | 6 +-- lib/std/os/linux/vdso.zig | 1 - lib/std/os/windows.zig | 1 - lib/std/pdb.zig | 8 ++-- lib/std/rand/ziggurat.zig | 2 +- lib/std/special/compiler_rt/addXf3.zig | 5 --- lib/std/special/compiler_rt/divtf3.zig | 1 - lib/std/special/compiler_rt/extendXfYf2.zig | 1 - lib/std/special/compiler_rt/fixuint.zig | 1 - lib/std/special/compiler_rt/truncXfYf2.zig | 1 - lib/std/testing.zig | 1 - lib/std/unicode/throughput_test.zig | 2 - lib/std/x/os/io.zig | 1 - lib/std/zig/ast.zig | 1 - lib/std/zig/parse.zig | 46 ++++++++++---------- lib/std/zig/parser_test.zig | 1 - lib/std/zig/render.zig | 6 --- lib/std/zig/system.zig | 9 +--- lib/std/zig/tokenizer.zig | 1 - src/AstGen.zig | 47 ++++----------------- src/Compilation.zig | 3 +- src/DepTokenizer.zig | 5 +-- src/Module.zig | 24 +++-------- src/Sema.zig | 16 +++---- src/ThreadPool.zig | 4 +- src/Zir.zig | 7 ++- src/codegen.zig | 1 - src/codegen/c.zig | 1 - src/codegen/spirv.zig | 4 +- src/codegen/wasm.zig | 3 -- src/glibc.zig | 1 - src/link/MachO.zig | 3 -- src/link/MachO/DebugSymbols.zig | 7 --- src/link/MachO/Object.zig | 1 - src/link/MachO/Zld.zig | 6 +-- src/link/MachO/reloc/x86_64.zig | 1 - src/link/Wasm.zig | 1 - src/main.zig | 1 - src/mingw.zig | 2 - src/musl.zig | 1 - src/register_manager.zig | 12 ------ src/translate_c.zig | 4 -- src/type.zig | 3 +- test/behavior/async_fn.zig | 16 +++++++ test/behavior/atomics.zig | 2 - test/behavior/await_struct.zig | 1 + test/behavior/bit_shifting.zig | 2 +- test/behavior/bugs/1467.zig | 1 + test/behavior/bugs/1500.zig | 4 ++ test/behavior/bugs/2346.zig | 2 + test/behavior/bugs/3586.zig | 1 + test/behavior/bugs/4954.zig | 2 +- test/behavior/bugs/7003.zig | 1 + test/behavior/bugs/828.zig | 4 ++ test/behavior/cast.zig | 3 ++ test/behavior/enum.zig | 2 + test/behavior/error.zig | 6 ++- test/behavior/eval.zig | 2 + test/behavior/import.zig | 2 +- test/behavior/inttoptr.zig | 2 +- test/behavior/ir_block_deps.zig | 1 + test/behavior/math.zig | 11 +++++ test/behavior/misc.zig | 1 + test/behavior/null.zig | 1 + test/behavior/optional.zig | 1 + test/behavior/pointers.zig | 6 ++- test/behavior/sizeof_and_typeof.zig | 4 +- test/behavior/slice.zig | 1 + test/behavior/slice_sentinel_comptime.zig | 28 ++++++++++++ test/behavior/struct.zig | 8 ++-- test/behavior/switch.zig | 2 + test/behavior/tuple.zig | 1 + test/behavior/type.zig | 1 + test/behavior/type_info.zig | 1 + test/behavior/union.zig | 1 + test/behavior/var_args.zig | 4 +- test/behavior/vector.zig | 2 + test/behavior/void.zig | 2 +- test/stage2/test.zig | 1 + test/tests.zig | 1 - 112 files changed, 208 insertions(+), 294 deletions(-) diff --git a/doc/docgen.zig b/doc/docgen.zig index d02987ab7e..f58c94f15c 100644 --- a/doc/docgen.zig +++ b/doc/docgen.zig @@ -1017,7 +1017,6 @@ fn tokenizeAndPrint(docgen_tokenizer: *Tokenizer, out: anytype, source_token: To } fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: anytype, zig_exe: []const u8, do_code_tests: bool) !void { - var code_progress_index: usize = 0; var progress = Progress{}; const root_node = try progress.start("Generating docgen examples", toc.nodes.len); defer root_node.end(); @@ -1090,7 +1089,6 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: any switch (code.id) { Code.Id.Exe => |expected_outcome| code_block: { - const name_plus_bin_ext = try std.fmt.allocPrint(allocator, "{s}{s}", .{ code.name, exe_ext }); var build_args = std.ArrayList([]const u8).init(allocator); defer build_args.deinit(); try build_args.appendSlice(&[_][]const u8{ @@ -1361,19 +1359,9 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: any }, Code.Id.Obj => |maybe_error_match| { const name_plus_obj_ext = try std.fmt.allocPrint(allocator, "{s}{s}", .{ code.name, obj_ext }); - const tmp_obj_file_name = try fs.path.join( - allocator, - &[_][]const u8{ tmp_dir_name, name_plus_obj_ext }, - ); var build_args = std.ArrayList([]const u8).init(allocator); defer build_args.deinit(); - const name_plus_h_ext = try std.fmt.allocPrint(allocator, "{s}.h", .{code.name}); - const output_h_file_name = try fs.path.join( - allocator, - &[_][]const u8{ tmp_dir_name, name_plus_h_ext }, - ); - try build_args.appendSlice(&[_][]const u8{ zig_exe, "build-obj", diff --git a/lib/std/Thread.zig b/lib/std/Thread.zig index 76a865cf10..06fe2a84dc 100644 --- a/lib/std/Thread.zig +++ b/lib/std/Thread.zig @@ -518,8 +518,8 @@ pub fn cpuCount() CpuCountError!usize { }, .haiku => { var count: u32 = undefined; - var system_info: os.system_info = undefined; - const rc = os.system.get_system_info(&system_info); + // var system_info: os.system_info = undefined; + // const rc = os.system.get_system_info(&system_info); count = system_info.cpu_count; return @intCast(usize, count); }, diff --git a/lib/std/base64.zig b/lib/std/base64.zig index 1f37f07a28..4b01455112 100644 --- a/lib/std/base64.zig +++ b/lib/std/base64.zig @@ -112,9 +112,6 @@ pub const Base64Encoder = struct { const out_len = encoder.calcSize(source.len); assert(dest.len >= out_len); - const nibbles = source.len / 3; - const leftover = source.len - 3 * nibbles; - var acc: u12 = 0; var acc_len: u4 = 0; var out_idx: usize = 0; @@ -223,7 +220,6 @@ pub const Base64Decoder = struct { if (decoder.pad_char) |pad_char| { const padding_len = acc_len / 2; var padding_chars: usize = 0; - var i: usize = 0; for (leftover) |c| { if (c != pad_char) { return if (c == Base64Decoder.invalid_char) error.InvalidCharacter else error.InvalidPadding; @@ -302,7 +298,6 @@ pub const Base64DecoderWithIgnore = struct { var leftover = source[leftover_idx.?..]; if (decoder.pad_char) |pad_char| { var padding_chars: usize = 0; - var i: usize = 0; for (leftover) |c| { if (decoder_with_ignore.char_is_ignored[c]) continue; if (c != pad_char) { diff --git a/lib/std/c/tokenizer.zig b/lib/std/c/tokenizer.zig index 0d4c646c39..f8709e12be 100644 --- a/lib/std/c/tokenizer.zig +++ b/lib/std/c/tokenizer.zig @@ -351,7 +351,6 @@ pub const Tokenizer = struct { pp_directive: bool = false, pub fn next(self: *Tokenizer) Token { - const start_index = self.index; var result = Token{ .id = .Eof, .start = self.index, @@ -1380,12 +1379,12 @@ test "operators" { test "keywords" { try expectTokens( - \\auto break case char const continue default do - \\double else enum extern float for goto if int - \\long register return short signed sizeof static - \\struct switch typedef union unsigned void volatile - \\while _Bool _Complex _Imaginary inline restrict _Alignas - \\_Alignof _Atomic _Generic _Noreturn _Static_assert _Thread_local + \\auto break case char const continue default do + \\double else enum extern float for goto if int + \\long register return short signed sizeof static + \\struct switch typedef union unsigned void volatile + \\while _Bool _Complex _Imaginary inline restrict _Alignas + \\_Alignof _Atomic _Generic _Noreturn _Static_assert _Thread_local \\ , &[_]Token.Id{ .Keyword_auto, diff --git a/lib/std/compress/gzip.zig b/lib/std/compress/gzip.zig index 387b64f59a..6f17601949 100644 --- a/lib/std/compress/gzip.zig +++ b/lib/std/compress/gzip.zig @@ -62,6 +62,8 @@ pub fn GzipStream(comptime ReaderType: type) type { const XFL = header[8]; // Operating system where the compression took place const OS = header[9]; + _ = XFL; + _ = OS; if (FLG & FEXTRA != 0) { // Skip the extra data, we could read and expose it to the user diff --git a/lib/std/compress/zlib.zig b/lib/std/compress/zlib.zig index 0ee154bf22..909bae4090 100644 --- a/lib/std/compress/zlib.zig +++ b/lib/std/compress/zlib.zig @@ -35,6 +35,7 @@ pub fn ZlibStream(comptime ReaderType: type) type { const CM = @truncate(u4, header[0]); const CINFO = @truncate(u4, header[0] >> 4); const FCHECK = @truncate(u5, header[1]); + _ = FCHECK; const FDICT = @truncate(u1, header[1] >> 5); if ((@as(u16, header[0]) << 8 | header[1]) % 31 != 0) diff --git a/lib/std/crypto/25519/scalar.zig b/lib/std/crypto/25519/scalar.zig index 46ab2017ca..bea054234e 100644 --- a/lib/std/crypto/25519/scalar.zig +++ b/lib/std/crypto/25519/scalar.zig @@ -330,13 +330,10 @@ pub const Scalar = struct { const carry9 = z02 >> 56; const c01 = carry9; const carry10 = (z12 + c01) >> 56; - const t21 = @truncate(u64, z12 + c01) & 0xffffffffffffff; const c11 = carry10; const carry11 = (z22 + c11) >> 56; - const t22 = @truncate(u64, z22 + c11) & 0xffffffffffffff; const c21 = carry11; const carry12 = (z32 + c21) >> 56; - const t23 = @truncate(u64, z32 + c21) & 0xffffffffffffff; const c31 = carry12; const carry13 = (z42 + c31) >> 56; const t24 = @truncate(u64, z42 + c31) & 0xffffffffffffff; @@ -605,13 +602,10 @@ const ScalarDouble = struct { const carry0 = z01 >> 56; const c00 = carry0; const carry1 = (z11 + c00) >> 56; - const t100 = @as(u64, @truncate(u64, z11 + c00)) & 0xffffffffffffff; const c10 = carry1; const carry2 = (z21 + c10) >> 56; - const t101 = @as(u64, @truncate(u64, z21 + c10)) & 0xffffffffffffff; const c20 = carry2; const carry3 = (z31 + c20) >> 56; - const t102 = @as(u64, @truncate(u64, z31 + c20)) & 0xffffffffffffff; const c30 = carry3; const carry4 = (z41 + c30) >> 56; const t103 = @as(u64, @truncate(u64, z41 + c30)) & 0xffffffffffffff; diff --git a/lib/std/crypto/aes/soft.zig b/lib/std/crypto/aes/soft.zig index 5eda9557ee..0d8a566793 100644 --- a/lib/std/crypto/aes/soft.zig +++ b/lib/std/crypto/aes/soft.zig @@ -49,8 +49,6 @@ pub const Block = struct { /// Encrypt a block with a round key. pub inline fn encrypt(block: Block, round_key: Block) Block { - const src = &block.repr; - const s0 = block.repr[0]; const s1 = block.repr[1]; const s2 = block.repr[2]; @@ -66,8 +64,6 @@ pub const Block = struct { /// Encrypt a block with the last round key. pub inline fn encryptLast(block: Block, round_key: Block) Block { - const src = &block.repr; - const t0 = block.repr[0]; const t1 = block.repr[1]; const t2 = block.repr[2]; @@ -88,8 +84,6 @@ pub const Block = struct { /// Decrypt a block with a round key. pub inline fn decrypt(block: Block, round_key: Block) Block { - const src = &block.repr; - const s0 = block.repr[0]; const s1 = block.repr[1]; const s2 = block.repr[2]; @@ -105,8 +99,6 @@ pub const Block = struct { /// Decrypt a block with the last round key. pub inline fn decryptLast(block: Block, round_key: Block) Block { - const src = &block.repr; - const t0 = block.repr[0]; const t1 = block.repr[1]; const t2 = block.repr[2]; diff --git a/lib/std/crypto/aes_gcm.zig b/lib/std/crypto/aes_gcm.zig index cc2a423f70..492a1a5223 100644 --- a/lib/std/crypto/aes_gcm.zig +++ b/lib/std/crypto/aes_gcm.zig @@ -114,7 +114,6 @@ test "Aes256Gcm - Empty message and no associated data" { const ad = ""; const m = ""; var c: [m.len]u8 = undefined; - var m2: [m.len]u8 = undefined; var tag: [Aes256Gcm.tag_length]u8 = undefined; Aes256Gcm.encrypt(&c, &tag, m, ad, nonce, key); diff --git a/lib/std/crypto/aes_ocb.zig b/lib/std/crypto/aes_ocb.zig index 48548f942f..6aaa7fc8cb 100644 --- a/lib/std/crypto/aes_ocb.zig +++ b/lib/std/crypto/aes_ocb.zig @@ -271,7 +271,6 @@ test "AesOcb test vector 1" { var c: [0]u8 = undefined; Aes128Ocb.encrypt(&c, &tag, "", "", nonce, k); - var expected_c: [c.len]u8 = undefined; var expected_tag: [tag.len]u8 = undefined; _ = try hexToBytes(&expected_tag, "785407BFFFC8AD9EDCC5520AC9111EE6"); diff --git a/lib/std/crypto/bcrypt.zig b/lib/std/crypto/bcrypt.zig index c1ad239e90..07c2142a97 100644 --- a/lib/std/crypto/bcrypt.zig +++ b/lib/std/crypto/bcrypt.zig @@ -48,7 +48,6 @@ const State = struct { fn expand0(state: *State, key: []const u8) void { var i: usize = 0; var j: usize = 0; - var t: u32 = undefined; while (i < state.subkeys.len) : (i += 1) { state.subkeys[i] ^= toWord(key, &j); } @@ -75,7 +74,6 @@ const State = struct { fn expand(state: *State, data: []const u8, key: []const u8) void { var i: usize = 0; var j: usize = 0; - var t: u32 = undefined; while (i < state.subkeys.len) : (i += 1) { state.subkeys[i] ^= toWord(key, &j); } diff --git a/lib/std/crypto/chacha20.zig b/lib/std/crypto/chacha20.zig index b89a35cbd4..592116ddd4 100644 --- a/lib/std/crypto/chacha20.zig +++ b/lib/std/crypto/chacha20.zig @@ -444,7 +444,6 @@ fn ChaChaWith64BitNonce(comptime rounds_nb: usize) type { if (comptime @sizeOf(usize) > 4) { // A big block is giant: 256 GiB, but we can avoid this limitation var remaining_blocks: u32 = @intCast(u32, (in.len / big_block)); - var i: u32 = 0; while (remaining_blocks > 0) : (remaining_blocks -= 1) { ChaChaImpl(rounds_nb).chacha20Xor(out[cursor .. cursor + big_block], in[cursor .. cursor + big_block], k, c); c[1] += 1; // upper 32-bit of counter, generic chacha20Xor() doesn't know about this. diff --git a/lib/std/dynamic_library.zig b/lib/std/dynamic_library.zig index 098d245a4a..5739bf79b7 100644 --- a/lib/std/dynamic_library.zig +++ b/lib/std/dynamic_library.zig @@ -407,7 +407,7 @@ test "dynamic_library" { else => return error.SkipZigTest, }; - const dynlib = DynLib.open(libname) catch |err| { + _ = DynLib.open(libname) catch |err| { try testing.expect(err == error.FileNotFound); return; }; diff --git a/lib/std/event/channel.zig b/lib/std/event/channel.zig index f9c2d4b533..3880d6e286 100644 --- a/lib/std/event/channel.zig +++ b/lib/std/event/channel.zig @@ -308,7 +308,6 @@ test "std.event.Channel wraparound" { // add items to channel and pull them out until // the buffer wraps around, make sure it doesn't crash. - var result: i32 = undefined; channel.put(5); try testing.expectEqual(@as(i32, 5), channel.get()); channel.put(6); diff --git a/lib/std/event/group.zig b/lib/std/event/group.zig index 7ac27a13f2..1d12689aff 100644 --- a/lib/std/event/group.zig +++ b/lib/std/event/group.zig @@ -130,7 +130,7 @@ test "std.event.Group" { // TODO this file has bit-rotted. repair it if (true) return error.SkipZigTest; - const handle = async testGroup(std.heap.page_allocator); + _ = async testGroup(std.heap.page_allocator); } fn testGroup(allocator: *Allocator) callconv(.Async) void { var count: usize = 0; diff --git a/lib/std/event/loop.zig b/lib/std/event/loop.zig index ca55a366f8..f0661bac93 100644 --- a/lib/std/event/loop.zig +++ b/lib/std/event/loop.zig @@ -680,7 +680,7 @@ pub const Loop = struct { fn run(func_args: Args, loop: *Loop, allocator: *mem.Allocator) void { loop.beginOneEvent(); loop.yield(); - const result = @call(.{}, func, func_args); + @call(.{}, func, func_args); // compile error when called with non-void ret type suspend { loop.finishOneEvent(); allocator.destroy(@frame()); diff --git a/lib/std/event/rwlock.zig b/lib/std/event/rwlock.zig index 714e50b2a9..3bd0c86035 100644 --- a/lib/std/event/rwlock.zig +++ b/lib/std/event/rwlock.zig @@ -225,7 +225,7 @@ test "std.event.RwLock" { var lock = RwLock.init(); defer lock.deinit(); - const handle = testLock(std.heap.page_allocator, &lock); + _ = testLock(std.heap.page_allocator, &lock); const expected_result = [1]i32{shared_it_count * @intCast(i32, shared_test_data.len)} ** shared_test_data.len; try testing.expectEqualSlices(i32, expected_result, shared_test_data); diff --git a/lib/std/fmt.zig b/lib/std/fmt.zig index 81b505c952..41570b12cb 100644 --- a/lib/std/fmt.zig +++ b/lib/std/fmt.zig @@ -1140,7 +1140,7 @@ pub fn formatFloatHexadecimal( // +1 for the decimal part. var buf: [1 + mantissa_digits]u8 = undefined; - const N = formatIntBuf(&buf, mantissa, 16, .lower, .{ .fill = '0', .width = 1 + mantissa_digits }); + _ = formatIntBuf(&buf, mantissa, 16, .lower, .{ .fill = '0', .width = 1 + mantissa_digits }); try writer.writeAll("0x"); try writer.writeByte(buf[0]); @@ -2162,7 +2162,6 @@ test "custom" { } }; - var buf1: [32]u8 = undefined; var value = Vec2{ .x = 10.2, .y = 2.22, @@ -2220,7 +2219,7 @@ test "union" { try std.testing.expect(mem.eql(u8, uu_result[0..3], "UU@")); const eu_result = try bufPrint(buf[0..], "{}", .{eu_inst}); - try std.testing.expect(mem.eql(u8, uu_result[0..3], "EU@")); + try std.testing.expect(mem.eql(u8, eu_result[0..3], "EU@")); } test "enum" { diff --git a/lib/std/fmt/parse_float.zig b/lib/std/fmt/parse_float.zig index 1f6d7222ac..6178398b17 100644 --- a/lib/std/fmt/parse_float.zig +++ b/lib/std/fmt/parse_float.zig @@ -200,7 +200,6 @@ const ParseResult = enum { fn parseRepr(s: []const u8, n: *FloatRepr) !ParseResult { var digit_index: usize = 0; - var negative = false; var negative_exp = false; var exponent: i32 = 0; diff --git a/lib/std/fs.zig b/lib/std/fs.zig index c69a6ca5cd..f7f6e0155f 100644 --- a/lib/std/fs.zig +++ b/lib/std/fs.zig @@ -477,7 +477,7 @@ pub const Dir = struct { } var stat_info: os.libc_stat = undefined; - const rc2 = os.system._kern_read_stat( + _ = os.system._kern_read_stat( self.dir.fd, &haiku_entry.d_name, false, @@ -2438,7 +2438,7 @@ pub fn selfExePath(out_buffer: []u8) SelfExePathError![]u8 { }) catch continue; var real_path_buf: [MAX_PATH_BYTES]u8 = undefined; - if (os.realpathZ(&resolved_path_buf, &real_path_buf)) |real_path| { + if (os.realpathZ(resolved_path, &real_path_buf)) |real_path| { // found a file, and hope it is the right file if (real_path.len > out_buffer.len) return error.NameTooLong; diff --git a/lib/std/hash/cityhash.zig b/lib/std/hash/cityhash.zig index 920a006b8f..9658cee13a 100644 --- a/lib/std/hash/cityhash.zig +++ b/lib/std/hash/cityhash.zig @@ -353,7 +353,6 @@ fn SMHasherTest(comptime hash_fn: anytype) u32 { var key: [256]u8 = undefined; var hashes_bytes: [256 * @sizeOf(HashResult)]u8 = undefined; - var final: HashResult = 0; std.mem.set(u8, &key, 0); std.mem.set(u8, &hashes_bytes, 0); diff --git a/lib/std/hash/wyhash.zig b/lib/std/hash/wyhash.zig index 4b9afe6355..83cd5e097c 100644 --- a/lib/std/hash/wyhash.zig +++ b/lib/std/hash/wyhash.zig @@ -166,8 +166,6 @@ pub const Wyhash = struct { } pub fn final(self: *Wyhash) u64 { - const seed = self.state.seed; - const rem_len = @intCast(u5, self.buf_len); const rem_key = self.buf[0..self.buf_len]; return self.state.final(rem_key); diff --git a/lib/std/hash_map.zig b/lib/std/hash_map.zig index fdd7db51c9..6975408fc3 100644 --- a/lib/std/hash_map.zig +++ b/lib/std/hash_map.zig @@ -1809,7 +1809,7 @@ test "std.hash_map getOrPut" { i = 0; while (i < 20) : (i += 1) { - var n = try map.getOrPutValue(i, 1); + _ = try map.getOrPutValue(i, 1); } i = 0; diff --git a/lib/std/leb128.zig b/lib/std/leb128.zig index b1f56e21ab..6535c867f8 100644 --- a/lib/std/leb128.zig +++ b/lib/std/leb128.zig @@ -198,7 +198,7 @@ fn test_read_ileb128_seq(comptime T: type, comptime N: usize, encoded: []const u var reader = std.io.fixedBufferStream(encoded); var i: usize = 0; while (i < N) : (i += 1) { - const v1 = try readILEB128(T, reader.reader()); + _ = try readILEB128(T, reader.reader()); } } @@ -206,7 +206,7 @@ fn test_read_uleb128_seq(comptime T: type, comptime N: usize, encoded: []const u var reader = std.io.fixedBufferStream(encoded); var i: usize = 0; while (i < N) : (i += 1) { - const v1 = try readULEB128(T, reader.reader()); + _ = try readULEB128(T, reader.reader()); } } @@ -309,7 +309,6 @@ fn test_write_leb128(value: anytype) !void { const B = std.meta.Int(signedness, larger_type_bits); const bytes_needed = bn: { - const S = std.meta.Int(signedness, @sizeOf(T) * 8); if (@typeInfo(T).Int.bits <= 7) break :bn @as(u16, 1); const unused_bits = if (value < 0) @clz(T, ~value) else @clz(T, value); diff --git a/lib/std/linked_list.zig b/lib/std/linked_list.zig index 49006343c5..7bab3e2188 100644 --- a/lib/std/linked_list.zig +++ b/lib/std/linked_list.zig @@ -359,8 +359,8 @@ test "basic TailQueue test" { } } - var first = list.popFirst(); // {2, 3, 4, 5} - var last = list.pop(); // {2, 3, 4} + _ = list.popFirst(); // {2, 3, 4, 5} + _ = list.pop(); // {2, 3, 4} list.remove(&three); // {2, 4} try testing.expect(list.first.?.data == 2); diff --git a/lib/std/math/big/int.zig b/lib/std/math/big/int.zig index b2997536a6..4a74347758 100644 --- a/lib/std/math/big/int.zig +++ b/lib/std/math/big/int.zig @@ -2000,8 +2000,6 @@ fn llmulacc_karatsuba(allocator: *Allocator, r: []Limb, x: []const Limb, y: []co } else { llsub(j1, y0[0..y0_len], y1[0..y1_len]); } - const j0_len = llnormalize(j0); - const j1_len = llnormalize(j1); if (x_cmp == y_cmp) { mem.set(Limb, tmp[0..length], 0); llmulacc(allocator, tmp, j0, j1); diff --git a/lib/std/math/big/rational.zig b/lib/std/math/big/rational.zig index 987889feca..8b7c2d45d6 100644 --- a/lib/std/math/big/rational.zig +++ b/lib/std/math/big/rational.zig @@ -204,7 +204,6 @@ pub const Rational = struct { const esize = math.floatExponentBits(T); const ebias = (1 << (esize - 1)) - 1; const emin = 1 - ebias; - const emax = ebias; if (self.p.eqZero()) { return 0; diff --git a/lib/std/math/complex/ldexp.zig b/lib/std/math/complex/ldexp.zig index 51ac105256..c0a6c7a934 100644 --- a/lib/std/math/complex/ldexp.zig +++ b/lib/std/math/complex/ldexp.zig @@ -12,8 +12,8 @@ const std = @import("../../std.zig"); const debug = std.debug; const math = std.math; -const cmath = math.complex; const testing = std.testing; +const cmath = math.complex; const Complex = cmath.Complex; /// Returns exp(z) scaled to avoid overflow. diff --git a/lib/std/math/expm1.zig b/lib/std/math/expm1.zig index d7a2e6a844..ebc76165ba 100644 --- a/lib/std/math/expm1.zig +++ b/lib/std/math/expm1.zig @@ -316,16 +316,12 @@ test "math.expm1_64" { } test "math.expm1_32.special" { - const epsilon = 0.000001; - try expect(math.isPositiveInf(expm1_32(math.inf(f32)))); try expect(expm1_32(-math.inf(f32)) == -1.0); try expect(math.isNan(expm1_32(math.nan(f32)))); } test "math.expm1_64.special" { - const epsilon = 0.000001; - try expect(math.isPositiveInf(expm1_64(math.inf(f64)))); try expect(expm1_64(-math.inf(f64)) == -1.0); try expect(math.isNan(expm1_64(math.nan(f64)))); diff --git a/lib/std/math/modf.zig b/lib/std/math/modf.zig index 6eef6fdd37..2a8cf00bbb 100644 --- a/lib/std/math/modf.zig +++ b/lib/std/math/modf.zig @@ -12,6 +12,7 @@ const std = @import("../std.zig"); const math = std.math; const expect = std.testing.expect; +const expectEqual = std.testing.expectEqual; const maxInt = std.math.maxInt; fn modf_result(comptime T: type) type { @@ -131,11 +132,7 @@ test "math.modf" { const a = modf(@as(f32, 1.0)); const b = modf32(1.0); // NOTE: No struct comparison on generic return type function? non-named, makes sense, but still. - try expect(a.ipart == b.ipart and a.fpart == b.fpart); - - const c = modf(@as(f64, 1.0)); - const d = modf64(1.0); - try expect(a.ipart == b.ipart and a.fpart == b.fpart); + try expectEqual(a, b); } test "math.modf32" { diff --git a/lib/std/meta.zig b/lib/std/meta.zig index e19208cd84..72a3b5a198 100644 --- a/lib/std/meta.zig +++ b/lib/std/meta.zig @@ -654,7 +654,6 @@ pub fn TagPayload(comptime U: type, tag: Tag(U)) type { try testing.expect(trait.is(.Union)(U)); const info = @typeInfo(U).Union; - const tag_info = @typeInfo(Tag(U)).Enum; inline for (info.fields) |field_info| { if (comptime mem.eql(u8, field_info.name, @tagName(tag))) @@ -757,12 +756,6 @@ test "std.meta.eql" { .c = "12345".*, }; - const s_2 = S{ - .a = 1, - .b = 123.3, - .c = "54321".*, - }; - var s_3 = S{ .a = 134, .b = 123.3, diff --git a/lib/std/os.zig b/lib/std/os.zig index 8598eceb6e..307cc6990a 100644 --- a/lib/std/os.zig +++ b/lib/std/os.zig @@ -5341,7 +5341,7 @@ pub fn sendfile( ENXIO => return error.Unseekable, ESPIPE => return error.Unseekable, else => |err| { - const discard = unexpectedErrno(err); + unexpectedErrno(err) catch {}; break :sf; }, } @@ -5422,7 +5422,7 @@ pub fn sendfile( EPIPE => return error.BrokenPipe, else => { - const discard = unexpectedErrno(err); + unexpectedErrno(err) catch {}; if (amt != 0) { return amt; } else { @@ -5484,7 +5484,7 @@ pub fn sendfile( EPIPE => return error.BrokenPipe, else => { - const discard = unexpectedErrno(err); + unexpectedErrno(err) catch {}; if (amt != 0) { return amt; } else { diff --git a/lib/std/os/linux/io_uring.zig b/lib/std/os/linux/io_uring.zig index ca80a381f5..22caac9038 100644 --- a/lib/std/os/linux/io_uring.zig +++ b/lib/std/os/linux/io_uring.zig @@ -1272,12 +1272,12 @@ test "accept/connect/send/recv" { var accept_addr: os.sockaddr = undefined; var accept_addr_len: os.socklen_t = @sizeOf(@TypeOf(accept_addr)); - const accept = try ring.accept(0xaaaaaaaa, server, &accept_addr, &accept_addr_len, 0); + _ = try ring.accept(0xaaaaaaaa, server, &accept_addr, &accept_addr_len, 0); try testing.expectEqual(@as(u32, 1), try ring.submit()); const client = try os.socket(address.any.family, os.SOCK_STREAM | os.SOCK_CLOEXEC, 0); defer os.close(client); - const connect = try ring.connect(0xcccccccc, client, &address.any, address.getOsSockLen()); + _ = try ring.connect(0xcccccccc, client, &address.any, address.getOsSockLen()); try testing.expectEqual(@as(u32, 1), try ring.submit()); var cqe_accept = try ring.copy_cqe(); @@ -1305,7 +1305,7 @@ test "accept/connect/send/recv" { const send = try ring.send(0xeeeeeeee, client, buffer_send[0..], 0); send.flags |= linux.IOSQE_IO_LINK; - const recv = try ring.recv(0xffffffff, cqe_accept.res, buffer_recv[0..], 0); + _ = try ring.recv(0xffffffff, cqe_accept.res, buffer_recv[0..], 0); try testing.expectEqual(@as(u32, 2), try ring.submit()); const cqe_send = try ring.copy_cqe(); diff --git a/lib/std/os/linux/vdso.zig b/lib/std/os/linux/vdso.zig index f2e4f1f5bc..f42bb06452 100644 --- a/lib/std/os/linux/vdso.zig +++ b/lib/std/os/linux/vdso.zig @@ -15,7 +15,6 @@ pub fn lookup(vername: []const u8, name: []const u8) usize { const eh = @intToPtr(*elf.Ehdr, vdso_addr); var ph_addr: usize = vdso_addr + eh.e_phoff; - const ph = @intToPtr(*elf.Phdr, ph_addr); var maybe_dynv: ?[*]usize = null; var base: usize = maxInt(usize); diff --git a/lib/std/os/windows.zig b/lib/std/os/windows.zig index 23252011c2..1fade2a462 100644 --- a/lib/std/os/windows.zig +++ b/lib/std/os/windows.zig @@ -1156,7 +1156,6 @@ pub fn GetFinalPathNameByHandle( &mount_points_struct.MountPoints[0], )[0..mount_points_struct.NumberOfMountPoints]; - var found: bool = false; for (mount_points) |mount_point| { const symlink = @ptrCast( [*]const u16, diff --git a/lib/std/pdb.zig b/lib/std/pdb.zig index d91323768a..d6d28084d9 100644 --- a/lib/std/pdb.zig +++ b/lib/std/pdb.zig @@ -590,11 +590,11 @@ pub const Pdb = struct { var sect_cont_offset: usize = 0; if (section_contrib_size != 0) { - // the version - _ = reader.readEnum(SectionContrSubstreamVersion, .Little) catch |err| switch (err) { + const version = reader.readEnum(SectionContrSubstreamVersion, .Little) catch |err| switch (err) { error.InvalidValue => return error.InvalidDebugInfo, else => |e| return e, }; + _ = version; sect_cont_offset += @sizeOf(u32); } while (sect_cont_offset != section_contrib_size) { @@ -617,8 +617,8 @@ pub const Pdb = struct { // Parse the InfoStreamHeader. const version = try reader.readIntLittle(u32); - // The signature - _ = try reader.readIntLittle(u32); + const signature = try reader.readIntLittle(u32); + _ = signature; const age = try reader.readIntLittle(u32); const guid = try reader.readBytesNoEof(16); diff --git a/lib/std/rand/ziggurat.zig b/lib/std/rand/ziggurat.zig index fe120943d7..c01f7c659a 100644 --- a/lib/std/rand/ziggurat.zig +++ b/lib/std/rand/ziggurat.zig @@ -175,5 +175,5 @@ test "exp dist sanity" { test "table gen" { if (please_windows_dont_oom) return error.SkipZigTest; - const table = NormDist; + _ = NormDist; } diff --git a/lib/std/special/compiler_rt/addXf3.zig b/lib/std/special/compiler_rt/addXf3.zig index 5a2f3c976c..c5c7397680 100644 --- a/lib/std/special/compiler_rt/addXf3.zig +++ b/lib/std/special/compiler_rt/addXf3.zig @@ -83,7 +83,6 @@ fn addXf3(comptime T: type, a: T, b: T) T { const signBit = (@as(Z, 1) << (significandBits + exponentBits)); const maxExponent = ((1 << exponentBits) - 1); - const exponentBias = (maxExponent >> 1); const implicitBit = (@as(Z, 1) << significandBits); const quietBit = implicitBit >> 1; @@ -98,10 +97,6 @@ fn addXf3(comptime T: type, a: T, b: T) T { const aAbs = aRep & absMask; const bAbs = bRep & absMask; - const negative = (aRep & signBit) != 0; - const exponent = @intCast(i32, aAbs >> significandBits) - exponentBias; - const significand = (aAbs & significandMask) | implicitBit; - const infRep = @bitCast(Z, std.math.inf(T)); // Detect if a or b is zero, infinity, or NaN. diff --git a/lib/std/special/compiler_rt/divtf3.zig b/lib/std/special/compiler_rt/divtf3.zig index 9c18e79dd5..d8ef463e49 100644 --- a/lib/std/special/compiler_rt/divtf3.zig +++ b/lib/std/special/compiler_rt/divtf3.zig @@ -12,7 +12,6 @@ const wideMultiply = @import("divdf3.zig").wideMultiply; pub fn __divtf3(a: f128, b: f128) callconv(.C) f128 { @setRuntimeSafety(builtin.is_test); const Z = std.meta.Int(.unsigned, 128); - const SignedZ = std.meta.Int(.signed, 128); const significandBits = std.math.floatMantissaBits(f128); const exponentBits = std.math.floatExponentBits(f128); diff --git a/lib/std/special/compiler_rt/extendXfYf2.zig b/lib/std/special/compiler_rt/extendXfYf2.zig index 59be8441fa..9a42a938b9 100644 --- a/lib/std/special/compiler_rt/extendXfYf2.zig +++ b/lib/std/special/compiler_rt/extendXfYf2.zig @@ -46,7 +46,6 @@ fn extendXfYf2(comptime dst_t: type, comptime src_t: type, a: std.meta.Int(.unsi const dst_rep_t = std.meta.Int(.unsigned, @typeInfo(dst_t).Float.bits); const srcSigBits = std.math.floatMantissaBits(src_t); const dstSigBits = std.math.floatMantissaBits(dst_t); - const SrcShift = std.math.Log2Int(src_rep_t); const DstShift = std.math.Log2Int(dst_rep_t); // Various constants whose values follow from the type parameters. diff --git a/lib/std/special/compiler_rt/fixuint.zig b/lib/std/special/compiler_rt/fixuint.zig index 755e1b8bb2..518b5de4e4 100644 --- a/lib/std/special/compiler_rt/fixuint.zig +++ b/lib/std/special/compiler_rt/fixuint.zig @@ -16,7 +16,6 @@ pub fn fixuint(comptime fp_t: type, comptime fixuint_t: type, a: fp_t) fixuint_t else => unreachable, }; const typeWidth = @typeInfo(rep_t).Int.bits; - const srep_t = @import("std").meta.Int(.signed, typeWidth); const significandBits = switch (fp_t) { f32 => 23, f64 => 52, diff --git a/lib/std/special/compiler_rt/truncXfYf2.zig b/lib/std/special/compiler_rt/truncXfYf2.zig index e85aa363db..9f34812199 100644 --- a/lib/std/special/compiler_rt/truncXfYf2.zig +++ b/lib/std/special/compiler_rt/truncXfYf2.zig @@ -50,7 +50,6 @@ fn truncXfYf2(comptime dst_t: type, comptime src_t: type, a: src_t) dst_t { const srcSigBits = std.math.floatMantissaBits(src_t); const dstSigBits = std.math.floatMantissaBits(dst_t); const SrcShift = std.math.Log2Int(src_rep_t); - const DstShift = std.math.Log2Int(dst_rep_t); // Various constants whose values follow from the type parameters. // Any reasonable optimizer will fold and propagate all of these. diff --git a/lib/std/testing.zig b/lib/std/testing.zig index be3e76dcdb..a370c21c29 100644 --- a/lib/std/testing.zig +++ b/lib/std/testing.zig @@ -191,7 +191,6 @@ test "expectEqual.union(enum)" { }; const a10 = T{ .a = 10 }; - const a20 = T{ .a = 20 }; try expectEqual(a10, a10); } diff --git a/lib/std/unicode/throughput_test.zig b/lib/std/unicode/throughput_test.zig index 8f9f9d9cb7..e49da8ceaf 100644 --- a/lib/std/unicode/throughput_test.zig +++ b/lib/std/unicode/throughput_test.zig @@ -47,8 +47,6 @@ fn benchmarkCodepointCount(buf: []const u8) !ResultCount { pub fn main() !void { const stdout = std.io.getStdOut().writer(); - const args = try std.process.argsAlloc(std.heap.page_allocator); - try stdout.print("short ASCII strings\n", .{}); { const result = try benchmarkCodepointCount("abc"); diff --git a/lib/std/x/os/io.zig b/lib/std/x/os/io.zig index 1c0e0e9130..b0df3f947e 100644 --- a/lib/std/x/os/io.zig +++ b/lib/std/x/os/io.zig @@ -122,7 +122,6 @@ test "reactor/linux: drive async tcp client/listener pair" { const IPv4 = std.x.os.IPv4; const IPv6 = std.x.os.IPv6; - const Socket = std.x.os.Socket; const reactor = try Reactor.init(.{ .close_on_exec = true }); defer reactor.deinit(); diff --git a/lib/std/zig/ast.zig b/lib/std/zig/ast.zig index 6658092398..6a7919e0e4 100644 --- a/lib/std/zig/ast.zig +++ b/lib/std/zig/ast.zig @@ -1866,7 +1866,6 @@ pub const Tree = struct { } fn fullStructInit(tree: Tree, info: full.StructInit.Ast) full.StructInit { - const token_tags = tree.tokens.items(.tag); var result: full.StructInit = .{ .ast = info, }; diff --git a/lib/std/zig/parse.zig b/lib/std/zig/parse.zig index 32dbedc78d..8f22bde974 100644 --- a/lib/std/zig/parse.zig +++ b/lib/std/zig/parse.zig @@ -586,7 +586,7 @@ const Parser = struct { const thread_local_token = p.eatToken(.keyword_threadlocal); const var_decl = try p.parseVarDecl(); if (var_decl != 0) { - const semicolon_token = try p.expectToken(.semicolon); + _ = try p.expectToken(.semicolon); return var_decl; } if (thread_local_token != null) { @@ -614,7 +614,7 @@ const Parser = struct { fn expectUsingNamespace(p: *Parser) !Node.Index { const usingnamespace_token = p.assertToken(.keyword_usingnamespace); const expr = try p.expectExpr(); - const semicolon_token = try p.expectToken(.semicolon); + _ = try p.expectToken(.semicolon); return p.addNode(.{ .tag = .@"usingnamespace", .main_token = usingnamespace_token, @@ -647,7 +647,7 @@ const Parser = struct { const align_expr = try p.parseByteAlign(); const section_expr = try p.parseLinkSection(); const callconv_expr = try p.parseCallconv(); - const bang_token = p.eatToken(.bang); + _ = p.eatToken(.bang); const return_type_expr = try p.parseTypeExpr(); if (return_type_expr == 0) { @@ -775,7 +775,7 @@ const Parser = struct { /// ContainerField <- KEYWORD_comptime? IDENTIFIER (COLON (KEYWORD_anytype / TypeExpr) ByteAlign?)? (EQUAL Expr)? fn expectContainerField(p: *Parser) !Node.Index { - const comptime_token = p.eatToken(.keyword_comptime); + _ = p.eatToken(.keyword_comptime); const name_token = p.assertToken(.identifier); var align_expr: Node.Index = 0; @@ -967,7 +967,7 @@ const Parser = struct { _ = try p.expectToken(.l_paren); const condition = try p.expectExpr(); _ = try p.expectToken(.r_paren); - const then_payload = try p.parsePtrPayload(); + _ = try p.parsePtrPayload(); // TODO propose to change the syntax so that semicolons are always required // inside if statements, even if there is an `else`. @@ -992,7 +992,7 @@ const Parser = struct { else_required = true; break :blk assign_expr; }; - const else_token = p.eatToken(.keyword_else) orelse { + _ = p.eatToken(.keyword_else) orelse { if (else_required) { try p.warn(.expected_semi_or_else); } @@ -1087,7 +1087,7 @@ const Parser = struct { else_required = true; break :blk assign_expr; }; - const else_token = p.eatToken(.keyword_else) orelse { + _ = p.eatToken(.keyword_else) orelse { if (else_required) { try p.warn(.expected_semi_or_else); } @@ -1122,7 +1122,7 @@ const Parser = struct { _ = try p.expectToken(.l_paren); const condition = try p.expectExpr(); _ = try p.expectToken(.r_paren); - const then_payload = try p.parsePtrPayload(); + _ = try p.parsePtrPayload(); const cont_expr = try p.parseWhileContinueExpr(); // TODO propose to change the syntax so that semicolons are always required @@ -1162,7 +1162,7 @@ const Parser = struct { else_required = true; break :blk assign_expr; }; - const else_token = p.eatToken(.keyword_else) orelse { + _ = p.eatToken(.keyword_else) orelse { if (else_required) { try p.warn(.expected_semi_or_else); } @@ -1550,7 +1550,7 @@ const Parser = struct { }, .l_bracket => switch (p.token_tags[p.tok_i + 1]) { .asterisk => { - const lbracket = p.nextToken(); + _ = p.nextToken(); const asterisk = p.nextToken(); var sentinel: Node.Index = 0; prefix: { @@ -1907,7 +1907,7 @@ const Parser = struct { if (found_payload == 0) try p.warn(.expected_loop_payload); const then_expr = try p.expectExpr(); - const else_token = p.eatToken(.keyword_else) orelse { + _ = p.eatToken(.keyword_else) orelse { return p.addNode(.{ .tag = .for_simple, .main_token = for_token, @@ -1938,11 +1938,11 @@ const Parser = struct { _ = try p.expectToken(.l_paren); const condition = try p.expectExpr(); _ = try p.expectToken(.r_paren); - const then_payload = try p.parsePtrPayload(); + _ = try p.parsePtrPayload(); const cont_expr = try p.parseWhileContinueExpr(); const then_expr = try p.expectExpr(); - const else_token = p.eatToken(.keyword_else) orelse { + _ = p.eatToken(.keyword_else) orelse { if (cont_expr == 0) { return p.addNode(.{ .tag = .while_simple, @@ -1966,7 +1966,7 @@ const Parser = struct { }); } }; - const else_payload = try p.parsePayload(); + _ = try p.parsePayload(); const else_expr = try p.expectExpr(); return p.addNode(.{ .tag = .@"while", @@ -2565,8 +2565,8 @@ const Parser = struct { p.tok_i += 2; while (true) { if (p.eatToken(.r_brace)) |_| break; - const doc_comment = try p.eatDocComments(); - const identifier = try p.expectToken(.identifier); + _ = try p.eatDocComments(); + _ = try p.expectToken(.identifier); switch (p.token_tags[p.tok_i]) { .comma => p.tok_i += 1, .r_brace => { @@ -2634,7 +2634,7 @@ const Parser = struct { if (found_payload == 0) try p.warn(.expected_loop_payload); const then_expr = try p.expectTypeExpr(); - const else_token = p.eatToken(.keyword_else) orelse { + _ = p.eatToken(.keyword_else) orelse { return p.addNode(.{ .tag = .for_simple, .main_token = for_token, @@ -2665,11 +2665,11 @@ const Parser = struct { _ = try p.expectToken(.l_paren); const condition = try p.expectExpr(); _ = try p.expectToken(.r_paren); - const then_payload = try p.parsePtrPayload(); + _ = try p.parsePtrPayload(); const cont_expr = try p.parseWhileContinueExpr(); const then_expr = try p.expectTypeExpr(); - const else_token = p.eatToken(.keyword_else) orelse { + _ = p.eatToken(.keyword_else) orelse { if (cont_expr == 0) { return p.addNode(.{ .tag = .while_simple, @@ -2693,7 +2693,7 @@ const Parser = struct { }); } }; - const else_payload = try p.parsePayload(); + _ = try p.parsePayload(); const else_expr = try p.expectTypeExpr(); return p.addNode(.{ .tag = .@"while", @@ -3570,12 +3570,12 @@ const Parser = struct { _ = try p.expectToken(.l_paren); const condition = try p.expectExpr(); _ = try p.expectToken(.r_paren); - const then_payload = try p.parsePtrPayload(); + _ = try p.parsePtrPayload(); const then_expr = try bodyParseFn(p); if (then_expr == 0) return p.fail(.invalid_token); - const else_token = p.eatToken(.keyword_else) orelse return p.addNode(.{ + _ = p.eatToken(.keyword_else) orelse return p.addNode(.{ .tag = .if_simple, .main_token = if_token, .data = .{ @@ -3583,7 +3583,7 @@ const Parser = struct { .rhs = then_expr, }, }); - const else_payload = try p.parsePayload(); + _ = try p.parsePayload(); const else_expr = try bodyParseFn(p); if (else_expr == 0) return p.fail(.invalid_token); diff --git a/lib/std/zig/parser_test.zig b/lib/std/zig/parser_test.zig index e2797a33f8..907e06a1a6 100644 --- a/lib/std/zig/parser_test.zig +++ b/lib/std/zig/parser_test.zig @@ -5201,7 +5201,6 @@ fn testParse(source: []const u8, allocator: *mem.Allocator, anything_changed: *b defer tree.deinit(allocator); for (tree.errors) |parse_error| { - const token_start = tree.tokens.items(.start)[parse_error.token]; const loc = tree.tokenLocation(0, parse_error.token); try stderr.print("(memory buffer):{d}:{d}: error: ", .{ loc.line + 1, loc.column + 1 }); try tree.renderError(parse_error, stderr); diff --git a/lib/std/zig/render.zig b/lib/std/zig/render.zig index 95b5c7a8d8..36fb7f5e14 100644 --- a/lib/std/zig/render.zig +++ b/lib/std/zig/render.zig @@ -1086,8 +1086,6 @@ fn renderWhile(gpa: *Allocator, ais: *Ais, tree: ast.Tree, while_node: ast.full. } if (while_node.ast.else_expr != 0) { - const first_else_expr_tok = tree.firstToken(while_node.ast.else_expr); - if (indent_then_expr) { ais.pushIndent(); try renderExpression(gpa, ais, tree, while_node.ast.then_expr, .newline); @@ -1133,7 +1131,6 @@ fn renderContainerField( field: ast.full.ContainerField, space: Space, ) Error!void { - const main_tokens = tree.nodes.items(.main_token); if (field.comptime_token) |t| { try renderToken(ais, tree, t, .space); // comptime } @@ -1519,7 +1516,6 @@ fn renderBlock( ) Error!void { const token_tags = tree.tokens.items(.tag); const node_tags = tree.nodes.items(.tag); - const nodes_data = tree.nodes.items(.data); const lbrace = tree.nodes.items(.main_token)[block_node]; if (token_tags[lbrace - 1] == .colon and @@ -1617,7 +1613,6 @@ fn renderArrayInit( space: Space, ) Error!void { const token_tags = tree.tokens.items(.tag); - const token_starts = tree.tokens.items(.start); if (array_init.ast.type_expr == 0) { try renderToken(ais, tree, array_init.ast.lbrace - 1, .none); // . @@ -2046,7 +2041,6 @@ fn renderCall( space: Space, ) Error!void { const token_tags = tree.tokens.items(.tag); - const main_tokens = tree.nodes.items(.main_token); if (call.async_token) |async_token| { try renderToken(ais, tree, async_token, .space); diff --git a/lib/std/zig/system.zig b/lib/std/zig/system.zig index bc099b8ec6..5fb948c64a 100644 --- a/lib/std/zig/system.zig +++ b/lib/std/zig/system.zig @@ -478,13 +478,6 @@ pub const NativeTargetInfo = struct { } const ld_info_list = ld_info_list_buffer[0..ld_info_list_len]; - if (cross_target.dynamic_linker.get()) |explicit_ld| { - const explicit_ld_basename = fs.path.basename(explicit_ld); - for (ld_info_list) |ld_info| { - const standard_ld_basename = fs.path.basename(ld_info.ld.get().?); - } - } - // Best case scenario: the executable is dynamically linked, and we can iterate // over our own shared objects and find a dynamic linker. self_exe: { @@ -838,7 +831,7 @@ pub const NativeTargetInfo = struct { if (dynstr) |ds| { const strtab_len = std.math.min(ds.size, strtab_buf.len); - const strtab_read_len = try preadMin(file, &strtab_buf, ds.offset, shstrtab_len); + const strtab_read_len = try preadMin(file, &strtab_buf, ds.offset, strtab_len); const strtab = strtab_buf[0..strtab_read_len]; // TODO this pointer cast should not be necessary const rpoff_usize = std.math.cast(usize, rpoff) catch |err| switch (err) { diff --git a/lib/std/zig/tokenizer.zig b/lib/std/zig/tokenizer.zig index f44b140c63..94a20d958b 100644 --- a/lib/std/zig/tokenizer.zig +++ b/lib/std/zig/tokenizer.zig @@ -416,7 +416,6 @@ pub const Tokenizer = struct { self.pending_invalid_token = null; return token; } - const start_index = self.index; var state: State = .start; var result = Token{ .tag = .eof, diff --git a/src/AstGen.zig b/src/AstGen.zig index 09078b0c1e..acaf2be5fd 100644 --- a/src/AstGen.zig +++ b/src/AstGen.zig @@ -206,7 +206,6 @@ pub const ResultLoc = union(enum) { }; fn strategy(rl: ResultLoc, block_scope: *GenZir) Strategy { - var elide_store_to_block_ptr_instructions = false; switch (rl) { // In this branch there will not be any store_to_block_ptr instructions. .discard, .none, .none_or_ref, .ty, .ref => return .{ @@ -905,7 +904,6 @@ fn nosuspendExpr( node: ast.Node.Index, ) InnerError!Zir.Inst.Ref { const astgen = gz.astgen; - const gpa = astgen.gpa; const tree = astgen.tree; const node_datas = tree.nodes.items(.data); const body_node = node_datas[node].lhs; @@ -1113,7 +1111,6 @@ fn arrayInitExpr( ) InnerError!Zir.Inst.Ref { const astgen = gz.astgen; const tree = astgen.tree; - const gpa = astgen.gpa; const node_tags = tree.nodes.items(.tag); const main_tokens = tree.nodes.items(.main_token); @@ -1293,7 +1290,6 @@ fn structInitExpr( ) InnerError!Zir.Inst.Ref { const astgen = gz.astgen; const tree = astgen.tree; - const gpa = astgen.gpa; if (struct_init.ast.fields.len == 0) { if (struct_init.ast.type_expr == 0) { @@ -1675,9 +1671,6 @@ fn checkLabelRedefinition(astgen: *AstGen, parent_scope: *Scope, label: ast.Toke const gen_zir = scope.cast(GenZir).?; if (gen_zir.label) |prev_label| { if (try astgen.tokenIdentEql(label, prev_label.token)) { - const tree = astgen.tree; - const main_tokens = tree.nodes.items(.main_token); - const label_name = try astgen.identifierTokenString(label); return astgen.failTokNotes(label, "redefinition of label '{s}'", .{ label_name, @@ -1790,7 +1783,6 @@ fn blockExprStmts( ) !void { const astgen = gz.astgen; const tree = astgen.tree; - const main_tokens = tree.nodes.items(.main_token); const node_tags = tree.nodes.items(.tag); var block_arena = std.heap.ArenaAllocator.init(gz.astgen.gpa); @@ -2147,7 +2139,10 @@ fn genDefers( .defer_error => { const defer_scope = scope.cast(Scope.Defer).?; scope = defer_scope.parent; - if (err_code == .none) continue; + // TODO add this back when we have more errdefer support + // right now it is making stuff not get evaluated which causes + // unused vars. + // if (err_code == .none) continue; const expr_node = node_datas[defer_scope.defer_node].rhs; const prev_in_defer = gz.in_defer; gz.in_defer = true; @@ -2166,8 +2161,6 @@ fn checkUsed( inner_scope: *Scope, ) InnerError!void { const astgen = gz.astgen; - const tree = astgen.tree; - const node_datas = tree.nodes.items(.data); var scope = inner_scope; while (scope != outer_scope) { @@ -2450,7 +2443,7 @@ fn varDecl( resolve_inferred_alloc = alloc; break :a .{ .alloc = alloc, .result_loc = .{ .inferred_ptr = alloc } }; }; - const init_inst = try expr(gz, scope, var_data.result_loc, var_decl.ast.init_node); + _ = try expr(gz, scope, var_data.result_loc, var_decl.ast.init_node); if (resolve_inferred_alloc != .none) { _ = try gz.addUnNode(.resolve_inferred_alloc, resolve_inferred_alloc, node); } @@ -2477,7 +2470,6 @@ fn emitDbgNode(gz: *GenZir, node: ast.Node.Index) !void { const astgen = gz.astgen; const tree = astgen.tree; - const node_tags = tree.nodes.items(.tag); const token_starts = tree.tokens.items(.start); const decl_start = token_starts[tree.firstToken(gz.decl_node_index)]; const node_start = token_starts[tree.firstToken(node)]; @@ -2602,9 +2594,6 @@ fn ptrType( node: ast.Node.Index, ptr_info: ast.full.PtrType, ) InnerError!Zir.Inst.Ref { - const astgen = gz.astgen; - const tree = astgen.tree; - const elem_type = try typeExpr(gz, scope, ptr_info.ast.child_type); const simple = ptr_info.ast.align_node == 0 and @@ -4305,10 +4294,8 @@ fn containerDecl( defer wip_decls.deinit(gpa); for (container_decl.ast.members) |member_node| { - const member = switch (node_tags[member_node]) { - .container_field_init => tree.containerFieldInit(member_node), - .container_field_align => tree.containerFieldAlign(member_node), - .container_field => tree.containerField(member_node), + switch (node_tags[member_node]) { + .container_field_init, .container_field_align, .container_field => {}, .fn_decl => { const fn_proto = node_datas[member_node].lhs; @@ -4429,7 +4416,7 @@ fn containerDecl( continue; }, else => unreachable, - }; + } } { const empty_slot_count = WipDecls.fields_per_u32 - (wip_decls.decl_index % WipDecls.fields_per_u32); @@ -4497,11 +4484,6 @@ fn errorSetDecl( } } - const tag: Zir.Inst.Tag = switch (gz.anon_name_strategy) { - .parent => .error_set_decl, - .anon => .error_set_decl_anon, - .func => .error_set_decl_func, - }; const result = try gz.addPlNode(.error_set_decl, node, Zir.Inst.ErrorSetDecl{ .fields_len = @intCast(u32, field_names.items.len), }); @@ -4517,7 +4499,6 @@ fn tryExpr( operand_node: ast.Node.Index, ) InnerError!Zir.Inst.Ref { const astgen = parent_gz.astgen; - const tree = astgen.tree; const fn_block = astgen.fn_block orelse { return astgen.failNode(node, "invalid 'try' outside function scope", .{}); @@ -4702,7 +4683,6 @@ fn finishThenElseBlock( // We now have enough information to decide whether the result instruction should // be communicated via result location pointer or break instructions. const strat = rl.strategy(block_scope); - const astgen = block_scope.astgen; switch (strat.tag) { .break_void => { if (!parent_gz.refIsNoReturn(then_result)) { @@ -4786,7 +4766,6 @@ fn arrayAccess( ) InnerError!Zir.Inst.Ref { const astgen = gz.astgen; const tree = astgen.tree; - const main_tokens = tree.nodes.items(.main_token); const node_datas = tree.nodes.items(.data); switch (rl) { .ref => return gz.addBin( @@ -6054,7 +6033,6 @@ fn ret(gz: *GenZir, scope: *Scope, node: ast.Node.Index) InnerError!Zir.Inst.Ref const astgen = gz.astgen; const tree = astgen.tree; const node_datas = tree.nodes.items(.data); - const main_tokens = tree.nodes.items(.main_token); if (gz.in_defer) return astgen.failNode(node, "cannot return from defer expression", .{}); @@ -6271,7 +6249,6 @@ fn multilineStringLiteral( const astgen = gz.astgen; const tree = astgen.tree; const node_datas = tree.nodes.items(.data); - const main_tokens = tree.nodes.items(.main_token); const start = node_datas[node].lhs; const end = node_datas[node].rhs; @@ -6387,7 +6364,6 @@ fn floatLiteral( node: ast.Node.Index, ) InnerError!Zir.Inst.Ref { const astgen = gz.astgen; - const arena = astgen.arena; const tree = astgen.tree; const main_tokens = tree.nodes.items(.main_token); @@ -6430,7 +6406,6 @@ fn asmExpr( full: ast.full.Asm, ) InnerError!Zir.Inst.Ref { const astgen = gz.astgen; - const arena = astgen.arena; const tree = astgen.tree; const main_tokens = tree.nodes.items(.main_token); const node_datas = tree.nodes.items(.data); @@ -6519,7 +6494,6 @@ fn asmExpr( const name = try astgen.identAsString(symbolic_name); const constraint_token = symbolic_name + 2; const constraint = (try astgen.strLitAsString(constraint_token)).index; - const has_arrow = token_tags[symbolic_name + 4] == .arrow; const operand = try expr(gz, scope, .{ .ty = .usize_type }, node_datas[input_node].lhs); inputs[i] = .{ .name = name, @@ -6601,7 +6575,7 @@ fn unionInit( const field_name = try comptimeExpr(gz, scope, .{ .ty = .const_slice_u8_type }, params[1]); switch (rl) { .none, .none_or_ref, .discard, .ref, .ty, .inferred_ptr => { - const field_type = try gz.addPlNode(.field_type_ref, params[1], Zir.Inst.FieldTypeRef{ + _ = try gz.addPlNode(.field_type_ref, params[1], Zir.Inst.FieldTypeRef{ .container_type = union_type, .field_name = field_name, }); @@ -6783,7 +6757,6 @@ fn builtinCall( switch (info.tag) { .import => { const node_tags = tree.nodes.items(.tag); - const node_datas = tree.nodes.items(.data); const operand_node = params[0]; if (node_tags[operand_node] != .string_literal) { @@ -8119,7 +8092,6 @@ fn parseStrLit( bytes: []const u8, offset: u32, ) InnerError!void { - const tree = astgen.tree; const raw_string = bytes[offset..]; var buf_managed = buf.toManaged(astgen.gpa); const result = std.zig.string_literal.parseAppend(&buf_managed, raw_string); @@ -8567,7 +8539,6 @@ const GenZir = struct { fn calcLine(gz: GenZir, node: ast.Node.Index) u32 { const astgen = gz.astgen; const tree = astgen.tree; - const node_tags = tree.nodes.items(.tag); const token_starts = tree.tokens.items(.start); const decl_start = token_starts[tree.firstToken(gz.decl_node_index)]; const node_start = token_starts[tree.firstToken(node)]; diff --git a/src/Compilation.zig b/src/Compilation.zig index 867b945213..f73d9410f2 100644 --- a/src/Compilation.zig +++ b/src/Compilation.zig @@ -325,7 +325,6 @@ pub const AllErrors = struct { }, pub fn renderToStdErr(msg: Message, ttyconf: std.debug.TTY.Config) void { - const stderr_mutex = std.debug.getStderrMutex(); const held = std.debug.getStderrMutex().acquire(); defer held.release(); const stderr = std.io.getStdErr(); @@ -2373,7 +2372,7 @@ pub fn cImport(comp: *Compilation, c_src: []const u8) !CImportResult { // We need to "unhit" in this case, to keep the digests matching. const prev_hash_state = man.hash.peekBin(); const actual_hit = hit: { - const is_hit = try man.hit(); + _ = try man.hit(); if (man.files.items.len == 0) { man.unhit(prev_hash_state, 0); break :hit false; diff --git a/src/DepTokenizer.zig b/src/DepTokenizer.zig index b21c893850..0fd26532f0 100644 --- a/src/DepTokenizer.zig +++ b/src/DepTokenizer.zig @@ -944,7 +944,7 @@ fn printLabel(out: anytype, label: []const u8, bytes: []const u8) !void { try out.writeAll(text); var i: usize = text.len; const end = 79; - while (i < 79) : (i += 1) { + while (i < end) : (i += 1) { try out.writeAll(&[_]u8{label[0]}); } try out.writeAll("\n"); @@ -953,7 +953,7 @@ fn printLabel(out: anytype, label: []const u8, bytes: []const u8) !void { fn printRuler(out: anytype) !void { var i: usize = 0; const end = 79; - while (i < 79) : (i += 1) { + while (i < end) : (i += 1) { try out.writeAll("-"); } try out.writeAll("\n"); @@ -1057,4 +1057,3 @@ const printable_char_tab: [256]u8 = ( "................................................................" ++ "................................................................" ).*; - diff --git a/src/Module.zig b/src/Module.zig index 8e868c4ed8..f2462e704c 100644 --- a/src/Module.zig +++ b/src/Module.zig @@ -1561,7 +1561,6 @@ pub const SrcLoc = struct { .node_offset_array_access_index => |node_off| { const tree = try src_loc.file_scope.getTree(gpa); const node_datas = tree.nodes.items(.data); - const node_tags = tree.nodes.items(.tag); const node = src_loc.declRelativeToNodeIndex(node_off); const main_tokens = tree.nodes.items(.main_token); const tok_index = main_tokens[node_datas[node].rhs]; @@ -1570,7 +1569,6 @@ pub const SrcLoc = struct { }, .node_offset_slice_sentinel => |node_off| { const tree = try src_loc.file_scope.getTree(gpa); - const node_datas = tree.nodes.items(.data); const node_tags = tree.nodes.items(.tag); const node = src_loc.declRelativeToNodeIndex(node_off); const full = switch (node_tags[node]) { @@ -1586,7 +1584,6 @@ pub const SrcLoc = struct { }, .node_offset_call_func => |node_off| { const tree = try src_loc.file_scope.getTree(gpa); - const node_datas = tree.nodes.items(.data); const node_tags = tree.nodes.items(.tag); const node = src_loc.declRelativeToNodeIndex(node_off); var params: [1]ast.Node.Index = undefined; @@ -1625,7 +1622,6 @@ pub const SrcLoc = struct { .node_offset_deref_ptr => |node_off| { const tree = try src_loc.file_scope.getTree(gpa); const node_datas = tree.nodes.items(.data); - const node_tags = tree.nodes.items(.tag); const node = src_loc.declRelativeToNodeIndex(node_off); const tok_index = node_datas[node].lhs; const token_starts = tree.tokens.items(.start); @@ -1633,7 +1629,6 @@ pub const SrcLoc = struct { }, .node_offset_asm_source => |node_off| { const tree = try src_loc.file_scope.getTree(gpa); - const node_datas = tree.nodes.items(.data); const node_tags = tree.nodes.items(.tag); const node = src_loc.declRelativeToNodeIndex(node_off); const full = switch (node_tags[node]) { @@ -1648,7 +1643,6 @@ pub const SrcLoc = struct { }, .node_offset_asm_ret_ty => |node_off| { const tree = try src_loc.file_scope.getTree(gpa); - const node_datas = tree.nodes.items(.data); const node_tags = tree.nodes.items(.tag); const node = src_loc.declRelativeToNodeIndex(node_off); const full = switch (node_tags[node]) { @@ -1771,7 +1765,6 @@ pub const SrcLoc = struct { .node_offset_fn_type_cc => |node_off| { const tree = try src_loc.file_scope.getTree(gpa); - const node_datas = tree.nodes.items(.data); const node_tags = tree.nodes.items(.tag); const node = src_loc.declRelativeToNodeIndex(node_off); var params: [1]ast.Node.Index = undefined; @@ -1790,7 +1783,6 @@ pub const SrcLoc = struct { .node_offset_fn_type_ret_ty => |node_off| { const tree = try src_loc.file_scope.getTree(gpa); - const node_datas = tree.nodes.items(.data); const node_tags = tree.nodes.items(.tag); const node = src_loc.declRelativeToNodeIndex(node_off); var params: [1]ast.Node.Index = undefined; @@ -1810,7 +1802,6 @@ pub const SrcLoc = struct { .node_offset_anyframe_type => |node_off| { const tree = try src_loc.file_scope.getTree(gpa); const node_datas = tree.nodes.items(.data); - const node_tags = tree.nodes.items(.tag); const parent_node = src_loc.declRelativeToNodeIndex(node_off); const node = node_datas[parent_node].rhs; const main_tokens = tree.nodes.items(.main_token); @@ -2502,7 +2493,6 @@ pub fn astGenFile(mod: *Module, file: *Scope.File, prog_node: *std.Progress.Node @ptrCast([*]const u8, file.zir.instructions.items(.data).ptr); if (data_has_safety_tag) { // The `Data` union has a safety tag but in the file format we store it without. - const tags = file.zir.instructions.items(.tag); for (file.zir.instructions.items(.data)) |*data, i| { const as_struct = @ptrCast(*const Stage1DataLayout, data); safety_buffer[i] = as_struct.data; @@ -3386,7 +3376,6 @@ fn scanDecl(iter: *ScanDeclIter, decl_sub_index: usize, flags: u4) InnerError!vo log.debug("scan existing {*} ({s}) of {*}", .{ decl, decl.name, namespace }); // Update the AST node of the decl; even if its contents are unchanged, it may // have been re-ordered. - const prev_src_node = decl.src_node; decl.src_node = decl_node; decl.src_line = line; @@ -4692,11 +4681,9 @@ pub fn analyzeUnionFields(mod: *Module, union_obj: *Union) InnerError!void { const src: LazySrcLoc = .{ .node_offset = union_obj.node_offset }; extra_index += @boolToInt(small.has_src_node); - const tag_type_ref = if (small.has_tag_type) blk: { - const tag_type_ref = @intToEnum(Zir.Inst.Ref, zir.extra[extra_index]); + if (small.has_tag_type) { extra_index += 1; - break :blk tag_type_ref; - } else .none; + } const body_len = if (small.has_body_len) blk: { const body_len = zir.extra[extra_index]; @@ -4784,6 +4771,7 @@ pub fn analyzeUnionFields(mod: *Module, union_obj: *Union) InnerError!void { cur_bit_bag >>= 1; const unused = @truncate(u1, cur_bit_bag) != 0; cur_bit_bag >>= 1; + _ = unused; const field_name_zir = zir.nullTerminatedString(zir.extra[extra_index]); extra_index += 1; @@ -4800,11 +4788,9 @@ pub fn analyzeUnionFields(mod: *Module, union_obj: *Union) InnerError!void { break :blk align_ref; } else .none; - const tag_ref: Zir.Inst.Ref = if (has_tag) blk: { - const tag_ref = @intToEnum(Zir.Inst.Ref, zir.extra[extra_index]); + if (has_tag) { extra_index += 1; - break :blk tag_ref; - } else .none; + } // This string needs to outlive the ZIR code. const field_name = try decl_arena.allocator.dupe(u8, field_name_zir); diff --git a/src/Sema.zig b/src/Sema.zig index 62b9fcb7db..73a1cdf27e 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -1073,6 +1073,11 @@ fn zirOpaqueDecl( const inst_data = sema.code.instructions.items(.data)[inst].pl_node; const src = inst_data.src(); const extra = sema.code.extraData(Zir.Inst.Block, inst_data.payload_index); + if (false) { + inst_data; + src; + extra; + } return sema.mod.fail(&block.base, sema.src, "TODO implement zirOpaqueDecl", .{}); } @@ -1230,7 +1235,6 @@ fn zirIndexablePtrLen(sema: *Sema, block: *Scope.Block, inst: Zir.Inst.Index) In fn zirArg(sema: *Sema, block: *Scope.Block, inst: Zir.Inst.Index) InnerError!*Inst { const inst_data = sema.code.instructions.items(.data)[inst].str_tok; - const src = inst_data.src(); const arg_name = inst_data.get(sema.code); const arg_index = sema.next_arg_index; sema.next_arg_index += 1; @@ -3005,7 +3009,6 @@ fn zirFunc( defer tracy.end(); const inst_data = sema.code.instructions.items(.data)[inst].pl_node; - const src = inst_data.src(); const extra = sema.code.extraData(Zir.Inst.Func, inst_data.payload_index); const param_types = sema.code.refSlice(extra.end, extra.data.param_types_len); @@ -3332,9 +3335,7 @@ fn zirBitcast(sema: *Sema, block: *Scope.Block, inst: Zir.Inst.Index) InnerError defer tracy.end(); const inst_data = sema.code.instructions.items(.data)[inst].pl_node; - const src = inst_data.src(); const dest_ty_src: LazySrcLoc = .{ .node_offset_builtin_call_arg0 = inst_data.src_node }; - const operand_src: LazySrcLoc = .{ .node_offset_builtin_call_arg1 = inst_data.src_node }; const extra = sema.code.extraData(Zir.Inst.Bin, inst_data.payload_index).data; const dest_type = try sema.resolveType(block, dest_ty_src, extra.lhs); @@ -3653,7 +3654,6 @@ fn analyzeSwitch( extra_index += 1; const body_len = sema.code.extra[extra_index]; extra_index += 1; - const body = sema.code.extra[extra_index..][0..body_len]; extra_index += body_len; try sema.validateSwitchItemEnum( @@ -3763,7 +3763,6 @@ fn analyzeSwitch( extra_index += 1; const body_len = sema.code.extra[extra_index]; extra_index += 1; - const body = sema.code.extra[extra_index..][0..body_len]; extra_index += body_len; try sema.validateSwitchItem( @@ -3859,7 +3858,6 @@ fn analyzeSwitch( extra_index += 1; const body_len = sema.code.extra[extra_index]; extra_index += 1; - const body = sema.code.extra[extra_index..][0..body_len]; extra_index += body_len; try sema.validateSwitchItemBool( @@ -3942,7 +3940,6 @@ fn analyzeSwitch( extra_index += 1; const body_len = sema.code.extra[extra_index]; extra_index += 1; - const body = sema.code.extra[extra_index..][0..body_len]; extra_index += body_len; try sema.validateSwitchItemSparse( @@ -4457,6 +4454,7 @@ fn validateSwitchNoRange( fn zirHasField(sema: *Sema, block: *Scope.Block, inst: Zir.Inst.Index) InnerError!*Inst { const inst_data = sema.code.instructions.items(.data)[inst].pl_node; const extra = sema.code.extraData(Zir.Inst.Bin, inst_data.payload_index).data; + _ = extra; const src = inst_data.src(); return sema.mod.fail(&block.base, src, "TODO implement zirHasField", .{}); @@ -6035,7 +6033,6 @@ fn zirVarExtended( ) InnerError!*Inst { const extra = sema.code.extraData(Zir.Inst.ExtendedVar, extended.operand); const src = sema.src; - const align_src: LazySrcLoc = src; // TODO add a LazySrcLoc that points at align const ty_src: LazySrcLoc = src; // TODO add a LazySrcLoc that points at type const mut_src: LazySrcLoc = src; // TODO add a LazySrcLoc that points at mut token const init_src: LazySrcLoc = src; // TODO add a LazySrcLoc that points at init expr @@ -7131,6 +7128,7 @@ fn analyzeSlice( ptr_child.isVolatilePtr(), return_ptr_size, ); + _ = return_type; return sema.mod.fail(&block.base, src, "TODO implement analysis of slice", .{}); } diff --git a/src/ThreadPool.zig b/src/ThreadPool.zig index e66742b49e..4a7fa8cb9b 100644 --- a/src/ThreadPool.zig +++ b/src/ThreadPool.zig @@ -101,7 +101,7 @@ pub fn deinit(self: *ThreadPool) void { pub fn spawn(self: *ThreadPool, comptime func: anytype, args: anytype) !void { if (std.builtin.single_threaded) { - const result = @call(.{}, func, args); + @call(.{}, func, args); return; } @@ -114,7 +114,7 @@ pub fn spawn(self: *ThreadPool, comptime func: anytype, args: anytype) !void { fn runFn(runnable: *Runnable) void { const run_node = @fieldParentPtr(RunQueue.Node, "data", runnable); const closure = @fieldParentPtr(@This(), "run_node", run_node); - const result = @call(.{}, func, closure.arguments); + @call(.{}, func, closure.arguments); const held = closure.pool.lock.acquire(); defer held.release(); diff --git a/src/Zir.zig b/src/Zir.zig index 0c8855bbc9..e743adb3ed 100644 --- a/src/Zir.zig +++ b/src/Zir.zig @@ -3176,6 +3176,7 @@ const Writer = struct { inst: Inst.Index, ) (@TypeOf(stream).Error || error{OutOfMemory})!void { const inst_data = self.code.instructions.items(.data)[inst].array_type_sentinel; + _ = inst_data; try stream.writeAll("TODO)"); } @@ -3213,6 +3214,7 @@ const Writer = struct { inst: Inst.Index, ) (@TypeOf(stream).Error || error{OutOfMemory})!void { const inst_data = self.code.instructions.items(.data)[inst].ptr_type; + _ = inst_data; try stream.writeAll("TODO)"); } @@ -4739,7 +4741,6 @@ fn findDeclsSwitch( var extra_index: usize = special.end; var scalar_i: usize = 0; while (scalar_i < extra.data.cases_len) : (scalar_i += 1) { - const item_ref = @intToEnum(Inst.Ref, zir.extra[extra_index]); extra_index += 1; const body_len = zir.extra[extra_index]; extra_index += 1; @@ -4779,7 +4780,6 @@ fn findDeclsSwitchMulti( { var scalar_i: usize = 0; while (scalar_i < extra.data.scalar_cases_len) : (scalar_i += 1) { - const item_ref = @intToEnum(Inst.Ref, zir.extra[extra_index]); extra_index += 1; const body_len = zir.extra[extra_index]; extra_index += 1; @@ -4800,12 +4800,11 @@ fn findDeclsSwitchMulti( extra_index += 1; const items = zir.refSlice(extra_index, items_len); extra_index += items_len; + _ = items; var range_i: usize = 0; while (range_i < ranges_len) : (range_i += 1) { - const item_first = @intToEnum(Inst.Ref, zir.extra[extra_index]); extra_index += 1; - const item_last = @intToEnum(Inst.Ref, zir.extra[extra_index]); extra_index += 1; } diff --git a/src/codegen.zig b/src/codegen.zig index 2b3c10b762..f2eec8cd8b 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -118,7 +118,6 @@ pub fn generateSymbol( if (typed_value.ty.sentinel()) |sentinel| { try code.ensureCapacity(code.items.len + payload.data.len + 1); code.appendSliceAssumeCapacity(payload.data); - const prev_len = code.items.len; switch (try generateSymbol(bin_file, src_loc, .{ .ty = typed_value.ty.elemType(), .val = sentinel, diff --git a/src/codegen/c.zig b/src/codegen/c.zig index 7ebecb45c9..1100626553 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -1107,7 +1107,6 @@ fn genAsm(o: *Object, as: *Inst.Assembly) !CValue { for (as.inputs) |i, index| { if (i[0] == '{' and i[i.len - 1] == '}') { const reg = i[1 .. i.len - 1]; - const arg = as.args[index]; if (index > 0) { try writer.writeAll(", "); } diff --git a/src/codegen/spirv.zig b/src/codegen/spirv.zig index 3bff09bd8d..9e0cd19f6f 100644 --- a/src/codegen/spirv.zig +++ b/src/codegen/spirv.zig @@ -714,7 +714,6 @@ pub const DeclGen = struct { return self.fail(inst.base.src, "TODO: SPIR-V backend: binary operations for strange integers", .{}); } - const is_bool = info.class == .bool; const is_float = info.class == .float; const is_signed = info.signedness == .signed; // **Note**: All these operations must be valid for vectors as well! @@ -802,8 +801,6 @@ pub const DeclGen = struct { const result_id = self.spv.allocResultId(); const result_type_id = try self.genType(inst.base.src, inst.base.ty); - const info = try self.arithmeticTypeInfo(inst.operand.ty); - const opcode = switch (inst.base.tag) { // Bool -> bool .not => Opcode.OpLogicalNot, @@ -867,6 +864,7 @@ pub const DeclGen = struct { // are not allowed to be created from a phi node, and throw an error for those. For now, genType already throws // an error for pointers. const result_type_id = try self.genType(inst.base.src, inst.base.ty); + _ = result_type_id; try writeOpcode(&self.code, .OpPhi, 2 + @intCast(u16, incoming_blocks.items.len * 2)); // result type + result + variable/parent... diff --git a/src/codegen/wasm.zig b/src/codegen/wasm.zig index d7fe239d3b..a830ca36e0 100644 --- a/src/codegen/wasm.zig +++ b/src/codegen/wasm.zig @@ -849,7 +849,6 @@ pub const Context = struct { } fn genCall(self: *Context, inst: *Inst.Call) InnerError!WValue { - const func_inst = inst.func.castTag(.constant).?; const func_val = inst.func.value().?; const target: *Decl = blk: { @@ -1146,8 +1145,6 @@ pub const Context = struct { } fn genCmp(self: *Context, inst: *Inst.BinOp, op: std.math.CompareOperator) InnerError!WValue { - const ty = inst.lhs.ty.tag(); - // save offset, so potential conditions can insert blocks in front of // the comparison that we can later jump back to const offset = self.code.items.len; diff --git a/src/glibc.zig b/src/glibc.zig index 30bc021ced..c0afc321c9 100644 --- a/src/glibc.zig +++ b/src/glibc.zig @@ -497,7 +497,6 @@ fn add_include_dirs(comp: *Compilation, arena: *Allocator, args: *std.ArrayList( const target = comp.getTarget(); const arch = target.cpu.arch; const opt_nptl: ?[]const u8 = if (target.os.tag == .linux) "nptl" else "htl"; - const glibc = try lib_path(comp, arena, lib_libc ++ "glibc"); const s = path.sep_str; diff --git a/src/link/MachO.zig b/src/link/MachO.zig index 8c1d092f12..e82589f144 100644 --- a/src/link/MachO.zig +++ b/src/link/MachO.zig @@ -2918,7 +2918,6 @@ fn relocateSymbolTable(self: *MachO) !void { const nsyms = nlocals + nglobals + nundefs; if (symtab.nsyms < nsyms) { - const linkedit_segment = self.load_commands.items[self.linkedit_segment_cmd_index.?].Segment; const needed_size = nsyms * @sizeOf(macho.nlist_64); if (needed_size > self.allocatedSizeLinkedit(symtab.symoff)) { // Move the entire symbol table to a new location @@ -3150,7 +3149,6 @@ fn writeExportTrie(self: *MachO) !void { const nwritten = try trie.write(stream.writer()); assert(nwritten == trie.size); - const linkedit_segment = self.load_commands.items[self.linkedit_segment_cmd_index.?].Segment; const dyld_info = &self.load_commands.items[self.dyld_info_cmd_index.?].DyldInfoOnly; const allocated_size = self.allocatedSizeLinkedit(dyld_info.export_off); const needed_size = mem.alignForwardGeneric(u64, buffer.len, @alignOf(u64)); @@ -3357,7 +3355,6 @@ fn populateLazyBindOffsetsInStubHelper(self: *MachO, buffer: []const u8) !void { error.EndOfStream => break, else => return err, }; - const imm: u8 = inst & macho.BIND_IMMEDIATE_MASK; const opcode: u8 = inst & macho.BIND_OPCODE_MASK; switch (opcode) { diff --git a/src/link/MachO/DebugSymbols.zig b/src/link/MachO/DebugSymbols.zig index ca6e5157b3..218911f7ab 100644 --- a/src/link/MachO/DebugSymbols.zig +++ b/src/link/MachO/DebugSymbols.zig @@ -500,7 +500,6 @@ pub fn flushModule(self: *DebugSymbols, allocator: *Allocator, options: link.Opt if (self.debug_aranges_section_dirty) { const dwarf_segment = &self.load_commands.items[self.dwarf_segment_cmd_index.?].Segment; const debug_aranges_sect = &dwarf_segment.sections.items[self.debug_aranges_section_index.?]; - const debug_info_sect = dwarf_segment.sections.items[self.debug_info_section_index.?]; var di_buf = std.ArrayList(u8).init(allocator); defer di_buf.deinit(); @@ -844,7 +843,6 @@ fn relocateSymbolTable(self: *DebugSymbols) !void { const nsyms = nlocals + nglobals; if (symtab.nsyms < nsyms) { - const linkedit_segment = self.load_commands.items[self.linkedit_segment_cmd_index.?].Segment; const needed_size = nsyms * @sizeOf(macho.nlist_64); if (needed_size > self.allocatedSizeLinkedit(symtab.symoff)) { // Move the entire symbol table to a new location @@ -904,11 +902,6 @@ pub fn updateDeclLineNumber(self: *DebugSymbols, module: *Module, decl: *const M const tracy = trace(@src()); defer tracy.end(); - const tree = decl.namespace.file_scope.tree; - const node_tags = tree.nodes.items(.tag); - const node_datas = tree.nodes.items(.data); - const token_starts = tree.tokens.items(.start); - const func = decl.val.castTag(.function).?.data; const line_off = @intCast(u28, decl.src_line + func.lbrace_line); diff --git a/src/link/MachO/Object.zig b/src/link/MachO/Object.zig index c4a044b446..f9c33bfa5c 100644 --- a/src/link/MachO/Object.zig +++ b/src/link/MachO/Object.zig @@ -478,7 +478,6 @@ pub fn parseDebugInfo(self: *Object) !void { self.tu_path = try std.fs.path.join(self.allocator, &[_][]const u8{ comp_dir, name }); self.tu_mtime = mtime: { - var buffer: [std.fs.MAX_PATH_BYTES]u8 = undefined; const stat = try self.file.?.stat(); break :mtime @intCast(u64, @divFloor(stat.mtime, 1_000_000_000)); }; diff --git a/src/link/MachO/Zld.zig b/src/link/MachO/Zld.zig index 2c8b77d983..4b19891c77 100644 --- a/src/link/MachO/Zld.zig +++ b/src/link/MachO/Zld.zig @@ -432,7 +432,6 @@ fn mapAndUpdateSections( fn updateMetadata(self: *Zld) !void { for (self.objects.items) |object| { - const object_seg = object.load_commands.items[object.segment_cmd_index.?].Segment; const text_seg = &self.load_commands.items[self.text_segment_cmd_index.?].Segment; const data_const_seg = &self.load_commands.items[self.data_const_segment_cmd_index.?].Segment; const data_seg = &self.load_commands.items[self.data_segment_cmd_index.?].Segment; @@ -1294,7 +1293,6 @@ fn allocateLinkeditSegment(self: *Zld) void { } fn allocateSegment(self: *Zld, index: u16, offset: u64) !void { - const base_vmaddr = self.load_commands.items[self.pagezero_segment_cmd_index.?].Segment.inner.vmsize; const seg = &self.load_commands.items[index].Segment; // Allocate the sections according to their alignment at the beginning of the segment. @@ -1427,7 +1425,6 @@ fn writeStubHelperCommon(self: *Zld) !void { const got = &data_const_segment.sections.items[self.got_section_index.?]; const data_segment = &self.load_commands.items[self.data_segment_cmd_index.?].Segment; const data = &data_segment.sections.items[self.data_section_index.?]; - const la_symbol_ptr = data_segment.sections.items[self.la_symbol_ptr_section_index.?]; self.stub_helper_stubs_start_off = blk: { switch (self.arch.?) { @@ -2654,7 +2651,6 @@ fn setEntryPoint(self: *Zld) !void { // TODO we should respect the -entry flag passed in by the user to set a custom // entrypoint. For now, assume default of `_main`. const seg = self.load_commands.items[self.text_segment_cmd_index.?].Segment; - const text = seg.sections.items[self.text_section_index.?]; const sym = self.globals.get("_main") orelse return error.MissingMainEntrypoint; const entry_sym = sym.cast(Symbol.Regular) orelse unreachable; const ec = &self.load_commands.items[self.main_cmd_index.?].Main; @@ -2862,7 +2858,6 @@ fn populateLazyBindOffsetsInStubHelper(self: *Zld, buffer: []const u8) !void { error.EndOfStream => break, else => return err, }; - const imm: u8 = inst & macho.BIND_IMMEDIATE_MASK; const opcode: u8 = inst & macho.BIND_OPCODE_MASK; switch (opcode) { @@ -2959,6 +2954,7 @@ fn writeDebugInfo(self: *Zld) !void { for (self.objects.items) |object| { const tu_path = object.tu_path orelse continue; const tu_mtime = object.tu_mtime orelse continue; + _ = tu_mtime; const dirname = std.fs.path.dirname(tu_path) orelse "./"; // Current dir try stabs.append(.{ diff --git a/src/link/MachO/reloc/x86_64.zig b/src/link/MachO/reloc/x86_64.zig index 2a457fdea2..6df68b6b3e 100644 --- a/src/link/MachO/reloc/x86_64.zig +++ b/src/link/MachO/reloc/x86_64.zig @@ -175,7 +175,6 @@ pub const Parser = struct { const rel_type = @intToEnum(macho.reloc_type_x86_64, rel.r_type); const target = Relocation.Target.from_reloc(rel, parser.symbols); - const is_extern = rel.r_extern == 1; const offset = @intCast(u32, rel.r_address); const inst = parser.code[offset..][0..4]; diff --git a/src/link/Wasm.zig b/src/link/Wasm.zig index 3fcdc04e71..35da20291d 100644 --- a/src/link/Wasm.zig +++ b/src/link/Wasm.zig @@ -496,7 +496,6 @@ pub fn flushModule(self: *Wasm, comp: *Compilation) !void { if (data_size != 0) { const header_offset = try reserveVecSectionHeader(file); const writer = file.writer(); - var len: u32 = 0; // index to memory section (currently, there can only be 1 memory section in wasm) try leb.writeULEB128(writer, @as(u32, 0)); diff --git a/src/main.zig b/src/main.zig index 83548dc327..4540eaa397 100644 --- a/src/main.zig +++ b/src/main.zig @@ -3749,7 +3749,6 @@ pub fn cmdAstCheck( var color: Color = .auto; var want_output_text = false; - var have_zig_source_file = false; var zig_source_file: ?[]const u8 = null; var i: usize = 0; diff --git a/src/mingw.zig b/src/mingw.zig index ca887dd940..42d1ac47db 100644 --- a/src/mingw.zig +++ b/src/mingw.zig @@ -372,11 +372,9 @@ pub fn buildImportLib(comp: *Compilation, lib_name: []const u8) !void { try child.spawn(); - const stdout_reader = child.stdout.?.reader(); const stderr_reader = child.stderr.?.reader(); // TODO https://github.com/ziglang/zig/issues/6343 - const stdout = try stdout_reader.readAllAlloc(arena, std.math.maxInt(u32)); const stderr = try stderr_reader.readAllAlloc(arena, 10 * 1024 * 1024); const term = child.wait() catch |err| { diff --git a/src/musl.zig b/src/musl.zig index 4f641a4c7c..fcdc503ccc 100644 --- a/src/musl.zig +++ b/src/musl.zig @@ -143,7 +143,6 @@ pub fn buildCRTFile(comp: *Compilation, crt_file: CRTFile) !void { const dirname = path.dirname(src_file).?; const basename = path.basename(src_file); const noextbasename = basename[0 .. basename.len - std.fs.path.extension(basename).len]; - const before_arch_dir = path.dirname(dirname).?; const dirbasename = path.basename(dirname); var is_arch_specific = false; diff --git a/src/register_manager.zig b/src/register_manager.zig index 9f47526f13..6f42fd1ab1 100644 --- a/src/register_manager.zig +++ b/src/register_manager.zig @@ -281,12 +281,6 @@ test "default state" { }; defer function.deinit(); - var mock_instruction = ir.Inst{ - .tag = .breakpoint, - .ty = Type.initTag(.void), - .src = .unneeded, - }; - try expect(!function.register_manager.isRegAllocated(.r2)); try expect(!function.register_manager.isRegAllocated(.r3)); try expect(function.register_manager.isRegFree(.r2)); @@ -365,12 +359,6 @@ test "tryAllocRegs" { }; defer function.deinit(); - var mock_instruction = ir.Inst{ - .tag = .breakpoint, - .ty = Type.initTag(.void), - .src = .unneeded, - }; - try expectEqual([_]MockRegister2{ .r0, .r1, .r2 }, function.register_manager.tryAllocRegs(3, .{ null, null, null }, &.{}).?); // Exceptions diff --git a/src/translate_c.zig b/src/translate_c.zig index 4b07618391..5f1db7fb20 100644 --- a/src/translate_c.zig +++ b/src/translate_c.zig @@ -1321,7 +1321,6 @@ fn transConvertVectorExpr( const src_type = qualTypeCanon(src_expr.getType()); const src_vector_ty = @ptrCast(*const clang.VectorType, src_type); const src_element_qt = src_vector_ty.getElementType(); - const src_element_type_node = try transQualType(c, &block_scope.base, src_element_qt, base_stmt.getBeginLoc()); const src_expr_node = try transExpr(c, &block_scope.base, src_expr, .used); @@ -3802,7 +3801,6 @@ fn transBinaryConditionalOperator(c: *Context, scope: *Scope, stmt: *const clang const res_is_bool = qualTypeIsBoolean(qt); const casted_stmt = @ptrCast(*const clang.AbstractConditionalOperator, stmt); const cond_expr = casted_stmt.getCond(); - const true_expr = casted_stmt.getTrueExpr(); const false_expr = casted_stmt.getFalseExpr(); // c: (cond_expr)?:(false_expr) @@ -4336,8 +4334,6 @@ fn transCreateNodeNumber(c: *Context, num: anytype, num_kind: enum { int, float } fn transCreateNodeMacroFn(c: *Context, name: []const u8, ref: Node, proto_alias: *ast.Payload.Func) !Node { - const scope = &c.global_scope.base; - var fn_params = std.ArrayList(ast.Payload.Param).init(c.gpa); defer fn_params.deinit(); diff --git a/src/type.zig b/src/type.zig index 549b15f366..0b30a3de02 100644 --- a/src/type.zig +++ b/src/type.zig @@ -3013,7 +3013,7 @@ pub const Type = extern union { .base = .{ .tag = t }, .data = data, }; - return Type{ .ptr_otherwise = &ptr.base }; + return file_struct.Type{ .ptr_otherwise = &ptr.base }; } pub fn Data(comptime t: Tag) type { @@ -3163,7 +3163,6 @@ pub const CType = enum { longdouble, pub fn sizeInBits(self: CType, target: Target) u16 { - const arch = target.cpu.arch; switch (target.os.tag) { .freestanding, .other => switch (target.cpu.arch) { .msp430 => switch (self) { diff --git a/test/behavior/async_fn.zig b/test/behavior/async_fn.zig index b0e6c548ed..f0d47fbc7f 100644 --- a/test/behavior/async_fn.zig +++ b/test/behavior/async_fn.zig @@ -13,6 +13,7 @@ test "simple coroutine suspend and resume" { resume frame; try expect(global_x == 3); const af: anyframe->void = &frame; + _ = af; resume frame; try expect(global_x == 4); } @@ -45,6 +46,7 @@ test "suspend at end of function" { fn doTheTest() !void { try expect(x == 1); const p = async suspendAtEnd(); + _ = p; try expect(x == 2); } @@ -132,6 +134,7 @@ test "@frameSize" { } fn other(param: i32) void { var local: i32 = undefined; + _ = local; suspend {} } }; @@ -181,6 +184,7 @@ test "coroutine suspend, resume" { test "coroutine suspend with block" { const p = async testSuspendBlock(); + _ = p; try expect(!global_result); resume a_promise; try expect(global_result); @@ -207,6 +211,7 @@ var await_final_result: i32 = 0; test "coroutine await" { await_seq('a'); var p = async await_amain(); + _ = p; await_seq('f'); resume await_a_promise; await_seq('i'); @@ -243,6 +248,7 @@ var early_final_result: i32 = 0; test "coroutine await early return" { early_seq('a'); var p = async early_amain(); + _ = p; early_seq('f'); try expect(early_final_result == 1234); try expect(std.mem.eql(u8, &early_points, "abcdef")); @@ -276,6 +282,7 @@ test "async function with dot syntax" { } }; const p = async S.foo(); + _ = p; try expect(S.y == 2); } @@ -362,11 +369,13 @@ test "error return trace across suspend points - early return" { const p = nonFailing(); resume p; const p2 = async printTrace(p); + _ = p2; } test "error return trace across suspend points - async return" { const p = nonFailing(); const p2 = async printTrace(p); + _ = p2; resume p; } @@ -396,6 +405,7 @@ fn printTrace(p: anyframe->(anyerror!void)) callconv(.Async) void { test "break from suspend" { var my_result: i32 = 1; const p = async testBreakFromSuspend(&my_result); + _ = p; try std.testing.expect(my_result == 2); } fn testBreakFromSuspend(my_result: *i32) callconv(.Async) void { @@ -619,6 +629,7 @@ test "returning a const error from async function" { fn amain() !void { var download_frame = async fetchUrl(10, "a string"); const download_text = try await download_frame; + _ = download_text; @panic("should not get here"); } @@ -730,6 +741,7 @@ test "alignment of local variables in async functions" { const S = struct { fn doTheTest() !void { var y: u8 = 123; + _ = y; var x: u8 align(128) = 1; try expect(@ptrToInt(&x) % 128 == 0); } @@ -742,6 +754,7 @@ test "no reason to resolve frame still works" { } fn simpleNothing() void { var x: i32 = 1234; + _ = x; } test "async call a generic function" { @@ -802,6 +815,7 @@ test "struct parameter to async function is copied to the frame" { if (x == 0) return; clobberStack(x - 1); var y: i32 = x; + _ = y; } fn bar(f: *@Frame(foo)) void { @@ -1654,6 +1668,7 @@ test "@asyncCall with pass-by-value arguments" { [_]u8{ 1, 2, 3, 4, 5 }, F2, }); + _ = frame_ptr; } test "@asyncCall with arguments having non-standard alignment" { @@ -1673,4 +1688,5 @@ test "@asyncCall with arguments having non-standard alignment" { // The function pointer must not be comptime-known. var t = S.f; var frame_ptr = @asyncCall(&buffer, {}, t, .{ F0, undefined, F1 }); + _ = frame_ptr; } diff --git a/test/behavior/atomics.zig b/test/behavior/atomics.zig index 3d808b3fb6..7ac30b57c7 100644 --- a/test/behavior/atomics.zig +++ b/test/behavior/atomics.zig @@ -97,7 +97,6 @@ test "cmpxchg with ptr" { test "cmpxchg with ignored result" { var x: i32 = 1234; - var ptr = &x; _ = @cmpxchgStrong(i32, &x, 1234, 5678, .Monotonic, .Monotonic); @@ -195,7 +194,6 @@ fn testAtomicRmwInt() !void { test "atomics with different types" { try testAtomicsWithType(bool, true, false); inline for (.{ u1, i4, u5, i15, u24 }) |T| { - var x: T = 0; try testAtomicsWithType(T, 0, 1); } try testAtomicsWithType(u0, 0, 0); diff --git a/test/behavior/await_struct.zig b/test/behavior/await_struct.zig index 9e01aecc8c..229a72b9ff 100644 --- a/test/behavior/await_struct.zig +++ b/test/behavior/await_struct.zig @@ -12,6 +12,7 @@ var await_final_result = Foo{ .x = 0 }; test "coroutine await struct" { await_seq('a'); var p = async await_amain(); + _ = p; await_seq('f'); resume await_a_promise; await_seq('i'); diff --git a/test/behavior/bit_shifting.zig b/test/behavior/bit_shifting.zig index a58026e88d..c1f84a99d4 100644 --- a/test/behavior/bit_shifting.zig +++ b/test/behavior/bit_shifting.zig @@ -100,5 +100,5 @@ test "comptime shr of BigInt" { } test "comptime shift safety check" { - const x = @as(usize, 42) << @sizeOf(usize); + _ = @as(usize, 42) << @sizeOf(usize); } diff --git a/test/behavior/bugs/1467.zig b/test/behavior/bugs/1467.zig index 71c55dc59c..e062e66c8d 100644 --- a/test/behavior/bugs/1467.zig +++ b/test/behavior/bugs/1467.zig @@ -4,4 +4,5 @@ pub const S = extern struct { }; test "bug 1467" { const s: S = undefined; + _ = s; } diff --git a/test/behavior/bugs/1500.zig b/test/behavior/bugs/1500.zig index e24cfe5a9c..5683d53721 100644 --- a/test/behavior/bugs/1500.zig +++ b/test/behavior/bugs/1500.zig @@ -7,4 +7,8 @@ const B = fn (A) void; test "allow these dependencies" { var a: A = undefined; var b: B = undefined; + if (false) { + a; + b; + } } diff --git a/test/behavior/bugs/2346.zig b/test/behavior/bugs/2346.zig index c8cea34813..52c1e3ac6b 100644 --- a/test/behavior/bugs/2346.zig +++ b/test/behavior/bugs/2346.zig @@ -1,6 +1,8 @@ test "fixed" { const a: *void = undefined; const b: *[1]void = a; + _ = b; const c: *[0]u8 = undefined; const d: []u8 = c; + _ = d; } diff --git a/test/behavior/bugs/3586.zig b/test/behavior/bugs/3586.zig index 7bb1ba5d31..047cb5d205 100644 --- a/test/behavior/bugs/3586.zig +++ b/test/behavior/bugs/3586.zig @@ -8,4 +8,5 @@ test "fixed" { var ctr = Container{ .params = NoteParams{}, }; + _ = ctr; } diff --git a/test/behavior/bugs/4954.zig b/test/behavior/bugs/4954.zig index b5a9bdf851..3dea934895 100644 --- a/test/behavior/bugs/4954.zig +++ b/test/behavior/bugs/4954.zig @@ -1,5 +1,5 @@ fn f(buf: []u8) void { - var ptr = &buf[@sizeOf(u32)]; + _ = &buf[@sizeOf(u32)]; } test "crash" { diff --git a/test/behavior/bugs/7003.zig b/test/behavior/bugs/7003.zig index 75fc9068b1..3568f36d2b 100644 --- a/test/behavior/bugs/7003.zig +++ b/test/behavior/bugs/7003.zig @@ -5,4 +5,5 @@ test "@Type should resolve its children types" { comptime var sparse_info = @typeInfo(anyerror!sparse); sparse_info.ErrorUnion.payload = dense; const B = @Type(sparse_info); + _ = B; } diff --git a/test/behavior/bugs/828.zig b/test/behavior/bugs/828.zig index 50ae0fd279..8b3f1bf99e 100644 --- a/test/behavior/bugs/828.zig +++ b/test/behavior/bugs/828.zig @@ -30,4 +30,8 @@ test "comptime struct return should not return the same instance" { //a second parameter is required to trigger the bug const ValA = constCount(&CountBy.One, 12); const ValB = constCount(&CountBy.One, 15); + if (false) { + ValA; + ValB; + } } diff --git a/test/behavior/cast.zig b/test/behavior/cast.zig index 864579c8f0..ff3b11b85d 100644 --- a/test/behavior/cast.zig +++ b/test/behavior/cast.zig @@ -102,6 +102,7 @@ fn castToOptionalTypeError(z: i32) !void { const f = z; const g: anyerror!?i32 = f; + _ = g catch {}; const a = A{ .a = z }; const b: anyerror!?A = a; @@ -114,7 +115,9 @@ test "implicitly cast from int to anyerror!?T" { } fn implicitIntLitToOptional() void { const f: ?i32 = 1; + _ = f; const g: anyerror!?i32 = 1; + _ = g catch {}; } test "return null from fn() anyerror!?&T" { diff --git a/test/behavior/enum.zig b/test/behavior/enum.zig index a1a4bbdca8..dbda9f3238 100644 --- a/test/behavior/enum.zig +++ b/test/behavior/enum.zig @@ -111,6 +111,8 @@ test "enum type" { .y = 5678, }, }; + try expect(foo1.One == 13); + try expect(foo2.Two.x == 1234 and foo2.Two.y == 5678); const bar = Bar.B; try expect(bar == Bar.B); diff --git a/test/behavior/error.zig b/test/behavior/error.zig index c0b4dc0231..70cf2c24c9 100644 --- a/test/behavior/error.zig +++ b/test/behavior/error.zig @@ -103,6 +103,7 @@ fn testErrorSetType() !void { const a: MyErrSet!i32 = 5678; const b: MyErrSet!i32 = MyErrSet.OutOfMemory; + try expect(b catch error.OutOfMemory == error.OutOfMemory); if (a) |value| try expect(value == 5678) else |err| switch (err) { error.OutOfMemory => unreachable, @@ -162,6 +163,7 @@ fn testErrToIntWithOnePossibleValue( test "empty error union" { const x = error{} || error{}; + _ = x; } test "error union peer type resolution" { @@ -204,6 +206,7 @@ fn entry() void { fn foo2(f: fn () anyerror!void) void { const x = f(); + x catch {}; } fn bar2() (error{}!void) {} @@ -338,6 +341,7 @@ test "optional error set is the same size as error set" { test "debug info for optional error set" { const SomeError = error{Hello}; var a_local_variable: ?SomeError = null; + _ = a_local_variable; } test "nested catch" { @@ -349,7 +353,7 @@ test "nested catch" { return error.Wrong; } fn func() anyerror!Foo { - const x = fail() catch + _ = fail() catch fail() catch return error.Bad; unreachable; diff --git a/test/behavior/eval.zig b/test/behavior/eval.zig index f86ee79761..5f186a8825 100644 --- a/test/behavior/eval.zig +++ b/test/behavior/eval.zig @@ -184,6 +184,7 @@ fn testTryToTrickEvalWithRuntimeIf(b: bool) usize { comptime var i: usize = 0; inline while (i < 10) : (i += 1) { const result = if (b) false else true; + _ = result; } comptime { return i; @@ -195,6 +196,7 @@ test "inlined loop has array literal with elided runtime scope on first iteratio comptime var i: usize = 0; inline while (i < 2) : (i += 1) { const result = if (i == 0) [1]i32{2} else runtime; + _ = result; } comptime { try expect(i == 2); diff --git a/test/behavior/import.zig b/test/behavior/import.zig index 2b037637da..2018ee0b93 100644 --- a/test/behavior/import.zig +++ b/test/behavior/import.zig @@ -18,5 +18,5 @@ test "import in non-toplevel scope" { } test "import empty file" { - const empty = @import("import/empty.zig"); + _ = @import("import/empty.zig"); } diff --git a/test/behavior/inttoptr.zig b/test/behavior/inttoptr.zig index de6e8e3a1e..7c07a63b7c 100644 --- a/test/behavior/inttoptr.zig +++ b/test/behavior/inttoptr.zig @@ -5,7 +5,7 @@ test "casting random address to function pointer" { fn randomAddressToFunction() void { var addr: usize = 0xdeadbeef; - var ptr = @intToPtr(fn () void, addr); + _ = @intToPtr(fn () void, addr); } test "mutate through ptr initialized with constant intToPtr value" { diff --git a/test/behavior/ir_block_deps.zig b/test/behavior/ir_block_deps.zig index aacb7b7658..09c1532bff 100644 --- a/test/behavior/ir_block_deps.zig +++ b/test/behavior/ir_block_deps.zig @@ -5,6 +5,7 @@ fn foo(id: u64) !i32 { 1 => getErrInt(), 2 => { const size = try getErrInt(); + _ = size; return try getErrInt(); }, else => error.ItBroke, diff --git a/test/behavior/math.zig b/test/behavior/math.zig index e615c36551..5c746816e2 100644 --- a/test/behavior/math.zig +++ b/test/behavior/math.zig @@ -333,6 +333,12 @@ test "quad hex float literal parsing in range" { const b = 0x1.dedafcff354b6ae9758763545432p-9; const c = 0x1.2f34dd5f437e849b4baab754cdefp+4534; const d = 0x1.edcbff8ad76ab5bf46463233214fp-435; + if (false) { + a; + b; + c; + d; + } } test "quad hex float literal parsing accurate" { @@ -457,6 +463,11 @@ test "hex float literal within range" { const a = 0x1.0p16383; const b = 0x0.1p16387; const c = 0x1.0p-16382; + if (false) { + a; + b; + c; + } } test "truncating shift left" { diff --git a/test/behavior/misc.zig b/test/behavior/misc.zig index 35f088eb4d..64e6166e61 100644 --- a/test/behavior/misc.zig +++ b/test/behavior/misc.zig @@ -234,6 +234,7 @@ test "compile time global reinterpret" { test "explicit cast maybe pointers" { const a: ?*i32 = undefined; const b: ?*f32 = @ptrCast(?*f32, a); + _ = b; } test "generic malloc free" { diff --git a/test/behavior/null.zig b/test/behavior/null.zig index 45401f621a..95c65b829b 100644 --- a/test/behavior/null.zig +++ b/test/behavior/null.zig @@ -39,6 +39,7 @@ test "test maybe object and get a pointer to the inner value" { test "rhs maybe unwrap return" { const x: ?bool = true; const y = x orelse return; + _ = y; } test "maybe return" { diff --git a/test/behavior/optional.zig b/test/behavior/optional.zig index 75b4311159..5803e854be 100644 --- a/test/behavior/optional.zig +++ b/test/behavior/optional.zig @@ -128,6 +128,7 @@ test "nested orelse" { const x = maybe() orelse maybe() orelse return null; + _ = x; unreachable; } const Foo = struct { diff --git a/test/behavior/pointers.zig b/test/behavior/pointers.zig index a078e58ab5..dede1effe1 100644 --- a/test/behavior/pointers.zig +++ b/test/behavior/pointers.zig @@ -65,6 +65,10 @@ test "assigning integer to C pointer" { var x: i32 = 0; var ptr: [*c]u8 = 0; var ptr2: [*c]u8 = x; + if (false) { + ptr; + ptr2; + } } test "implicit cast single item pointer to C pointer and back" { @@ -78,7 +82,6 @@ test "implicit cast single item pointer to C pointer and back" { test "C pointer comparison and arithmetic" { const S = struct { fn doTheTest() !void { - var one: usize = 1; var ptr1: [*c]u32 = 0; var ptr2 = ptr1 + 10; try expect(ptr1 == 0); @@ -325,6 +328,7 @@ test "@ptrToInt on null optional at comptime" { { const pointer = @intToPtr(?*u8, 0x000); const x = @ptrToInt(pointer); + _ = x; comptime try expect(0 == @ptrToInt(pointer)); } { diff --git a/test/behavior/sizeof_and_typeof.zig b/test/behavior/sizeof_and_typeof.zig index d241448e05..60951a4c5a 100644 --- a/test/behavior/sizeof_and_typeof.zig +++ b/test/behavior/sizeof_and_typeof.zig @@ -195,11 +195,11 @@ test "branching logic inside @TypeOf" { fn fn1(alpha: bool) void { const n: usize = 7; - const v = if (alpha) n else @sizeOf(usize); + _ = if (alpha) n else @sizeOf(usize); } test "lazy @sizeOf result is checked for definedness" { - const f = fn1; + _ = fn1; } test "@bitSizeOf" { diff --git a/test/behavior/slice.zig b/test/behavior/slice.zig index d324c34477..38d0faa25a 100644 --- a/test/behavior/slice.zig +++ b/test/behavior/slice.zig @@ -104,6 +104,7 @@ test "obtaining a null terminated slice" { // now we obtain a null terminated slice: const ptr = buf[0..3 :0]; + _ = ptr; var runtime_len: usize = 3; const ptr2 = buf[0..runtime_len :0]; diff --git a/test/behavior/slice_sentinel_comptime.zig b/test/behavior/slice_sentinel_comptime.zig index 79da5d3c52..368860547e 100644 --- a/test/behavior/slice_sentinel_comptime.zig +++ b/test/behavior/slice_sentinel_comptime.zig @@ -3,6 +3,7 @@ test "comptime slice-sentinel in bounds (unterminated)" { comptime { var target = [_]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{undefined} ** 10; const slice = target[0..3 :'d']; + _ = slice; } // ptr_array @@ -10,6 +11,7 @@ test "comptime slice-sentinel in bounds (unterminated)" { var buf = [_]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{undefined} ** 10; var target = &buf; const slice = target[0..3 :'d']; + _ = slice; } // vector_ConstPtrSpecialBaseArray @@ -17,6 +19,7 @@ test "comptime slice-sentinel in bounds (unterminated)" { var buf = [_]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{undefined} ** 10; var target: [*]u8 = &buf; const slice = target[0..3 :'d']; + _ = slice; } // vector_ConstPtrSpecialRef @@ -24,6 +27,7 @@ test "comptime slice-sentinel in bounds (unterminated)" { var buf = [_]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{undefined} ** 10; var target: [*]u8 = @ptrCast([*]u8, &buf); const slice = target[0..3 :'d']; + _ = slice; } // cvector_ConstPtrSpecialBaseArray @@ -31,6 +35,7 @@ test "comptime slice-sentinel in bounds (unterminated)" { var buf = [_]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{undefined} ** 10; var target: [*c]u8 = &buf; const slice = target[0..3 :'d']; + _ = slice; } // cvector_ConstPtrSpecialRef @@ -38,6 +43,7 @@ test "comptime slice-sentinel in bounds (unterminated)" { var buf = [_]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{undefined} ** 10; var target: [*c]u8 = @ptrCast([*c]u8, &buf); const slice = target[0..3 :'d']; + _ = slice; } // slice @@ -45,6 +51,7 @@ test "comptime slice-sentinel in bounds (unterminated)" { var buf = [_]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{undefined} ** 10; var target: []u8 = &buf; const slice = target[0..3 :'d']; + _ = slice; } } @@ -53,6 +60,7 @@ test "comptime slice-sentinel in bounds (end,unterminated)" { comptime { var target = [_]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{0xff} ** 10; const slice = target[0..13 :0xff]; + _ = slice; } // ptr_array @@ -60,6 +68,7 @@ test "comptime slice-sentinel in bounds (end,unterminated)" { var buf = [_]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{0xff} ** 10; var target = &buf; const slice = target[0..13 :0xff]; + _ = slice; } // vector_ConstPtrSpecialBaseArray @@ -67,6 +76,7 @@ test "comptime slice-sentinel in bounds (end,unterminated)" { var buf = [_]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{0xff} ** 10; var target: [*]u8 = &buf; const slice = target[0..13 :0xff]; + _ = slice; } // vector_ConstPtrSpecialRef @@ -74,6 +84,7 @@ test "comptime slice-sentinel in bounds (end,unterminated)" { var buf = [_]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{0xff} ** 10; var target: [*]u8 = @ptrCast([*]u8, &buf); const slice = target[0..13 :0xff]; + _ = slice; } // cvector_ConstPtrSpecialBaseArray @@ -81,6 +92,7 @@ test "comptime slice-sentinel in bounds (end,unterminated)" { var buf = [_]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{0xff} ** 10; var target: [*c]u8 = &buf; const slice = target[0..13 :0xff]; + _ = slice; } // cvector_ConstPtrSpecialRef @@ -88,6 +100,7 @@ test "comptime slice-sentinel in bounds (end,unterminated)" { var buf = [_]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{0xff} ** 10; var target: [*c]u8 = @ptrCast([*c]u8, &buf); const slice = target[0..13 :0xff]; + _ = slice; } // slice @@ -95,6 +108,7 @@ test "comptime slice-sentinel in bounds (end,unterminated)" { var buf = [_]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{0xff} ** 10; var target: []u8 = &buf; const slice = target[0..13 :0xff]; + _ = slice; } } @@ -103,6 +117,7 @@ test "comptime slice-sentinel in bounds (terminated)" { comptime { var target = [_:0]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{undefined} ** 10; const slice = target[0..3 :'d']; + _ = slice; } // ptr_array @@ -110,6 +125,7 @@ test "comptime slice-sentinel in bounds (terminated)" { var buf = [_:0]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{undefined} ** 10; var target = &buf; const slice = target[0..3 :'d']; + _ = slice; } // vector_ConstPtrSpecialBaseArray @@ -117,6 +133,7 @@ test "comptime slice-sentinel in bounds (terminated)" { var buf = [_:0]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{undefined} ** 10; var target: [*]u8 = &buf; const slice = target[0..3 :'d']; + _ = slice; } // vector_ConstPtrSpecialRef @@ -124,6 +141,7 @@ test "comptime slice-sentinel in bounds (terminated)" { var buf = [_:0]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{undefined} ** 10; var target: [*]u8 = @ptrCast([*]u8, &buf); const slice = target[0..3 :'d']; + _ = slice; } // cvector_ConstPtrSpecialBaseArray @@ -131,6 +149,7 @@ test "comptime slice-sentinel in bounds (terminated)" { var buf = [_:0]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{undefined} ** 10; var target: [*c]u8 = &buf; const slice = target[0..3 :'d']; + _ = slice; } // cvector_ConstPtrSpecialRef @@ -138,6 +157,7 @@ test "comptime slice-sentinel in bounds (terminated)" { var buf = [_:0]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{undefined} ** 10; var target: [*c]u8 = @ptrCast([*c]u8, &buf); const slice = target[0..3 :'d']; + _ = slice; } // slice @@ -145,6 +165,7 @@ test "comptime slice-sentinel in bounds (terminated)" { var buf = [_:0]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{undefined} ** 10; var target: []u8 = &buf; const slice = target[0..3 :'d']; + _ = slice; } } @@ -153,6 +174,7 @@ test "comptime slice-sentinel in bounds (on target sentinel)" { comptime { var target = [_:0]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{undefined} ** 10; const slice = target[0..14 :0]; + _ = slice; } // ptr_array @@ -160,6 +182,7 @@ test "comptime slice-sentinel in bounds (on target sentinel)" { var buf = [_:0]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{undefined} ** 10; var target = &buf; const slice = target[0..14 :0]; + _ = slice; } // vector_ConstPtrSpecialBaseArray @@ -167,6 +190,7 @@ test "comptime slice-sentinel in bounds (on target sentinel)" { var buf = [_:0]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{undefined} ** 10; var target: [*]u8 = &buf; const slice = target[0..14 :0]; + _ = slice; } // vector_ConstPtrSpecialRef @@ -174,6 +198,7 @@ test "comptime slice-sentinel in bounds (on target sentinel)" { var buf = [_:0]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{undefined} ** 10; var target: [*]u8 = @ptrCast([*]u8, &buf); const slice = target[0..14 :0]; + _ = slice; } // cvector_ConstPtrSpecialBaseArray @@ -181,6 +206,7 @@ test "comptime slice-sentinel in bounds (on target sentinel)" { var buf = [_:0]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{undefined} ** 10; var target: [*c]u8 = &buf; const slice = target[0..14 :0]; + _ = slice; } // cvector_ConstPtrSpecialRef @@ -188,6 +214,7 @@ test "comptime slice-sentinel in bounds (on target sentinel)" { var buf = [_:0]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{undefined} ** 10; var target: [*c]u8 = @ptrCast([*c]u8, &buf); const slice = target[0..14 :0]; + _ = slice; } // slice @@ -195,5 +222,6 @@ test "comptime slice-sentinel in bounds (on target sentinel)" { var buf = [_:0]u8{ 'a', 'b', 'c', 'd' } ++ [_]u8{undefined} ** 10; var target: []u8 = &buf; const slice = target[0..14 :0]; + _ = slice; } } diff --git a/test/behavior/struct.zig b/test/behavior/struct.zig index 9773680922..a400ffa343 100644 --- a/test/behavior/struct.zig +++ b/test/behavior/struct.zig @@ -584,13 +584,14 @@ test "default struct initialization fields" { const x = S{ .b = 5, }; - if (x.a + x.b != 1239) { - @compileError("it should be comptime known"); - } var five: i32 = 5; const y = S{ .b = five, }; + if (x.a + x.b != 1239) { + @compileError("it should be comptime known"); + } + try expectEqual(y, x); try expectEqual(1239, x.a + x.b); } @@ -654,6 +655,7 @@ test "zero-bit field in packed struct" { y: void, }; var x: S = undefined; + _ = x; } test "struct field init with catch" { diff --git a/test/behavior/switch.zig b/test/behavior/switch.zig index 9d05e3edea..ad32d2edaf 100644 --- a/test/behavior/switch.zig +++ b/test/behavior/switch.zig @@ -103,6 +103,7 @@ fn switchProngWithVarFn(a: SwitchProngWithVarEnum) !void { }, SwitchProngWithVarEnum.Meh => |x| { const v: void = x; + _ = v; }, } } @@ -454,6 +455,7 @@ test "switch variable for range and multiple prongs" { } } }; + _ = S; } var state: u32 = 0; diff --git a/test/behavior/tuple.zig b/test/behavior/tuple.zig index 29d44d582f..632e5be013 100644 --- a/test/behavior/tuple.zig +++ b/test/behavior/tuple.zig @@ -105,6 +105,7 @@ test "tuple initializer for var" { .id = @as(usize, 2), .name = Bytes{ .id = 20 }, }; + _ = tmp; } }; diff --git a/test/behavior/type.zig b/test/behavior/type.zig index 5d12ea494f..44408a6d8e 100644 --- a/test/behavior/type.zig +++ b/test/behavior/type.zig @@ -436,6 +436,7 @@ test "Type.Fn" { }.func; const Foo = @Type(@typeInfo(@TypeOf(foo))); const foo_2: Foo = foo; + _ = foo_2; } test "Type.BoundFn" { diff --git a/test/behavior/type_info.zig b/test/behavior/type_info.zig index 6e9fbe676d..f81a9ed9be 100644 --- a/test/behavior/type_info.zig +++ b/test/behavior/type_info.zig @@ -329,6 +329,7 @@ test "typeInfo with comptime parameter in struct fn def" { pub fn func(comptime x: f32) void {} }; comptime var info = @typeInfo(S); + _ = info; } test "type info: vectors" { diff --git a/test/behavior/union.zig b/test/behavior/union.zig index bcdd3fa247..e9e8d638ac 100644 --- a/test/behavior/union.zig +++ b/test/behavior/union.zig @@ -781,6 +781,7 @@ test "@unionInit on union w/ tag but no fields" { fn doTheTest() !void { var data: Data = .{ .no_op = .{} }; + _ = data; var o = Data.decode(&[_]u8{}); try expectEqual(Type.no_op, o); } diff --git a/test/behavior/var_args.zig b/test/behavior/var_args.zig index 8935877167..d9a8bf297e 100644 --- a/test/behavior/var_args.zig +++ b/test/behavior/var_args.zig @@ -18,7 +18,7 @@ test "add arbitrary args" { } fn readFirstVarArg(args: anytype) void { - const value = args[0]; + _ = args[0]; } test "send void arg to var args" { @@ -79,5 +79,5 @@ test "pass zero length array to var args param" { } fn doNothingWithFirstArg(args: anytype) void { - const a = args[0]; + _ = args[0]; } diff --git a/test/behavior/vector.zig b/test/behavior/vector.zig index 77793b67e6..1847640a91 100644 --- a/test/behavior/vector.zig +++ b/test/behavior/vector.zig @@ -113,6 +113,7 @@ test "array to vector" { var foo: f32 = 3.14; var arr = [4]f32{ foo, 1.5, 0.0, 0.0 }; var vec: Vector(4, f32) = arr; + _ = vec; } test "vector casts of sizes not divisable by 8" { @@ -264,6 +265,7 @@ test "initialize vector which is a struct field" { var foo = Vec4Obj{ .data = [_]f32{ 1, 2, 3, 4 }, }; + _ = foo; } }; try S.doTheTest(); diff --git a/test/behavior/void.zig b/test/behavior/void.zig index 4f49d5fca1..17778d42de 100644 --- a/test/behavior/void.zig +++ b/test/behavior/void.zig @@ -36,5 +36,5 @@ test "void optional" { test "void array as a local variable initializer" { var x = [_]void{{}} ** 1004; - var y = x[0]; + _ = x[0]; } diff --git a/test/stage2/test.zig b/test/stage2/test.zig index 5e388c8cbe..d498630329 100644 --- a/test/stage2/test.zig +++ b/test/stage2/test.zig @@ -899,6 +899,7 @@ pub fn addCases(ctx: *TestContext) !void { \\ try expect(false); \\ } \\ }; + \\ _ = S; \\} , &.{":4:13: error: invalid 'try' outside function scope"}, diff --git a/test/tests.zig b/test/tests.zig index 26f38d4e28..84830f85b4 100644 --- a/test/tests.zig +++ b/test/tests.zig @@ -525,7 +525,6 @@ pub fn addPkgTests( if (skip_single_threaded and test_target.single_threaded) continue; - const ArchTag = std.meta.Tag(std.Target.Cpu.Arch); if (test_target.disable_native and test_target.target.getOsTag() == std.Target.current.os.tag and test_target.target.getCpuArch() == std.Target.current.cpu.arch)