Author: alexfh Date: Fri Mar 17 04:47:05 2017 New Revision: 298057 URL: http://llvm.org/viewvc/llvm-project?rev=298057&view=rev Log: [clang-tidy] Verify some conditions in a matcher instead of check(). NFC
Modified: clang-tools-extra/trunk/clang-tidy/google/ExplicitConstructorCheck.cpp Modified: clang-tools-extra/trunk/clang-tidy/google/ExplicitConstructorCheck.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/google/ExplicitConstructorCheck.cpp?rev=298057&r1=298056&r2=298057&view=diff ============================================================================== --- clang-tools-extra/trunk/clang-tidy/google/ExplicitConstructorCheck.cpp (original) +++ clang-tools-extra/trunk/clang-tidy/google/ExplicitConstructorCheck.cpp Fri Mar 17 04:47:05 2017 @@ -24,8 +24,11 @@ void ExplicitConstructorCheck::registerM // provide any benefit to other languages, despite being benign. if (!getLangOpts().CPlusPlus) return; - Finder->addMatcher(cxxConstructorDecl(unless(isInstantiated())).bind("ctor"), - this); + Finder->addMatcher( + cxxConstructorDecl(unless(anyOf(isImplicit(), // Compiler-generated. + isDeleted(), isInstantiated()))) + .bind("ctor"), + this); Finder->addMatcher( cxxConversionDecl(unless(anyOf(isExplicit(), // Already marked explicit. isImplicit(), // Compiler-generated. @@ -99,10 +102,8 @@ void ExplicitConstructorCheck::check(con } const auto *Ctor = Result.Nodes.getNodeAs<CXXConstructorDecl>("ctor"); - // Do not be confused: isExplicit means 'explicit' keyword is present, - // isImplicit means that it's a compiler-generated constructor. - if (Ctor->isOutOfLine() || Ctor->isImplicit() || Ctor->isDeleted() || - Ctor->getNumParams() == 0 || Ctor->getMinRequiredArguments() > 1) + if (Ctor->isOutOfLine() || Ctor->getNumParams() == 0 || + Ctor->getMinRequiredArguments() > 1) return; bool takesInitializerList = isStdInitializerList( _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits