[clang-tools-extra] r322602 - add ID as a special acronym to objc property declaration check for property names like bundleID.allow using acronyms as suffix.

Yan Zhang via cfe-commits cfe-commits at lists.llvm.org
Tue Jan 16 16:19:35 PST 2018


Author: wizard
Date: Tue Jan 16 16:19:35 2018
New Revision: 322602

URL: http://llvm.org/viewvc/llvm-project?rev=322602&view=rev
Log:
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

Modified:
    clang-tools-extra/trunk/clang-tidy/objc/PropertyDeclarationCheck.cpp
    clang-tools-extra/trunk/test/clang-tidy/objc-property-declaration.m

Modified: clang-tools-extra/trunk/clang-tidy/objc/PropertyDeclarationCheck.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/objc/PropertyDeclarationCheck.cpp?rev=322602&r1=322601&r2=322602&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/objc/PropertyDeclarationCheck.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/objc/PropertyDeclarationCheck.cpp Tue Jan 16 16:19:35 2018
@@ -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 ObjCPr
   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
   // 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
 

Modified: clang-tools-extra/trunk/test/clang-tidy/objc-property-declaration.m
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/objc-property-declaration.m?rev=322602&r1=322601&r2=322602&view=diff
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/objc-property-declaration.m (original)
+++ clang-tools-extra/trunk/test/clang-tidy/objc-property-declaration.m Tue Jan 16 16:19:35 2018
@@ -7,6 +7,7 @@
 // CHECK-FIXES: @property(assign, nonatomic) int notCamelCase;
 @property(assign, nonatomic) int camelCase;
 @property(strong, nonatomic) NSString *URLString;
+ at property(strong, nonatomic) NSString *bundleID;
 @property(strong, nonatomic) NSString *URL_string;
 // CHECK-MESSAGES: :[[@LINE-1]]:40: warning: property name 'URL_string' should use lowerCamelCase style, according to the Apple Coding Guidelines [objc-property-declaration]
 @end




More information about the cfe-commits mailing list