aboutsummaryrefslogtreecommitdiff
path: root/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
diff options
context:
space:
mode:
authorNico Weber <thakis@chromium.org>2020-06-28 21:49:07 -0400
committerNico Weber <thakis@chromium.org>2020-06-28 21:49:29 -0400
commit8f73c4432b5fa8510c99a5053c07dc70a610e1fb (patch)
treec0a9eeeb15f12025e82c3129120dabc6ed29f551 /clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
parent80e15b4574f4a11792472249f64bac790145cc56 (diff)
downloadllvm-8f73c4432b5fa8510c99a5053c07dc70a610e1fb.zip
llvm-8f73c4432b5fa8510c99a5053c07dc70a610e1fb.tar.gz
llvm-8f73c4432b5fa8510c99a5053c07dc70a610e1fb.tar.bz2
Revert "[clang-tidy] Reworked enum options handling(again)"
This reverts commit b9306fd042ce1c11d84f05d2124dfdc65b8331fe and follow-up 42a51587c79a673045aec3586f4070630e5e7af3. It seems to build check-clang-tools on macOS, see comments on https://reviews.llvm.org/D82188
Diffstat (limited to 'clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp')
-rw-r--r--clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp54
1 files changed, 25 insertions, 29 deletions
diff --git a/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp b/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
index 720d43a2..dd18d86 100644
--- a/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
@@ -28,31 +28,6 @@ using namespace llvm;
namespace clang {
namespace tidy {
-
-template <> struct OptionEnumMapping<modernize::Confidence::Level> {
- static llvm::ArrayRef<std::pair<modernize::Confidence::Level, StringRef>>
- getEnumMapping() {
- static constexpr std::pair<modernize::Confidence::Level, StringRef>
- Mapping[] = {{modernize::Confidence::CL_Reasonable, "reasonable"},
- {modernize::Confidence::CL_Safe, "safe"},
- {modernize::Confidence::CL_Risky, "risky"}};
- return makeArrayRef(Mapping);
- }
-};
-
-template <> struct OptionEnumMapping<modernize::VariableNamer::NamingStyle> {
- static llvm::ArrayRef<
- std::pair<modernize::VariableNamer::NamingStyle, StringRef>>
- getEnumMapping() {
- static constexpr std::pair<modernize::VariableNamer::NamingStyle, StringRef>
- Mapping[] = {{modernize::VariableNamer::NS_CamelCase, "CamelCase"},
- {modernize::VariableNamer::NS_CamelBack, "camelBack"},
- {modernize::VariableNamer::NS_LowerCase, "lower_case"},
- {modernize::VariableNamer::NS_UpperCase, "UPPER_CASE"}};
- return makeArrayRef(Mapping);
- }
-};
-
namespace modernize {
static const char LoopNameArray[] = "forLoopArray";
@@ -69,6 +44,25 @@ static const char EndVarName[] = "endVar";
static const char DerefByValueResultName[] = "derefByValueResult";
static const char DerefByRefResultName[] = "derefByRefResult";
+static ArrayRef<std::pair<StringRef, Confidence::Level>>
+getConfidenceMapping() {
+ static constexpr std::pair<StringRef, Confidence::Level> Mapping[] = {
+ {"reasonable", Confidence::CL_Reasonable},
+ {"safe", Confidence::CL_Safe},
+ {"risky", Confidence::CL_Risky}};
+ return makeArrayRef(Mapping);
+}
+
+static ArrayRef<std::pair<StringRef, VariableNamer::NamingStyle>>
+getStyleMapping() {
+ static constexpr std::pair<StringRef, VariableNamer::NamingStyle> Mapping[] =
+ {{"CamelCase", VariableNamer::NS_CamelCase},
+ {"camelBack", VariableNamer::NS_CamelBack},
+ {"lower_case", VariableNamer::NS_LowerCase},
+ {"UPPER_CASE", VariableNamer::NS_UpperCase}};
+ return makeArrayRef(Mapping);
+}
+
// shared matchers
static const TypeMatcher AnyType() { return anything(); }
@@ -483,13 +477,15 @@ LoopConvertCheck::RangeDescriptor::RangeDescriptor()
LoopConvertCheck::LoopConvertCheck(StringRef Name, ClangTidyContext *Context)
: ClangTidyCheck(Name, Context), TUInfo(new TUTrackingInfo),
MaxCopySize(Options.get("MaxCopySize", 16ULL)),
- MinConfidence(Options.get("MinConfidence", Confidence::CL_Reasonable)),
- NamingStyle(Options.get("NamingStyle", VariableNamer::NS_CamelCase)) {}
+ MinConfidence(Options.get("MinConfidence", getConfidenceMapping(),
+ Confidence::CL_Reasonable)),
+ NamingStyle(Options.get("NamingStyle", getStyleMapping(),
+ VariableNamer::NS_CamelCase)) {}
void LoopConvertCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) {
Options.store(Opts, "MaxCopySize", std::to_string(MaxCopySize));
- Options.store(Opts, "MinConfidence", MinConfidence);
- Options.store(Opts, "NamingStyle", NamingStyle);
+ Options.store(Opts, "MinConfidence", MinConfidence, getConfidenceMapping());
+ Options.store(Opts, "NamingStyle", NamingStyle, getStyleMapping());
}
void LoopConvertCheck::registerMatchers(MatchFinder *Finder) {