aboutsummaryrefslogtreecommitdiff
path: root/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
diff options
context:
space:
mode:
authorNathan James <n.james93@hotmail.co.uk>2020-06-29 09:29:26 +0100
committerNathan James <n.james93@hotmail.co.uk>2020-06-29 09:29:39 +0100
commit37cc4fa2eaa3d03ca8cd4947eb0d4c60e3c9b45c (patch)
tree60126fdef73e9edcf669c00e25dbb8f3022ab375 /clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
parent5edecc151dfcb54f3fcdcef0b62a94687aafd46f (diff)
downloadllvm-37cc4fa2eaa3d03ca8cd4947eb0d4c60e3c9b45c.zip
llvm-37cc4fa2eaa3d03ca8cd4947eb0d4c60e3c9b45c.tar.gz
llvm-37cc4fa2eaa3d03ca8cd4947eb0d4c60e3c9b45c.tar.bz2
[clang-tidy] relanding b9306fd
Added some sanity checks to figure out the cause of a (seemingly unrelated) test failure on mac. These can be removed should no issues arise on that platform again.
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, 29 insertions, 25 deletions
diff --git a/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp b/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
index dd18d86..720d43a2 100644
--- a/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
@@ -28,6 +28,31 @@ 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";
@@ -44,25 +69,6 @@ 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(); }
@@ -477,15 +483,13 @@ LoopConvertCheck::RangeDescriptor::RangeDescriptor()
LoopConvertCheck::LoopConvertCheck(StringRef Name, ClangTidyContext *Context)
: ClangTidyCheck(Name, Context), TUInfo(new TUTrackingInfo),
MaxCopySize(Options.get("MaxCopySize", 16ULL)),
- MinConfidence(Options.get("MinConfidence", getConfidenceMapping(),
- Confidence::CL_Reasonable)),
- NamingStyle(Options.get("NamingStyle", getStyleMapping(),
- VariableNamer::NS_CamelCase)) {}
+ MinConfidence(Options.get("MinConfidence", Confidence::CL_Reasonable)),
+ NamingStyle(Options.get("NamingStyle", VariableNamer::NS_CamelCase)) {}
void LoopConvertCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) {
Options.store(Opts, "MaxCopySize", std::to_string(MaxCopySize));
- Options.store(Opts, "MinConfidence", MinConfidence, getConfidenceMapping());
- Options.store(Opts, "NamingStyle", NamingStyle, getStyleMapping());
+ Options.store(Opts, "MinConfidence", MinConfidence);
+ Options.store(Opts, "NamingStyle", NamingStyle);
}
void LoopConvertCheck::registerMatchers(MatchFinder *Finder) {