Repository navigation
Add rustc::missing_generic_type_visitable lint - #163538
Merged
rust-bors[bot] merged 3 commits intoOct 8, 2026
Merged
Conversation
When `TypeVisitable` is implemented but `GenericTypeVisitable` isn't,
the lint (which we'll add soon) recommends adding
`#[derive(GenericTypeVisitable)]`. However, this suggestion is incorrect
for types whose impls ought to be trivial. There, the problem occurs
because the type was added to `TrivialTypeTraversalImpls!` in
`macros.rs`, which added the `TypeVisitable` impl, but wasn't added to
`trivial_impls!` in `generic_visit.rs`, such that the
`GenericTypeVisitable` impl wasn't added.
Imo, the root cause of this problem is that we have two separate macros
for adding trivial impls. So this commit merges them into one, by making
`TrivialTypeTraversalImpls!` add a `GenericTypeVisitable` impl as well.
RE: `Variance`: its `GenericTypeVisitable` impl is now provided by
`TrivialTypeTraversalImpls!`, making the derive unnecessary.
RE: `rustc_hash::FxBuildHasher`: its `GenericTypeVisitable` impl ended
up being removed, because `TypeVisitable` can't be implemented due to it
not implemnting `Debug`. This shouldn't be a problem however, as
`{Generic,}TypeVisitable` should always be implemented in pairs anyway.
I confirmed this by removing the impl from `ra-ap-rustc_type_ir` and
`cargo check`-ing r-a.
The missing impl for arrays was (indirectly) highlighted by the test suite, the rest -- by the `#[deny]`
This comment has been minimized.
This comment has been minimized.
ada4a
commented
Sep 30, 2026
ada4a
force-pushed
the
missing-generic-type-visitable
branch
from
September 30, 2026 12:34
e09ae81 to
5fa40f8
Compare
This comment has been minimized.
This comment has been minimized.
JonathanBrouwer
requested changes
Oct 7, 2026
Member
|
A lot of comments but it's a lot of small things |
ada4a
force-pushed
the
missing-generic-type-visitable
branch
from
October 7, 2026 15:22
5fa40f8 to
d91635d
Compare
This comment has been minimized.
This comment has been minimized.
ada4a
force-pushed
the
missing-generic-type-visitable
branch
from
October 7, 2026 17:30
d91635d to
532fc7d
Compare
Contributor
Author
|
Everything should be addressed now:) @rustbot ready |
This comment has been minimized.
This comment has been minimized.
ada4a
force-pushed
the
missing-generic-type-visitable
branch
from
October 7, 2026 17:47
532fc7d to
6257faf
Compare
JonathanBrouwer
approved these changes
Oct 7, 2026
Contributor
Contributor
Author
Well of course it failed – it was running a Do you have any idea how to fix this?.. |
Member
|
I think you just have to add |
ada4a
force-pushed
the
missing-generic-type-visitable
branch
from
October 8, 2026 08:09
6257faf to
19735e0
Compare
Contributor
Author
|
Also added a FIXME to remove it again, like it's done in Uhh let's see if I can get the syntax right? @bors try test-x86_64-gnu-llvm-22-3 |
Contributor
|
Unknown argument "test-x86_64-gnu-llvm-22-3". Did you mean to use |
Contributor
Author
|
Ugh, does it not pick up message edits. Okay let's try again. @bors try jobs=test-x86_64-gnu-llvm-22-3 |
This comment has been minimized.
This comment has been minimized.
rust-bors Bot
pushed a commit
that referenced
this pull request
Oct 8, 2026
Add `rustc::missing_generic_type_visitable` lint try-job: test-x86_64-gnu-llvm-22-3
Contributor
Member
|
@bors r+ |
Contributor
JonathanBrouwer
added a commit
to JonathanBrouwer/rust
that referenced
this pull request
Oct 8, 2026
…le, r=JonathanBrouwer Add `rustc::missing_generic_type_visitable` lint Best reviewed commit-by-commit. The CI will probably complain about the TODOs, but I've added them deliberately, as a way to ask questions. r? @JonathanBrouwer cc @rust-lang/rust-analyzer
JonathanBrouwer
added a commit
to JonathanBrouwer/rust
that referenced
this pull request
Oct 8, 2026
…le, r=JonathanBrouwer Add `rustc::missing_generic_type_visitable` lint Best reviewed commit-by-commit. The CI will probably complain about the TODOs, but I've added them deliberately, as a way to ask questions. r? @JonathanBrouwer cc @rust-lang/rust-analyzer
rust-bors Bot
pushed a commit
that referenced
this pull request
Oct 8, 2026
…uwer Rollup of 9 pull requests Successful merges: - #163462 (Fix COFF renaming of decorated (stdcall/fastcall/vectorcall) exports) - #163855 (Include enclosing item's context on const errors) - #163861 (Run LLDB debuginfo tests on `x86_64-mingw`) - #163538 (Add `rustc::missing_generic_type_visitable` lint) - #163617 (mips: make `Complex<T>` ABI match GCC) - #163832 (reject non-async coroutine closures as async callables) - #163958 (only make `RustaceansAreAwesome` satisfy trait clauses) - #163974 (Condense AdtDef lang item checks into one match) - #163979 (Add `bf16` to arm features) Failed merges: - #163972 (const-eval: ICE when we hit a non-const fn)
JonathanBrouwer
added a commit
to JonathanBrouwer/rust
that referenced
this pull request
Oct 8, 2026
…le, r=JonathanBrouwer Add `rustc::missing_generic_type_visitable` lint Best reviewed commit-by-commit. The CI will probably complain about the TODOs, but I've added them deliberately, as a way to ask questions. r? @JonathanBrouwer cc @rust-lang/rust-analyzer
rust-bors Bot
pushed a commit
that referenced
this pull request
Oct 8, 2026
…uwer Rollup of 12 pull requests Successful merges: - #163462 (Fix COFF renaming of decorated (stdcall/fastcall/vectorcall) exports) - #163855 (Include enclosing item's context on const errors) - #163861 (Run LLDB debuginfo tests on `x86_64-mingw`) - #161201 (Speed up tidy again) - #163538 (Add `rustc::missing_generic_type_visitable` lint) - #163617 (mips: make `Complex<T>` ABI match GCC) - #163772 (comptime fn error: suggest wrapping in const block) - #163832 (reject non-async coroutine closures as async callables) - #163958 (only make `RustaceansAreAwesome` satisfy trait clauses) - #163974 (Condense AdtDef lang item checks into one match) - #163979 (Add `bf16` to arm features) - #163989 (Revert "compiletest: stream output of executor process when --no-capture is set") Failed merges: - #163972 (const-eval: ICE when we hit a non-const fn)
rust-bors Bot
pushed a commit
that referenced
this pull request
Oct 8, 2026
…uwer Rollup of 19 pull requests Successful merges: - #156112 (Distinguish `repr(C)` ZSTs from others in ABI computation) - #157941 (Deny partial `-Z stack-protector` by default in all editions) - #163462 (Fix COFF renaming of decorated (stdcall/fastcall/vectorcall) exports) - #163855 (Include enclosing item's context on const errors) - #163861 (Run LLDB debuginfo tests on `x86_64-mingw`) - #163913 ( Silence redundant failed obligations on the same statement) - #161201 (Speed up tidy again) - #163380 (Tweak "name not found" resolution error when it happens from within a derive expansion) - #163538 (Add `rustc::missing_generic_type_visitable` lint) - #163617 (mips: make `Complex<T>` ABI match GCC) - #163772 (comptime fn error: suggest wrapping in const block) - #163813 (use pre-borrowck typing env for early MIR validation) - #163924 (replace instances of NonNull::new(&mut x).expect("...") with NonNull::from_mut) - #163958 (only make `RustaceansAreAwesome` satisfy trait clauses) - #163960 (vexos: clear .bss from assembly) - #163974 (Condense AdtDef lang item checks into one match) - #163979 (Add `bf16` to arm features) - #163989 (Revert "compiletest: stream output of executor process when --no-capture is set") - #163995 (m68k-unknown-none-elf: Remove code model) Failed merges: - #163832 (reject non-async coroutine closures as async callables) - #163972 (const-eval: ICE when we hit a non-const fn)
rust-bors Bot
pushed a commit
that referenced
this pull request
Oct 8, 2026
Rollup merge of #163538 - ada4a:missing-generic-type-visitable, r=JonathanBrouwer Add `rustc::missing_generic_type_visitable` lint Best reviewed commit-by-commit. The CI will probably complain about the TODOs, but I've added them deliberately, as a way to ask questions. r? @JonathanBrouwer cc @rust-lang/rust-analyzer
programskillforverification
pushed a commit
to programskillforverification/miri
that referenced
this pull request
Oct 9, 2026
…uwer Rollup of 19 pull requests Successful merges: - rust-lang/rust#156112 (Distinguish `repr(C)` ZSTs from others in ABI computation) - rust-lang/rust#157941 (Deny partial `-Z stack-protector` by default in all editions) - rust-lang/rust#163462 (Fix COFF renaming of decorated (stdcall/fastcall/vectorcall) exports) - rust-lang/rust#163855 (Include enclosing item's context on const errors) - rust-lang/rust#163861 (Run LLDB debuginfo tests on `x86_64-mingw`) - rust-lang/rust#163913 ( Silence redundant failed obligations on the same statement) - rust-lang/rust#161201 (Speed up tidy again) - rust-lang/rust#163380 (Tweak "name not found" resolution error when it happens from within a derive expansion) - rust-lang/rust#163538 (Add `rustc::missing_generic_type_visitable` lint) - rust-lang/rust#163617 (mips: make `Complex<T>` ABI match GCC) - rust-lang/rust#163772 (comptime fn error: suggest wrapping in const block) - rust-lang/rust#163813 (use pre-borrowck typing env for early MIR validation) - rust-lang/rust#163924 (replace instances of NonNull::new(&mut x).expect("...") with NonNull::from_mut) - rust-lang/rust#163958 (only make `RustaceansAreAwesome` satisfy trait clauses) - rust-lang/rust#163960 (vexos: clear .bss from assembly) - rust-lang/rust#163974 (Condense AdtDef lang item checks into one match) - rust-lang/rust#163979 (Add `bf16` to arm features) - rust-lang/rust#163989 (Revert "compiletest: stream output of executor process when --no-capture is set") - rust-lang/rust#163995 (m68k-unknown-none-elf: Remove code model) Failed merges: - rust-lang/rust#163832 (reject non-async coroutine closures as async callables) - rust-lang/rust#163972 (const-eval: ICE when we hit a non-const fn)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
View all comments
Best reviewed commit-by-commit.
The CI will probably complain about the TODOs, but I've added them deliberately, as a way to ask questions.
r? @JonathanBrouwer
cc @rust-lang/rust-analyzer