[clang-tools-extra] r303264 - Change getChecksFilter() interface to hide implementation details.
Alexander Kornienko via cfe-commits
cfe-commits at lists.llvm.org
Wed May 17 07:39:47 PDT 2017
Author: alexfh
Date: Wed May 17 09:39:47 2017
New Revision: 303264
URL: http://llvm.org/viewvc/llvm-project?rev=303264&view=rev
Log:
Change getChecksFilter() interface to hide implementation details.
Modified:
clang-tools-extra/trunk/clang-tidy/ClangTidy.cpp
clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cpp
clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.h
clang-tools-extra/trunk/clang-tidy/ClangTidyModule.cpp
Modified: clang-tools-extra/trunk/clang-tidy/ClangTidy.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/ClangTidy.cpp?rev=303264&r1=303263&r2=303264&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/ClangTidy.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/ClangTidy.cpp Wed May 17 09:39:47 2017
@@ -302,7 +302,7 @@ static void setStaticAnalyzerCheckerOpts
typedef std::vector<std::pair<std::string, bool>> CheckersList;
-static CheckersList getCheckersControlList(GlobList &Filter) {
+static CheckersList getCheckersControlList(ClangTidyContext &Context) {
CheckersList List;
const auto &RegisteredCheckers =
@@ -310,7 +310,7 @@ static CheckersList getCheckersControlLi
bool AnalyzerChecksEnabled = false;
for (StringRef CheckName : RegisteredCheckers) {
std::string ClangTidyCheckName((AnalyzerCheckNamePrefix + CheckName).str());
- AnalyzerChecksEnabled |= Filter.contains(ClangTidyCheckName);
+ AnalyzerChecksEnabled |= Context.isCheckEnabled(ClangTidyCheckName);
}
if (!AnalyzerChecksEnabled)
@@ -324,8 +324,10 @@ static CheckersList getCheckersControlLi
for (StringRef CheckName : RegisteredCheckers) {
std::string ClangTidyCheckName((AnalyzerCheckNamePrefix + CheckName).str());
- if (CheckName.startswith("core") || Filter.contains(ClangTidyCheckName))
+ if (CheckName.startswith("core") ||
+ Context.isCheckEnabled(ClangTidyCheckName)) {
List.emplace_back(CheckName, true);
+ }
}
return List;
}
@@ -371,8 +373,7 @@ ClangTidyASTConsumerFactory::CreateASTCo
AnalyzerOptions->Config["cfg-temporary-dtors"] =
Context.getOptions().AnalyzeTemporaryDtors ? "true" : "false";
- GlobList &Filter = Context.getChecksFilter();
- AnalyzerOptions->CheckersControlList = getCheckersControlList(Filter);
+ AnalyzerOptions->CheckersControlList = getCheckersControlList(Context);
if (!AnalyzerOptions->CheckersControlList.empty()) {
setStaticAnalyzerCheckerOpts(Context.getOptions(), AnalyzerOptions);
AnalyzerOptions->AnalysisStoreOpt = RegionStoreModel;
@@ -391,13 +392,12 @@ ClangTidyASTConsumerFactory::CreateASTCo
std::vector<std::string> ClangTidyASTConsumerFactory::getCheckNames() {
std::vector<std::string> CheckNames;
- GlobList &Filter = Context.getChecksFilter();
for (const auto &CheckFactory : *CheckFactories) {
- if (Filter.contains(CheckFactory.first))
+ if (Context.isCheckEnabled(CheckFactory.first))
CheckNames.push_back(CheckFactory.first);
}
- for (const auto &AnalyzerCheck : getCheckersControlList(Filter))
+ for (const auto &AnalyzerCheck : getCheckersControlList(Context))
CheckNames.push_back(AnalyzerCheckNamePrefix + AnalyzerCheck.first);
std::sort(CheckNames.begin(), CheckNames.end());
Modified: clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cpp?rev=303264&r1=303263&r2=303264&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cpp Wed May 17 09:39:47 2017
@@ -214,14 +214,14 @@ ClangTidyOptions ClangTidyContext::getOp
void ClangTidyContext::setCheckProfileData(ProfileData *P) { Profile = P; }
-GlobList &ClangTidyContext::getChecksFilter() {
+bool ClangTidyContext::isCheckEnabled(StringRef CheckName) const {
assert(CheckFilter != nullptr);
- return *CheckFilter;
+ return CheckFilter->contains(CheckName);
}
-GlobList &ClangTidyContext::getWarningAsErrorFilter() {
+bool ClangTidyContext::treatAsError(StringRef CheckName) const {
assert(WarningAsErrorFilter != nullptr);
- return *WarningAsErrorFilter;
+ return WarningAsErrorFilter->contains(CheckName);
}
/// \brief Store a \c ClangTidyError.
@@ -252,7 +252,7 @@ ClangTidyDiagnosticConsumer::ClangTidyDi
void ClangTidyDiagnosticConsumer::finalizeLastError() {
if (!Errors.empty()) {
ClangTidyError &Error = Errors.back();
- if (!Context.getChecksFilter().contains(Error.DiagnosticName) &&
+ if (!Context.isCheckEnabled(Error.DiagnosticName) &&
Error.DiagLevel != ClangTidyError::Error) {
++Context.Stats.ErrorsIgnoredCheckFilter;
Errors.pop_back();
@@ -384,9 +384,8 @@ void ClangTidyDiagnosticConsumer::Handle
LastErrorRelatesToUserCode = true;
LastErrorPassesLineFilter = true;
}
- bool IsWarningAsError =
- DiagLevel == DiagnosticsEngine::Warning &&
- Context.getWarningAsErrorFilter().contains(CheckName);
+ bool IsWarningAsError = DiagLevel == DiagnosticsEngine::Warning &&
+ Context.treatAsError(CheckName);
Errors.emplace_back(CheckName, Level, Context.getCurrentBuildDirectory(),
IsWarningAsError);
}
Modified: clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.h
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.h?rev=303264&r1=303263&r2=303264&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.h (original)
+++ clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.h Wed May 17 09:39:47 2017
@@ -136,14 +136,14 @@ public:
/// diagnostic ID.
StringRef getCheckName(unsigned DiagnosticID) const;
- /// \brief Returns check filter for the \c CurrentFile.
+ /// \brief Returns \c true if the check is enabled for the \c CurrentFile.
///
/// The \c CurrentFile can be changed using \c setCurrentFile.
- GlobList &getChecksFilter();
+ bool isCheckEnabled(StringRef CheckName) const;
- /// \brief Returns check filter for the \c CurrentFile which
- /// selects checks for upgrade to error.
- GlobList &getWarningAsErrorFilter();
+ /// \brief Returns \c true if the check should be upgraded to error for the
+ /// \c CurrentFile.
+ bool treatAsError(StringRef CheckName) const;
/// \brief Returns global options.
const ClangTidyGlobalOptions &getGlobalOptions() const;
Modified: clang-tools-extra/trunk/clang-tidy/ClangTidyModule.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/ClangTidyModule.cpp?rev=303264&r1=303263&r2=303264&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/ClangTidyModule.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/ClangTidyModule.cpp Wed May 17 09:39:47 2017
@@ -24,9 +24,8 @@ void ClangTidyCheckFactories::registerCh
void ClangTidyCheckFactories::createChecks(
ClangTidyContext *Context,
std::vector<std::unique_ptr<ClangTidyCheck>> &Checks) {
- GlobList &Filter = Context->getChecksFilter();
for (const auto &Factory : Factories) {
- if (Filter.contains(Factory.first))
+ if (Context->isCheckEnabled(Factory.first))
Checks.emplace_back(Factory.second(Factory.first, Context));
}
}
More information about the cfe-commits
mailing list