Skip to content

Commit 164409d

Browse files
committed
[clang-tidy] matchesAnyListedTypeName support non canonical types
1 parent 1b5d088 commit 164409d

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

clang-tools-extra/clang-tidy/utils/Matchers.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@ bool NotIdenticalStatementsPredicate::operator()(
1818
}
1919

2020
MatchesAnyListedTypeNameMatcher::MatchesAnyListedTypeNameMatcher(
21-
llvm::ArrayRef<StringRef> NameList)
22-
: NameMatchers(NameList.begin(), NameList.end()) {}
21+
llvm::ArrayRef<StringRef> NameList, bool CanonicalTypes)
22+
: NameMatchers(NameList.begin(), NameList.end()),
23+
CanonicalTypes(CanonicalTypes) {}
2324

2425
MatchesAnyListedTypeNameMatcher::~MatchesAnyListedTypeNameMatcher() = default;
2526

@@ -32,7 +33,7 @@ bool MatchesAnyListedTypeNameMatcher::matches(
3233

3334
PrintingPolicy PrintingPolicyWithSuppressedTag(
3435
Finder->getASTContext().getLangOpts());
35-
PrintingPolicyWithSuppressedTag.PrintCanonicalTypes = true;
36+
PrintingPolicyWithSuppressedTag.PrintCanonicalTypes = CanonicalTypes;
3637
PrintingPolicyWithSuppressedTag.SuppressElaboration = true;
3738
PrintingPolicyWithSuppressedTag.SuppressScope = false;
3839
PrintingPolicyWithSuppressedTag.SuppressTagKeyword = true;

clang-tools-extra/clang-tidy/utils/Matchers.h

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -172,21 +172,28 @@ AST_MATCHER_P(Stmt, isStatementIdenticalToBoundNode, std::string, ID) {
172172
class MatchesAnyListedTypeNameMatcher
173173
: public ast_matchers::internal::MatcherInterface<QualType> {
174174
public:
175-
explicit MatchesAnyListedTypeNameMatcher(llvm::ArrayRef<StringRef> NameList);
175+
explicit MatchesAnyListedTypeNameMatcher(llvm::ArrayRef<StringRef> NameList,
176+
bool CanonicalTypes);
176177
~MatchesAnyListedTypeNameMatcher() override;
177178
bool matches(
178179
const QualType &Node, ast_matchers::internal::ASTMatchFinder *Finder,
179180
ast_matchers::internal::BoundNodesTreeBuilder *Builder) const override;
180181

181182
private:
182183
std::vector<llvm::Regex> NameMatchers;
184+
bool CanonicalTypes;
183185
};
184186

185187
// Returns a matcher that matches QualType against a list of provided regular.
186188
inline ::clang::ast_matchers::internal::Matcher<QualType>
187-
matchesAnyListedTypeName(llvm::ArrayRef<StringRef> NameList) {
189+
matchesAnyListedTypeName(llvm::ArrayRef<StringRef> NameList,
190+
bool CanonicalTypes) {
188191
return ::clang::ast_matchers::internal::makeMatcher(
189-
new MatchesAnyListedTypeNameMatcher(NameList));
192+
new MatchesAnyListedTypeNameMatcher(NameList, CanonicalTypes));
193+
}
194+
inline ::clang::ast_matchers::internal::Matcher<QualType>
195+
matchesAnyListedTypeName(llvm::ArrayRef<StringRef> NameList) {
196+
return matchesAnyListedTypeName(NameList, true);
190197
}
191198

192199
} // namespace clang::tidy::matchers

0 commit comments

Comments
 (0)