Dylint: nightly-2026-10-01 with its clippy_utils, and dylint 6.1.1

The lint macros moved from rustc_session to rustc_lint, and a late pass is
registered boxed through register_late_lint_pass. The response invariant
names the shared Arc<FunctionFacts> the engine has handed back since
041f4776; the lint crate's own tests do not run in CI, so it had drifted.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
Priyanshu KumarandClaude Opus 5.5 committed 2026-10-14 16:33:56 +05:30
1 parent 098e8325fc
commit 0039fa5409
4 files changed
+99 -97

No files matched your search

+3 -3
View File
@@ -10,11 +10,11 @@ publish = false
crate-type = ["cdylib"]
[dependencies]
clippy_utils = { git = "https://github.com/rust-lang/rust-clippy", rev = "f6d310692116e9a527ce6d0b3526c965d9c5d7b9" }
dylint_linting = "6.0.1"
clippy_utils = { git = "https://github.com/rust-lang/rust-clippy", rev = "a7fb0ed8a7b593daa6fb8c3d5e161cd9e0d06fb8" }
dylint_linting = "6.1.1"
[dev-dependencies]
dylint_testing = "6.0.1"
dylint_testing = "6.1.1"
[workspace]
+1 -1
View File
@@ -1,3 +1,3 @@
[toolchain]
channel = "nightly-2026-04-16"
channel = "nightly-2026-10-01"
components = ["llvm-tools-preview", "rustc-dev"]
+94 -92
View File
@@ -16,7 +16,7 @@ use rustc_lint::{LateContext, LateLintPass, LintContext};
dylint_linting::dylint_library!();
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when `DisplayNames` is read outside a rendering path.
@@ -55,7 +55,7 @@ rustc_session::declare_lint!(
"display spellings may only be read where output is rendered"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when semantic storage/address classification is encoded as
@@ -90,7 +90,7 @@ rustc_session::declare_lint!(
"semantic classification should use typed contracts, not string prefixes"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when internal Rust code embeds radare2 JSON command strings that
@@ -114,7 +114,7 @@ rustc_session::declare_lint!(
"internal radare2 data seams should use typed collectors, not command JSON"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when `r2dec` indexes `known_function_signatures` directly.
@@ -139,7 +139,7 @@ rustc_session::declare_lint!(
"r2dec should query signatures through typed callee identity, not the raw signature map"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when `r2dec` analysis code reconstructs imported-callee or
@@ -167,7 +167,7 @@ rustc_session::declare_lint!(
"r2dec analysis should use typed callee resolution for import policy"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when `r2dec` op-lowering code parses call-target addresses through
@@ -195,7 +195,7 @@ rustc_session::declare_lint!(
"r2dec op-lowering should use typed callee resolution or the shared address parser"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when `r2dec` op-lowering code reconstructs call-target policy from
@@ -225,7 +225,7 @@ rustc_session::declare_lint!(
"r2dec op-lowering should consume typed callee target policy instead of recomputing it"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when production `r2dec` builds or reconstructs callee resolution
@@ -253,7 +253,7 @@ rustc_session::declare_lint!(
"r2dec must not synthesize CalleeResolutionFacts; r2engine owns callee resolution"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when `r2dec` call-argument rendering policy authorizes a nested
@@ -283,7 +283,7 @@ rustc_session::declare_lint!(
"r2dec call arguments must not authorize nested calls from rendered callee policy"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when `r2dec` call-argument render authorization treats
@@ -309,7 +309,7 @@ rustc_session::declare_lint!(
"r2dec call-argument rendering must not treat source_var_name as standalone authority"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when `r2dec` call-argument render authorization treats
@@ -334,7 +334,7 @@ rustc_session::declare_lint!(
"r2dec call-argument rendering must not treat source_call as standalone authority"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified `r2dec` call-argument rendering can fall through
@@ -362,7 +362,7 @@ rustc_session::declare_lint!(
"certified r2dec call arguments must come from FunctionFacts, not local raw arg fallback"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified call proof validation compares rendered argument
@@ -387,7 +387,7 @@ rustc_session::declare_lint!(
"certified r2dec call argument proofs must match the full FunctionFacts callsite vector"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when generic `r2dec` SSA-op statement lowering emits a direct
@@ -413,7 +413,7 @@ rustc_session::declare_lint!(
"r2dec direct call lowering must residualize instead of emitting zero-arg fallback calls"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified `r2dec` call-result replay can use cached
@@ -441,7 +441,7 @@ rustc_session::declare_lint!(
"certified r2dec call-result replay must use certified synthesized calls before cached fallback"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified `r2dec` accepts prepared rendered call-argument
@@ -468,7 +468,7 @@ pub R2DEC_CERTIFIED_PREPARED_CALL_ARG_EXPR_PROOF,
"certified r2dec call arguments must not use prepared argument expression text as authority"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified executable lowering repairs post-call values from
@@ -495,7 +495,7 @@ rustc_session::declare_lint!(
"certified r2dec executable lowering must not repair post-call values from local renderer state"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified rendered-call proof collection discovers source
@@ -521,7 +521,7 @@ rustc_session::declare_lint!(
"certified rendered-call proof must not be recovered from local cached call-expression equality"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified `r2dec` return rendering can choose local semantic
@@ -547,7 +547,7 @@ rustc_session::declare_lint!(
"certified r2dec returns must render from prepared return evidence before local expression fallback"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified `r2dec` return-call rendering treats a prepared
@@ -574,7 +574,7 @@ rustc_session::declare_lint!(
"certified r2dec return-call rendering must require FunctionFacts call-result evidence"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified `r2dec` local post-call source recovery can scan
@@ -600,7 +600,7 @@ rustc_session::declare_lint!(
"certified r2dec local post-call source recovery must not scan local SSA adjacency"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when production `r2dec` analysis defines helpers that infer
@@ -627,7 +627,7 @@ rustc_session::declare_lint!(
"r2dec must not infer authoritative call arguments outside FunctionFacts"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when summary-only `r2dec` rendering paths emit executable-looking
@@ -655,7 +655,7 @@ rustc_session::declare_lint!(
"summary routes must render comments/facts, not executable C"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when summary-only `r2dec` renderer files construct executable
@@ -682,7 +682,7 @@ rustc_session::declare_lint!(
"summary/VM renderers must not construct executable CStmt bodies"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when production `r2dec` code owns semantic route selection,
@@ -711,7 +711,7 @@ rustc_session::declare_lint!(
"r2dec must consume engine route decisions, not own route/refusal policy"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when `r2dec` treats a missing `FunctionFacts::decompile_route` as
@@ -735,7 +735,7 @@ rustc_session::declare_lint!(
"r2dec must residualize missing FunctionFacts::decompile_route without synthesizing a route"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when `r2dec::Decompiler` exposes the removed raw
@@ -765,7 +765,7 @@ rustc_session::declare_lint!(
"r2dec must not expose raw SSAFunction build_function; prepared input must require FunctionFacts::decompile_route"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when public `r2dec` semantic-summary render entrypoints accept
@@ -792,7 +792,7 @@ rustc_session::declare_lint!(
"r2dec summary rendering must require exact source-owned DecompilerInput"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when `r2dec` expands or repairs a certified external/header
@@ -817,7 +817,7 @@ rustc_session::declare_lint!(
"r2dec must not repair certified headers from local recovery or inference"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when `r2engine` applies decompile-route or
@@ -843,7 +843,7 @@ rustc_session::declare_lint!(
"r2engine must carry decompile policy through exact source-owned finalization"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when `r2engine` passes, converts, or exposes renderer-local route
@@ -869,7 +869,7 @@ rustc_session::declare_lint!(
"r2engine must not pass decompile routes beside source-owned DecompilerInput"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when production `r2engine` directly mutates raw `FunctionFacts`
@@ -894,7 +894,7 @@ rustc_session::declare_lint!(
"r2engine must not mutate detached FunctionFacts authority"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when summary decompile route/refusal state is carried in
@@ -923,7 +923,7 @@ rustc_session::declare_lint!(
"r2engine summary decompile route/refusal state must come from source-owned finalization"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when production `crates/r2engine/src/lib.rs` exposes or calls the
@@ -950,7 +950,7 @@ rustc_session::declare_lint!(
"r2engine must not expose/use summary-only decompile APIs as production decompile paths"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when production `crates/r2engine/src/lib.rs` exposes the
@@ -980,7 +980,7 @@ rustc_session::declare_lint!(
"r2engine must not expose lower-level EngineDecompileRequest decompile APIs publicly"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when `r2engine` mutates `FunctionFacts` semantics during render
@@ -1006,7 +1006,7 @@ rustc_session::declare_lint!(
"r2engine must not clear FunctionFacts semantics during decompile rendering"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when the production `r2engine` decompile path writes
@@ -1035,7 +1035,7 @@ rustc_session::declare_lint!(
"r2engine decompile type overrides must precede source-owned analysis"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when the production `r2engine` decompile render request carries a
@@ -1064,7 +1064,7 @@ rustc_session::declare_lint!(
"r2engine fallback comments must be sealed by source-owned finalization"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when production code reintroduces whole-analysis cache mutation
@@ -1089,7 +1089,7 @@ rustc_session::declare_lint!(
"whole-analysis cache mutation APIs are forbidden"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when `r2engine::EngineArtifacts` carries decompile route or
@@ -1117,7 +1117,7 @@ rustc_session::declare_lint!(
"r2engine EngineArtifacts must not duplicate FunctionFacts semantic or route evidence"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when decompile route planning in `r2engine` accepts
@@ -1142,7 +1142,7 @@ rustc_session::declare_lint!(
"r2engine decompile route planning must read type evidence through FunctionFacts"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when `r2engine` reconstructs decompile authority from raw facts or
@@ -1167,7 +1167,7 @@ rustc_session::declare_lint!(
"r2engine decompiler input must consume exact source-owned type analysis"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when production `r2engine` directly assembles prepared decompile
@@ -1196,7 +1196,7 @@ rustc_session::declare_lint!(
"r2engine must derive prepared decompile evidence through source-owned analysis"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when production `r2dec::DecompilerContext` defines decompile-route
@@ -1223,7 +1223,7 @@ rustc_session::declare_lint!(
"r2dec must carry decompile routes through source-owned DecompilerInput"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when production `r2dec::DecompilerContext` defines a callee
@@ -1250,7 +1250,7 @@ rustc_session::declare_lint!(
"r2dec must carry callee resolution through source-owned DecompilerInput"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when production `r2dec` exposes APIs that mutate decompiler type
@@ -1277,7 +1277,7 @@ rustc_session::declare_lint!(
"r2dec production code must carry type evidence through SourceOwnedFunctionFacts"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when production `r2dec` enriches known function signatures from
@@ -1309,7 +1309,7 @@ rustc_session::declare_lint!(
"r2dec must consume known callee signatures from FunctionFacts, not enrich them from names locally"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when production `r2dec` code mutates switch case labels from
@@ -1334,7 +1334,7 @@ rustc_session::declare_lint!(
"r2dec must render canonical switch case values without downstream display bias"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified switch selector rendering falls back to local
@@ -1359,7 +1359,7 @@ rustc_session::declare_lint!(
"r2dec certified switch rendering must require FunctionFacts control evidence"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified switch selector rendering accepts
@@ -1386,7 +1386,7 @@ rustc_session::declare_lint!(
"certified r2dec switch selectors must require FunctionFacts control proof before prepared selector text"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when `r2dec` treats "there is exactly one switch selector fact"
@@ -1412,7 +1412,7 @@ rustc_session::declare_lint!(
"r2dec switch selector rendering must require a block-matching FunctionFacts control fact"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when `r2dec` reconstructs a prepared direct call target from
@@ -1441,7 +1441,7 @@ rustc_session::declare_lint!(
"r2dec must consume FunctionFacts direct-target evidence instead of reparsing prepared SSA"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified `r2dec` op-lowering reads prepared
@@ -1470,7 +1470,7 @@ rustc_session::declare_lint!(
"certified r2dec call rendering must consume FunctionFacts callsite evidence"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified `r2dec` output validation reads raw prepared
@@ -1498,7 +1498,7 @@ rustc_session::declare_lint!(
"certified r2dec render validation must consume FunctionFacts render evidence"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when production `r2dec` call-result ownership logic derives a
@@ -1525,7 +1525,7 @@ rustc_session::declare_lint!(
"r2dec must not derive call-result owners from stack-local fallback logic"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when production `r2dec` call-result ownership logic derives a
@@ -1553,7 +1553,7 @@ rustc_session::declare_lint!(
"r2dec must not derive call-result owners from matching rendered call expressions"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when production `r2dec` return-register call-result fallback can
@@ -1579,7 +1579,7 @@ rustc_session::declare_lint!(
"certified r2dec rendering must not derive call-result owners from return-register fallback"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when production `r2dec` call-result alias fallback can derive a
@@ -1606,7 +1606,7 @@ rustc_session::declare_lint!(
"certified r2dec rendering must not derive call-result owners from local alias fallback"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified `r2dec` call-result ownership consults
@@ -1634,7 +1634,7 @@ rustc_session::declare_lint!(
"certified r2dec call-result ownership must not trust renderer-local ownership maps"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified `r2dec` call-result preservation treats the
@@ -1661,7 +1661,7 @@ rustc_session::declare_lint!(
"certified r2dec call-result preservation must not trust renderer-local ownership maps"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified `r2dec` duplicate-call pruning uses rendered-call
@@ -1688,7 +1688,7 @@ rustc_session::declare_lint!(
"certified r2dec duplicate-call pruning must require FunctionFacts callsite proof"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified visible-owner lookup returns a prepared source
@@ -1714,7 +1714,7 @@ rustc_session::declare_lint!(
"certified r2dec visible owner lookup must require stable FunctionFacts result ownership"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified `r2dec` call-result ownership accepts arbitrary
@@ -1741,7 +1741,7 @@ rustc_session::declare_lint!(
"certified r2dec call-result ownership must accept only stable prepared owner names"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified `r2dec` accepts a prepared call-result owner name
@@ -1767,7 +1767,7 @@ rustc_session::declare_lint!(
"certified r2dec call-result owners must be backed by FunctionFacts call-result owner facts"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified `r2dec` appended stack-return recovery reads
@@ -1785,7 +1785,7 @@ rustc_session::declare_lint!(
"certified r2dec stack-return recovery must require FunctionFacts render evidence"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified `r2dec` local declaration validation or retention
@@ -1803,7 +1803,7 @@ rustc_session::declare_lint!(
"certified r2dec local declarations must require exact typed stack identity"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified `r2dec` stack owner authorization calls
@@ -1824,7 +1824,7 @@ rustc_session::declare_lint!(
"certified r2dec stack owner authorization must use a FunctionFacts-owned predicate"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified `r2dec` local declaration types can still come
@@ -1840,7 +1840,7 @@ rustc_session::declare_lint!(
"certified r2dec stack local types must come from FunctionTypeFacts"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified `r2dec` fold setup passes renderer-local type
@@ -1857,7 +1857,7 @@ rustc_session::declare_lint!(
"certified r2dec fold inputs must not consume local type hints or local type oracle"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when production `r2dec` reads local stable stack/local-store
@@ -1884,7 +1884,7 @@ rustc_session::declare_lint!(
"certified r2dec must not consume local stable stack/local-store recovery directly"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when production `r2dec` analysis reads prepared SSA call-result
@@ -1910,7 +1910,7 @@ rustc_session::declare_lint!(
"r2dec analysis must consume FunctionFacts call-result facts instead of prepared certificate maps"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when production `r2dec` reads prepared SSA predicate or switch
@@ -1942,7 +1942,7 @@ rustc_session::declare_lint!(
"r2dec analysis must consume FunctionFacts control facts instead of prepared predicate maps"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when `r2dec` tests assert source-shaped C snippets such as
@@ -1970,7 +1970,7 @@ rustc_session::declare_lint!(
"r2dec tests must not bless source-shaped C from raw SSAFunction decompile output"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when `r2dec` falls back from a missing extracted branch condition
@@ -1995,7 +1995,7 @@ rustc_session::declare_lint!(
"r2dec must not default missing branch predicates to true"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified `r2dec` branch condition extraction can fall back
@@ -2025,7 +2025,7 @@ rustc_session::declare_lint!(
"certified r2dec branch conditions must come from FunctionFacts control facts"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified `r2dec` switch structuring emits `switch` syntax
@@ -2052,7 +2052,7 @@ rustc_session::declare_lint!(
"certified r2dec switch rendering must require FunctionFacts switch structure proof"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified `r2dec` loop structuring emits `while`/`do while`
@@ -2080,7 +2080,7 @@ rustc_session::declare_lint!(
"certified r2dec loop rendering must require FunctionFacts loop structure proof"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when `r2dec` structures `Region::IfThenElse` into executable
@@ -2106,7 +2106,7 @@ rustc_session::declare_lint!(
"r2dec certified branch rendering must record FunctionFacts branch proof identity"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when production `r2dec` uses broad local analysis presence, such
@@ -2135,7 +2135,7 @@ rustc_session::declare_lint!(
"r2dec must not synthesize stack locals from broad local analysis presence"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when production `r2dec` defines fallback helpers that manufacture
@@ -2163,7 +2163,7 @@ rustc_session::declare_lint!(
"r2dec must not manufacture aggregate field placeholders without layout proof"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when certified `r2dec` memory lowering can construct member
@@ -2180,7 +2180,7 @@ rustc_session::declare_lint!(
"certified r2dec structured memory rendering must require direction-exact FunctionRenderFacts evidence"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when `r2engine` constructs `r2dec::VariableRecovery` to infer
@@ -2207,7 +2207,7 @@ rustc_session::declare_lint!(
"r2engine must not use r2dec VariableRecovery for signature inference"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when `r2engine` calls `r2dec` fallback-comment helpers.
@@ -2231,7 +2231,7 @@ rustc_session::declare_lint!(
"r2engine must own refusal comments instead of calling r2dec helpers"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when production `r2types` code outside `role_registry` calls the
@@ -2256,7 +2256,7 @@ rustc_session::declare_lint!(
"r2types consumers must not project signatures directly from role names"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when production `r2engine` or `r2dec` assigns directly to canonical
@@ -2283,7 +2283,7 @@ rustc_session::declare_lint!(
"FunctionFacts owner fields must be mutated through r2types methods"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when a facts type answers a rendering decision rather than a fact.
@@ -2320,7 +2320,7 @@ rustc_session::declare_lint!(
"a facts type states what is true; deciding what to render belongs to a renderer"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when a `CStmt::Observed` or `CExpr::Observed` render-observation
@@ -2357,7 +2357,7 @@ rustc_session::declare_lint!(
"an observation node is built only by the fusing constructors in r2dec::ast"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// ### What it does
///
/// Warns when a `BTreeMap`, `HashMap`, `BTreeSet` or `HashSet` is keyed
@@ -2395,7 +2395,7 @@ rustc_session::declare_lint!(
"a fact about a function's entities is an index over their dense ids, not a map keyed by them"
);
rustc_session::declare_lint!(
rustc_lint::declare_lint!(
/// A cell in an r2engine field, static or signature outside `query::db` is a memo invalidated by hand;
/// a computed fact is a `Query` (doc/adr-query-database.md, ROADMAP D11). A cell that is no cache says so with `allow`.
pub CACHE_OUTSIDE_QUERY_DATABASE,
@@ -2403,7 +2403,7 @@ rustc_session::declare_lint!(
"a computed program fact lives only in the query database"
);
rustc_session::declare_lint_pass!(R2sleighLintPass => [
rustc_lint::declare_lint_pass!(R2sleighLintPass => [
DISPLAY_NAMES_OUTSIDE_RENDERING,
STRING_PREFIX_SEMANTIC_CLASSIFICATION,
R2_JSON_COMMAND_INTERNAL_SEAM,
@@ -2587,7 +2587,7 @@ pub fn register_lints(sess: &rustc_session::Session, lint_store: &mut rustc_lint
ENTITY_KEYED_MAP,
CACHE_OUTSIDE_QUERY_DATABASE,
]);
lint_store.register_late_pass(|_| Box::new(R2sleighLintPass));
lint_store.register_late_lint_pass(Box::new(|_| Box::new(R2sleighLintPass)));
}
impl<'tcx> LateLintPass<'tcx> for R2sleighLintPass {
@@ -6351,7 +6351,9 @@ fn inferred_entity_keyed_collection(
/// Whether a key is a function entity, a reference to one, or a tuple holding one.
fn is_entity_key(cx: &LateContext<'_>, key: rustc_middle::ty::Ty<'_>) -> bool {
match key.kind() {
rustc_middle::ty::Adt(key, _) => FUNCTION_ENTITIES.contains(&cx.tcx.item_name(key.did()).as_str()),
rustc_middle::ty::Adt(key, _) => {
FUNCTION_ENTITIES.contains(&cx.tcx.item_name(key.did()).as_str())
}
rustc_middle::ty::Ref(_, key, _) => is_entity_key(cx, *key),
rustc_middle::ty::Tuple(keys) => keys.iter().any(|key| is_entity_key(cx, key)),
_ => false,
@@ -159,7 +159,7 @@ fn r2engine_decompile_response_carries_function_facts_not_a_route_decision() {
let engine = production("crates/r2engine/src");
let response = engine.view().item("pub struct EngineDecompileResponse ");
assert!(
response.contains("pub function_facts: FunctionFacts"),
response.contains("pub function_facts: std::sync::Arc<FunctionFacts>"),
"EngineDecompileResponse must carry the sealed FunctionFacts:\n{response}"
);
for forbidden in [