Disable misc-include-cleaner - #274
Merged
Merged
Conversation
The check demands a direct include for every symbol used, which fights this codebase's umbrella headers: mbo/types/stringify_test.cc includes `stringify.h` and uses the concepts that header exists to expose (SupportsFieldNames, kStructNameSupport), and the check asks it to reach past the public header into `internal/struct_names.h` instead. Satisfying it would deepen exactly the coupling the umbrella header was written to avoid. Same shape in json_test.cc (ThreeWayComparableTo from traits.h). 69 findings across 30 files, the largest remaining check. The check is also reported to mishandle concepts, with uses inside `requires` clauses going unattributed. That is recorded as a known issue rather than something reproduced here: the samples inspected were all genuine "no direct include" reports, so the umbrella-header conflict is the operative reason. If include hygiene is wanted later, IWYU proper is the better tool for it. Verified: the check reports zero on the previously affected files, the other 26 misc-* checks stay enabled, and --verify-config is clean. Signed-off-by: helly25 <6420169+helly25@users.noreply.github.com>
helly25
enabled auto-merge (squash)
August 8, 2026 19:22
Fab-Cat
approved these changes
Aug 8, 2026
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.
Fourth clang-tidy triage PR.
.clang-tidyonly, clearing the largest remaining check: 69 findings across 30 files.Why
The check demands a direct include for every symbol used, which fights this codebase's umbrella headers.
mbo/types/stringify_test.ccincludes exactly one project header,mbo/types/stringify.h, and then uses the concepts that header exists to expose:The check asks it to include
mbo/types/internal/struct_names.hdirectly instead. Satisfying that would have tests reaching past the public header into an internal one — deepening precisely the coupling the umbrella header was written to avoid. Same shape injson_test.cc(mbo::types::ThreeWayComparableTo, which lives intraits.h).On the concepts issue
The check is also reported to mishandle concepts, with uses inside
requiresclauses going unattributed. I have recorded that in.clang-tidyas a known issue rather than something reproduced here — every finding I inspected was a genuine "no direct include" report, includingtraits_test.ccbeing flagged forstd::same_aswhen it really does not include<concepts>.So the umbrella-header conflict is the operative reason, and the rationale in the config says so rather than overclaiming a tool bug. If include hygiene is wanted later, IWYU proper is the better tool for it.
Test
stringify.cc,json_test.cc,demangle.cc).misc-*checks stay enabled — this disables one check, not the group.clang-tidy --verify-configclean, so the name is not a typo silently doing nothing.pre-commit run -agreen.