From ad1bee07f45ff1d2b63d72d921f228a40c42f537 Mon Sep 17 00:00:00 2001 From: Richard Feldman Date: Tue, 9 Dec 2025 20:05:01 -0500 Subject: [PATCH] Fix zig lints, add zig lints to minici, update snapshots --- build.zig | 31 ++++++++++++++++++++ src/canonicalize/Can.zig | 2 ++ test/snapshots/fuzz_crash/fuzz_crash_023.md | 2 +- test/snapshots/fuzz_crash/fuzz_crash_028.md | Bin 56805 -> 56808 bytes test/snapshots/syntax_grab_bag.md | 2 +- 5 files changed, 35 insertions(+), 2 deletions(-) diff --git a/build.zig b/build.zig index 62da26c53c..c4740ee8dc 100644 --- a/build.zig +++ b/build.zig @@ -764,6 +764,7 @@ const MiniCiStep = struct { // Run the sequence of `zig build` commands that make up the // mini CI pipeline. try runSubBuild(step, "fmt", "zig build fmt"); + try runZigLints(step); try runSubBuild(step, null, "zig build"); try checkBuiltinRocFormatting(step); try runSubBuild(step, "snapshot", "zig build snapshot"); @@ -775,6 +776,36 @@ const MiniCiStep = struct { try runSubBuild(step, "test-cli", "zig build test-cli"); } + fn runZigLints(step: *Step) !void { + const b = step.owner; + std.debug.print("---- minici: running zig lints ----\n", .{}); + + var child_argv = std.ArrayList([]const u8).empty; + defer child_argv.deinit(b.allocator); + + try child_argv.append(b.allocator, b.graph.zig_exe); + try child_argv.append(b.allocator, "run"); + try child_argv.append(b.allocator, "ci/zig_lints.zig"); + + var child = std.process.Child.init(child_argv.items, b.allocator); + child.stdin_behavior = .Inherit; + child.stdout_behavior = .Inherit; + child.stderr_behavior = .Inherit; + + const term = try child.spawnAndWait(); + + switch (term) { + .Exited => |code| { + if (code != 0) { + return step.fail("Zig lints failed. Run 'zig run ci/zig_lints.zig' to see details.", .{}); + } + }, + else => { + return step.fail("zig run ci/zig_lints.zig terminated abnormally", .{}); + }, + } + } + fn checkBuiltinRocFormatting(step: *Step) !void { const b = step.owner; std.debug.print("---- minici: checking Builtin.roc formatting ----\n", .{}); diff --git a/src/canonicalize/Can.zig b/src/canonicalize/Can.zig index 35090ebf0a..21d218ff98 100644 --- a/src/canonicalize/Can.zig +++ b/src/canonicalize/Can.zig @@ -6355,6 +6355,8 @@ fn canonicalizePatternOrMalformed( } } +/// Canonicalizes a parsed pattern from AST representation. +/// Returns the canonical pattern index, or null if the pattern should be skipped. pub fn canonicalizePattern( self: *Self, ast_pattern_idx: AST.Pattern.Idx, diff --git a/test/snapshots/fuzz_crash/fuzz_crash_023.md b/test/snapshots/fuzz_crash/fuzz_crash_023.md index 2d12563533..63c56ca7f1 100644 --- a/test/snapshots/fuzz_crash/fuzz_crash_023.md +++ b/test/snapshots/fuzz_crash/fuzz_crash_023.md @@ -2657,7 +2657,7 @@ expect { (exposes (exposed (name "line!") (wildcard false)) (exposed (name "write!") (wildcard false)))) - (s-import (module "MALFORMED_IMPORT") + (s-import (module "#malformed_import_0") (exposes (exposed (name "line!") (wildcard false)) (exposed (name "write!") (wildcard false)))) diff --git a/test/snapshots/fuzz_crash/fuzz_crash_028.md b/test/snapshots/fuzz_crash/fuzz_crash_028.md index 3eded8940c458347f13b36aa38370e2399410955..e13d656ca667fb8a1054c409163b5d44b91d6671 100644 GIT binary patch delta 34 qcmaF5oB73V<_$7eg_Uy?bJFsQa#K^{Gjj{_i%Q}RHtSs7$pHWjQx4Vu delta 31 ncmaE{oB8Q(<_$7e1$-TS-28)lU0vcmeFOZ1LN@DP-N^v}&^io6 diff --git a/test/snapshots/syntax_grab_bag.md b/test/snapshots/syntax_grab_bag.md index c2286ade22..5bfc2654ab 100644 --- a/test/snapshots/syntax_grab_bag.md +++ b/test/snapshots/syntax_grab_bag.md @@ -2543,7 +2543,7 @@ expect { (exposes (exposed (name "line!") (wildcard false)) (exposed (name "write!") (wildcard false)))) - (s-import (module "MALFORMED_IMPORT") + (s-import (module "#malformed_import_0") (exposes (exposed (name "line!") (wildcard false)) (exposed (name "write!") (wildcard false))))