From b672870886643a99dd74f3114995f2a091eab813 Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Tue, 29 Dec 2020 23:29:46 +0000 Subject: [PATCH] [clang-tidy] Simplify special member functions check Differential Revision: https://reviews.llvm.org/D97152 --- .../cppcoreguidelines/SpecialMemberFunctionsCheck.cpp | 19 +++++++------------ .../cppcoreguidelines/SpecialMemberFunctionsCheck.h | 4 +++- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.cpp b/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.cpp index c4684d4..823075f 100644 --- a/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.cpp +++ b/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.cpp @@ -40,18 +40,13 @@ void SpecialMemberFunctionsCheck::storeOptions( void SpecialMemberFunctionsCheck::registerMatchers(MatchFinder *Finder) { Finder->addMatcher( cxxRecordDecl( - eachOf( - has(cxxDestructorDecl(unless(isImplicit())).bind("dtor")), - has(cxxConstructorDecl(isCopyConstructor(), unless(isImplicit())) - .bind("copy-ctor")), - has(cxxMethodDecl(isCopyAssignmentOperator(), - unless(isImplicit())) - .bind("copy-assign")), - has(cxxConstructorDecl(isMoveConstructor(), unless(isImplicit())) - .bind("move-ctor")), - has(cxxMethodDecl(isMoveAssignmentOperator(), - unless(isImplicit())) - .bind("move-assign")))) + eachOf(has(cxxDestructorDecl().bind("dtor")), + has(cxxConstructorDecl(isCopyConstructor()).bind("copy-ctor")), + has(cxxMethodDecl(isCopyAssignmentOperator()) + .bind("copy-assign")), + has(cxxConstructorDecl(isMoveConstructor()).bind("move-ctor")), + has(cxxMethodDecl(isMoveAssignmentOperator()) + .bind("move-assign")))) .bind("class-def"), this); } diff --git a/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h b/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h index f232a0a..ada765d 100644 --- a/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h +++ b/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h @@ -32,7 +32,9 @@ public: void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; void onEndOfTranslationUnit() override; - + llvm::Optional getCheckTraversalKind() const override { + return TK_IgnoreUnlessSpelledInSource; + } enum class SpecialMemberFunctionKind : uint8_t { Destructor, DefaultDestructor, -- 2.7.4