fix new "var never mutated" error on Zig 0.12.0-dev.1663+6b1a823b2

Fixes these errors (introduced in https://github.com/ziglang/zig/pull/18017
and 6b1a823b2b ):

```
src/main.zig:290:13: error: local variable is never mutated
        var line_ = line_fbs.getWritten();
            ^~~~~
src/main.zig:290:13: note: consider using 'const'
src/main.zig:450:17: error: local variable is never mutated
            var path = std.fs.path.joinZ(allocator, &.{p, "ncdu", "config"}) catch unreachable;
                ^~~~
src/main.zig:450:17: note: consider using 'const'

...
```

Will be included in future Zig 0.12, this fix is backward compatible:
ncdu still builds and runs fine on Zig 0.11.0.

Signed-off-by: Eric Joldasov <bratishkaerik@getgoogleoff.me>
This commit is contained in:
Eric Joldasov 2023-11-20 14:40:20 +06:00
parent 115de253a8
commit c83159f076
No known key found for this signature in database
GPG key ID: 5C9C69060686B588
6 changed files with 19 additions and 19 deletions

View file

@ -349,8 +349,8 @@ const info = struct {
var links_idx: usize = 0; var links_idx: usize = 0;
fn lt(_: void, a: *model.Link, b: *model.Link) bool { fn lt(_: void, a: *model.Link, b: *model.Link) bool {
var pa = a.path(false); const pa = a.path(false);
var pb = b.path(false); const pb = b.path(false);
defer main.allocator.free(pa); defer main.allocator.free(pa);
defer main.allocator.free(pb); defer main.allocator.free(pb);
return std.mem.lessThan(u8, pa, pb); return std.mem.lessThan(u8, pa, pb);

View file

@ -56,7 +56,7 @@ const Pattern = struct {
fn parse(pat_: []const u8) *const Pattern { fn parse(pat_: []const u8) *const Pattern {
var pat = std.mem.trimLeft(u8, pat_, "/"); var pat = std.mem.trimLeft(u8, pat_, "/");
var top = main.allocator.create(Pattern) catch unreachable; const top = main.allocator.create(Pattern) catch unreachable;
var tail = top; var tail = top;
tail.sub = null; tail.sub = null;
while (std.mem.indexOfScalar(u8, pat, '/')) |idx| { while (std.mem.indexOfScalar(u8, pat, '/')) |idx| {
@ -147,7 +147,7 @@ fn PatternList(comptime withsub: bool) type {
fn append(self: *Self, pat: *const Pattern) void { fn append(self: *Self, pat: *const Pattern) void {
std.debug.assert((pat.sub != null) == withsub); std.debug.assert((pat.sub != null) == withsub);
if (pat.isliteral) { if (pat.isliteral) {
var e = self.literals.getOrPut(main.allocator, pat) catch unreachable; const e = self.literals.getOrPut(main.allocator, pat) catch unreachable;
if (!e.found_existing) { if (!e.found_existing) {
e.key_ptr.* = pat; e.key_ptr.* = pat;
e.value_ptr.* = if (withsub) .{} else {}; e.value_ptr.* = if (withsub) .{} else {};
@ -250,16 +250,16 @@ pub fn getPatterns(path_: []const u8) Patterns {
var pat = root; var pat = root;
defer pat.deinit(); defer pat.deinit();
while (std.mem.indexOfScalar(u8, path, '/')) |idx| { while (std.mem.indexOfScalar(u8, path, '/')) |idx| {
var name = main.allocator.dupeZ(u8, path[0..idx]) catch unreachable; const name = main.allocator.dupeZ(u8, path[0..idx]) catch unreachable;
defer main.allocator.free(name); defer main.allocator.free(name);
path = path[idx+1..]; path = path[idx+1..];
var sub = pat.enter(name); const sub = pat.enter(name);
pat.deinit(); pat.deinit();
pat = sub; pat = sub;
} }
var name = main.allocator.dupeZ(u8, path) catch unreachable; const name = main.allocator.dupeZ(u8, path) catch unreachable;
defer main.allocator.free(name); defer main.allocator.free(name);
return pat.enter(name); return pat.enter(name);
} }

View file

@ -287,7 +287,7 @@ fn tryReadArgsFile(path: [:0]const u8) void {
error.EndOfStream => if (line_fbs.getPos() catch unreachable == 0) break, error.EndOfStream => if (line_fbs.getPos() catch unreachable == 0) break,
else => |e| ui.die("Error reading from {s}: {s}\nRun with --ignore-config to skip reading config files.\n", .{ path, ui.errorString(e) }), else => |e| ui.die("Error reading from {s}: {s}\nRun with --ignore-config to skip reading config files.\n", .{ path, ui.errorString(e) }),
}; };
var line_ = line_fbs.getWritten(); const line_ = line_fbs.getWritten();
var line = std.mem.trim(u8, line_, &std.ascii.whitespace); var line = std.mem.trim(u8, line_, &std.ascii.whitespace);
if (line.len == 0 or line[0] == '#') continue; if (line.len == 0 or line[0] == '#') continue;
@ -447,11 +447,11 @@ pub fn main() void {
tryReadArgsFile("/etc/ncdu.conf"); tryReadArgsFile("/etc/ncdu.conf");
if (std.os.getenvZ("XDG_CONFIG_HOME")) |p| { if (std.os.getenvZ("XDG_CONFIG_HOME")) |p| {
var path = std.fs.path.joinZ(allocator, &.{p, "ncdu", "config"}) catch unreachable; const path = std.fs.path.joinZ(allocator, &.{p, "ncdu", "config"}) catch unreachable;
defer allocator.free(path); defer allocator.free(path);
tryReadArgsFile(path); tryReadArgsFile(path);
} else if (std.os.getenvZ("HOME")) |p| { } else if (std.os.getenvZ("HOME")) |p| {
var path = std.fs.path.joinZ(allocator, &.{p, ".config", "ncdu", "config"}) catch unreachable; const path = std.fs.path.joinZ(allocator, &.{p, ".config", "ncdu", "config"}) catch unreachable;
defer allocator.free(path); defer allocator.free(path);
tryReadArgsFile(path); tryReadArgsFile(path);
} }
@ -462,7 +462,7 @@ pub fn main() void {
var export_file: ?[:0]const u8 = null; var export_file: ?[:0]const u8 = null;
var quit_after_scan = false; var quit_after_scan = false;
{ {
var arglist = std.process.argsAlloc(allocator) catch unreachable; const arglist = std.process.argsAlloc(allocator) catch unreachable;
defer std.process.argsFree(allocator, arglist); defer std.process.argsFree(allocator, arglist);
var args = Args.init(arglist); var args = Args.init(arglist);
_ = args.next(); // program name _ = args.next(); // program name
@ -506,7 +506,7 @@ pub fn main() void {
event_delay_timer = std.time.Timer.start() catch unreachable; event_delay_timer = std.time.Timer.start() catch unreachable;
defer ui.deinit(); defer ui.deinit();
var out_file = if (export_file) |f| ( const out_file = if (export_file) |f| (
if (std.mem.eql(u8, f, "-")) stdout if (std.mem.eql(u8, f, "-")) stdout
else std.fs.cwd().createFileZ(f, .{}) else std.fs.cwd().createFileZ(f, .{})
catch |e| ui.die("Error opening export file: {s}.\n", .{ui.errorString(e)}) catch |e| ui.die("Error opening export file: {s}.\n", .{ui.errorString(e)})
@ -573,7 +573,7 @@ pub fn handleEvent(block: bool, force_draw: bool) void {
var firstblock = block; var firstblock = block;
while (true) { while (true) {
var ch = ui.getch(firstblock); const ch = ui.getch(firstblock);
if (ch == 0) return; if (ch == 0) return;
if (ch == -1) return handleEvent(firstblock, true); if (ch == -1) return handleEvent(firstblock, true);
switch (state) { switch (state) {

View file

@ -319,7 +319,7 @@ pub const devices = struct {
var lookup = std.AutoHashMap(u64, DevId).init(main.allocator); var lookup = std.AutoHashMap(u64, DevId).init(main.allocator);
pub fn getId(dev: u64) DevId { pub fn getId(dev: u64) DevId {
var d = lookup.getOrPut(dev) catch unreachable; const d = lookup.getOrPut(dev) catch unreachable;
if (!d.found_existing) { if (!d.found_existing) {
d.value_ptr.* = @as(DevId, @intCast(list.items.len)); d.value_ptr.* = @as(DevId, @intCast(list.items.len));
list.append(dev) catch unreachable; list.append(dev) catch unreachable;
@ -400,7 +400,7 @@ pub const inodes = struct {
nlink += 1; nlink += 1;
var parent: ?*Dir = it.parent; var parent: ?*Dir = it.parent;
while (parent) |p| : (parent = p.parent) { while (parent) |p| : (parent = p.parent) {
var de = dirs.getOrPut(p) catch unreachable; const de = dirs.getOrPut(p) catch unreachable;
if (de.found_existing) de.value_ptr.* += 1 if (de.found_existing) de.value_ptr.* += 1
else de.value_ptr.* = 1; else de.value_ptr.* = 1;
} }

View file

@ -293,7 +293,7 @@ const Context = struct {
wr.print("{d}", .{std.time.timestamp()}) catch |e| writeErr(e); wr.print("{d}", .{std.time.timestamp()}) catch |e| writeErr(e);
wr.writeByte('}') catch |e| writeErr(e); wr.writeByte('}') catch |e| writeErr(e);
var self = main.allocator.create(Self) catch unreachable; const self = main.allocator.create(Self) catch unreachable;
self.* = .{ .wr = buf }; self.* = .{ .wr = buf };
return self; return self;
} }
@ -555,7 +555,7 @@ pub fn setupRefresh(parent: *model.Dir) void {
// To be called after setupRefresh() (or from scanRoot()) // To be called after setupRefresh() (or from scanRoot())
pub fn scan() void { pub fn scan() void {
defer active_context.deinit(); defer active_context.deinit();
var dir_ = std.fs.cwd().openDirZ(active_context.pathZ(), .{}, true) catch |e| { const dir_ = std.fs.cwd().openDirZ(active_context.pathZ(), .{}, true) catch |e| {
active_context.last_error = main.allocator.dupeZ(u8, active_context.path.items) catch unreachable; active_context.last_error = main.allocator.dupeZ(u8, active_context.path.items) catch unreachable;
active_context.fatal_error = e; active_context.fatal_error = e;
while (main.state == .refresh or main.state == .scan) while (main.state == .refresh or main.state == .scan)

View file

@ -342,9 +342,9 @@ pub fn init() void {
if (inited) return; if (inited) return;
clearScr(); clearScr();
if (main.config.nc_tty) { if (main.config.nc_tty) {
var tty = c.fopen("/dev/tty", "r+"); const tty = c.fopen("/dev/tty", "r+");
if (tty == null) die("Error opening /dev/tty: {s}.\n", .{ c.strerror(@intFromEnum(std.c.getErrno(-1))) }); if (tty == null) die("Error opening /dev/tty: {s}.\n", .{ c.strerror(@intFromEnum(std.c.getErrno(-1))) });
var term = c.newterm(null, tty, tty); const term = c.newterm(null, tty, tty);
if (term == null) die("Error initializing ncurses.\n", .{}); if (term == null) die("Error initializing ncurses.\n", .{});
_ = c.set_term(term); _ = c.set_term(term);
} else { } else {