summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp
diff options
context:
space:
mode:
authorYan Zhang <ynzhang@google.com>2018-01-17 00:19:35 +0000
committerYan Zhang <ynzhang@google.com>2018-01-17 00:19:35 +0000
commit8c298d2ff2409c7a552b8d5d012c03b85cb738ce (patch)
treeb405d34eb337d593ac2f028edc4b644d8ec3a105 /clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp
parentc07e0bd5336d4b48b9c5caf79c887e145f279b0c (diff)
downloadbcm5719-llvm-8c298d2ff2409c7a552b8d5d012c03b85cb738ce.tar.gz
bcm5719-llvm-8c298d2ff2409c7a552b8d5d012c03b85cb738ce.zip
add ID as a special acronym to objc property declaration check for property names like bundleID.allow using acronyms as suffix.
Reviewers: benhamilton, hokein Reviewed By: benhamilton Subscribers: klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D42143 llvm-svn: 322602
Diffstat (limited to 'clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp')
-rw-r--r--clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp b/clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp
index e47b2411b05..4ca03bf3030 100644
--- a/clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp
+++ b/clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp
@@ -41,7 +41,8 @@ constexpr char DefaultSpecialAcronyms[] =
"RGB;"
"CMYK;"
"MIDI;"
- "FTP";
+ "FTP;"
+ "ID";
/// For now we will only fix 'CamelCase' property to
/// 'camelCase'. For other cases the users need to
@@ -58,13 +59,13 @@ FixItHint generateFixItHint(const ObjCPropertyDecl *Decl) {
return FixItHint();
}
-std::string validPropertyNameRegex(const std::vector<std::string> &Prefixes) {
- std::vector<std::string> EscapedPrefixes;
- EscapedPrefixes.reserve(Prefixes.size());
+std::string validPropertyNameRegex(const std::vector<std::string> &Acronyms) {
+ std::vector<std::string> EscapedAcronyms;
+ EscapedAcronyms.reserve(Acronyms.size());
// In case someone defines a custom prefix which includes a regex
// special character, escape all the prefixes.
- std::transform(Prefixes.begin(), Prefixes.end(),
- std::back_inserter(EscapedPrefixes), [](const std::string& s) {
+ std::transform(Acronyms.begin(), Acronyms.end(),
+ std::back_inserter(EscapedAcronyms), [](const std::string& s) {
return llvm::Regex::escape(s); });
// Allow any of these names:
// foo
@@ -73,9 +74,11 @@ std::string validPropertyNameRegex(const std::vector<std::string> &Prefixes) {
// urlString
// URL
// URLString
+ // bundleID
return std::string("::((") +
- llvm::join(EscapedPrefixes.begin(), EscapedPrefixes.end(), "|") +
- ")[A-Z]?)?[a-z]+[a-z0-9]*([A-Z][a-z0-9]+)*$";
+ llvm::join(EscapedAcronyms.begin(), EscapedAcronyms.end(), "|") +
+ ")[A-Z]?)?[a-z]+[a-z0-9]*([A-Z][a-z0-9]+)*" + "(" +
+ llvm::join(EscapedAcronyms.begin(), EscapedAcronyms.end(), "|") + ")?$";
}
} // namespace
OpenPOWER on IntegriCloud