Skip to content

fix(lib): build on nightly-2026-09-27, and find a glob nested in a use list - #10

Merged
mikeslade merged 1 commit into
mainfrom
fix/nightly-2026-09-27
Sep 27, 2026
Merged

mikeslade merged 1 commit into
mainfrom
fix/nightly-2026-09-27

Conversation

@mikeslade

@mikeslade mikeslade commented Sep 27, 2026 •

Copy link
Copy Markdown
Owner

nightly-2026-09-27 does not compile this library. Two upstream changes:

  1. Simplify the G in Diag<'a, G> rust-lang/rust#162630 (merged 2026-09-14) deleted rustc_errors::EmissionGuarantee; Diagnostic<'a> and Diag<'a> lost the G parameter. RustLintsPolicyDiag now implements the plain trait.
  2. HIR no longer splits use a::{b, c::*} into one item per element. It is one ItemKind::Use(UseTree) with UseKind::Nested { items }. The old matches!(item.kind, ItemKind::Use(_, UseKind::Glob)) stopped compiling, and a plain port to the new shape would only catch top-level globs. check_wildcard_import now recurses and reports each glob at its own path span.

Also: nix flake update rust-overlay nixpkgs so the rolling default resolves the new nightly, and supplied-toolchain-identity moves from 2026-08-26 (no longer compiles) to 2026-09-26: new enough for the new API, and still different from the rolling default, which is what that check is asserting.

Needed by techzenlabs/benefits-platform's move to nightly-2026-09-27.

How verified

Command Result
nix flake check all 24 checks passed
nix develop -c cargo test --release 23 passed
nix develop -c scripts/check-blocking-in-async-fixture.sh OK: 11 expected sites, no others
fixture cargo dylint --all -- --workspace (README command) 2 wildcard warnings: product-core/src/lib.rs:7:1 (use sqlx::*) and the new lib.rs:24:21 (deep::* inside use nested::{Named, deep::*})
cargo fmt --check clean

GATE_AT_COMMIT=2ec820e5e23465de0216b1e9561ed561f5c07686

…e list

rust-lang/rust#162630 (merged 2026-09-14) deleted `EmissionGuarantee` and
made `Diagnostic<'a>` non-generic, so the policy diagnostic now implements
the plain trait.

HIR also stopped lowering `use a::{b, c::*}` to one item per element. The
list is now one `ItemKind::Use(UseTree)` whose `UseKind::Nested` holds the
elements, so matching only a top-level `UseKind::Glob` would silently stop
flagging a glob inside a list. The wildcard pass now walks the tree and
reports each glob at its own path. The product-core fixture gains that case.

The supplied-toolchain-identity check moves to 2026-09-26, the newest date
that compiles against the new API and still differs from the rolling default.
@mikeslade
mikeslade merged commit 71af3e1 into main Sep 27, 2026
mikeslade added a commit that referenced this pull request Sep 27, 2026
…iver for the removed --env-set (#11)

nix flake update moved only crane; #10 already carried nixpkgs and
rust-overlay to today's snapshot, so the toolchain stays
nightly-2026-09-27. cargo update moves 35 packages, among them
dylint_linting 6.0.2 -> 6.1.0, and the flake's dylint tools follow.

rust-lang/rust#161831 removed the unstable --env-set flag on
2026-08-31. dylint >= 6.0.3 passes it on every lint run, so its driver
fails on any newer nightly with "Unrecognized option: 'env-set'"
(trailofbits/dylint#2078, still open). The flake now patches the driver
source to stop passing the flag, restoring the 6.0.2 behaviour, with
--replace-fail so the upstream fix shows up here as a build failure.

Also fixes one clippy redundant_closure so clippy is clean.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant