[clang-tools-extra] 35763ba - [clang-tidy] Simplify redundant member init check

Stephen Kelly via cfe-commits cfe-commits at lists.llvm.org
Sat Feb 27 04:15:17 PST 2021


Author: Stephen Kelly
Date: 2021-02-27T12:11:44Z
New Revision: 35763baf9aa927c2e8fc0a4af484c51391ecc30c

URL: https://github.com/llvm/llvm-project/commit/35763baf9aa927c2e8fc0a4af484c51391ecc30c
DIFF: https://github.com/llvm/llvm-project/commit/35763baf9aa927c2e8fc0a4af484c51391ecc30c.diff

LOG: [clang-tidy] Simplify redundant member init check

Differential Revision: https://reviews.llvm.org/D97147

Added: 
    

Modified: 
    clang-tools-extra/clang-tidy/readability/RedundantMemberInitCheck.cpp
    clang-tools-extra/clang-tidy/readability/RedundantMemberInitCheck.h

Removed: 
    


################################################################################
diff  --git a/clang-tools-extra/clang-tidy/readability/RedundantMemberInitCheck.cpp b/clang-tools-extra/clang-tidy/readability/RedundantMemberInitCheck.cpp
index df6e57bfb9ed..0af9a0478ab9 100644
--- a/clang-tools-extra/clang-tidy/readability/RedundantMemberInitCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/RedundantMemberInitCheck.cpp
@@ -26,26 +26,21 @@ void RedundantMemberInitCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) {
 }
 
 void RedundantMemberInitCheck::registerMatchers(MatchFinder *Finder) {
-  auto Construct =
-      cxxConstructExpr(
-          hasDeclaration(cxxConstructorDecl(hasParent(
-              cxxRecordDecl(unless(isTriviallyDefaultConstructible()))))))
-          .bind("construct");
-
   Finder->addMatcher(
-      traverse(
-          TK_AsIs,
-          cxxConstructorDecl(
-              unless(isDelegatingConstructor()),
-              ofClass(unless(
-                  anyOf(isUnion(), ast_matchers::isTemplateInstantiation()))),
-              forEachConstructorInitializer(
-                  cxxCtorInitializer(
-                      isWritten(), withInitializer(ignoringImplicit(Construct)),
-                      unless(forField(hasType(isConstQualified()))),
-                      unless(forField(hasParent(recordDecl(isUnion())))))
-                      .bind("init")))
-              .bind("constructor")),
+      cxxConstructorDecl(
+          unless(isDelegatingConstructor()), ofClass(unless(isUnion())),
+          forEachConstructorInitializer(
+              cxxCtorInitializer(
+                  withInitializer(
+                      cxxConstructExpr(
+                          hasDeclaration(
+                              cxxConstructorDecl(ofClass(cxxRecordDecl(
+                                  unless(isTriviallyDefaultConstructible()))))))
+                          .bind("construct")),
+                  unless(forField(hasType(isConstQualified()))),
+                  unless(forField(hasParent(recordDecl(isUnion())))))
+                  .bind("init")))
+          .bind("constructor"),
       this);
 }
 

diff  --git a/clang-tools-extra/clang-tidy/readability/RedundantMemberInitCheck.h b/clang-tools-extra/clang-tidy/readability/RedundantMemberInitCheck.h
index 9454278ca244..6d40a94f59ca 100644
--- a/clang-tools-extra/clang-tidy/readability/RedundantMemberInitCheck.h
+++ b/clang-tools-extra/clang-tidy/readability/RedundantMemberInitCheck.h
@@ -32,6 +32,9 @@ class RedundantMemberInitCheck : public ClangTidyCheck {
   void storeOptions(ClangTidyOptions::OptionMap &Opts) override;
   void registerMatchers(ast_matchers::MatchFinder *Finder) override;
   void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
+  llvm::Optional<TraversalKind> getCheckTraversalKind() const override {
+    return TK_IgnoreUnlessSpelledInSource;
+  }
 
 private:
   bool IgnoreBaseInCopyConstructors;


        


More information about the cfe-commits mailing list