Avoid IWYU False Positives on external libraries#266
Merged
aaronliu0130 merged 1 commit intocpplint:developfrom Mar 20, 2024
Merged
Avoid IWYU False Positives on external libraries#266aaronliu0130 merged 1 commit intocpplint:developfrom
aaronliu0130 merged 1 commit intocpplint:developfrom
Conversation
aaronliu0130
approved these changes
Mar 20, 2024
Member
aaronliu0130
left a comment
There was a problem hiding this comment.
Seems good, although...
- The added test case violates IWYU (include-what-you-use), as boost::range::transform isn't included. Regardless, as agreed upon in #94, we shouldn't make implementing IWYU functionality an explicit goal.
- A better approach might be to check for
using namespace ...declarations and modify the regex/use a different regex for lines after such declarations, though this approach works well enough.
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.
Follow-up to #217
Here is another try at addressing #27. Instead of only checking against the qualified call (i.e.
std::), it also checks against the unqualified call. This change should preserve backward compatibility while preventing false positives for common names in other namespaces.Here is a quick list of checks
These emit warnings
std::make_pair(1, 2)std::make_pair(1, 2)make_pair(1, 2)auto foo = std::make_pair(1, 2)These do not emit warnings
boost::make_pair(1, 2)asdfasdf::make_pair(1, 2)asdfasdfstd::make_pair(1, 2).make_pair(1, 2)