diff options
| author | Yan Zhang <ynzhang@google.com> | 2018-04-20 23:18:09 +0000 |
|---|---|---|
| committer | Yan Zhang <ynzhang@google.com> | 2018-04-20 23:18:09 +0000 |
| commit | e3f50ecb3a0886923c697ba8246d8cb8756480c1 (patch) | |
| tree | d69f40cd7519fa5a65820f1e6e30f811d3c7cb34 | |
| parent | c8ac0a6f979c36ad7f7c3e1b9b2e8260f483aa15 (diff) | |
| download | bcm5719-llvm-e3f50ecb3a0886923c697ba8246d8cb8756480c1.tar.gz bcm5719-llvm-e3f50ecb3a0886923c697ba8246d8cb8756480c1.zip | |
[clang-tidy] add new check to find out objc ivars which do not have prefix '_'
Summary:
For code of ivar declaration:
int barWithoutPrefix;
The fix will be:
int _barWithoutPrefix;
Reviewers: benhamilton, hokein, alexfh, aaron.ballman, ilya-biryukov
Reviewed By: alexfh
Subscribers: Eugene.Zelenko, xazax.hun, klimek, mgorny, cfe-commits
Tags: #clang-tools-extra
Differential Revision: https://reviews.llvm.org/D45392
llvm-svn: 330492
| -rw-r--r-- | clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp | 4 | ||||
| -rw-r--r-- | clang-tools-extra/test/clang-tidy/readability-identifier-naming-objc.m | 15 |
2 files changed, 19 insertions, 0 deletions
diff --git a/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp b/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp index 95a71f63986..c6b5265efdc 100644 --- a/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp @@ -109,6 +109,7 @@ namespace readability { m(TemplateParameter) \ m(TypeAlias) \ m(MacroDefinition) \ + m(ObjcIvar) \ enum StyleKind { #define ENUMERATE(v) SK_ ## v, @@ -384,6 +385,9 @@ static StyleKind findStyleKind( const NamedDecl *D, const std::vector<llvm::Optional<IdentifierNamingCheck::NamingStyle>> &NamingStyles) { + if (isa<ObjCIvarDecl>(D) && NamingStyles[SK_ObjcIvar]) + return SK_ObjcIvar; + if (isa<TypedefDecl>(D) && NamingStyles[SK_Typedef]) return SK_Typedef; diff --git a/clang-tools-extra/test/clang-tidy/readability-identifier-naming-objc.m b/clang-tools-extra/test/clang-tidy/readability-identifier-naming-objc.m new file mode 100644 index 00000000000..4b3be03fe92 --- /dev/null +++ b/clang-tools-extra/test/clang-tidy/readability-identifier-naming-objc.m @@ -0,0 +1,15 @@ +// RUN: %check_clang_tidy %s readability-identifier-naming %t \ +// RUN: -config='{CheckOptions: \ +// RUN: [{key: readability-identifier-naming.ObjcIvarPrefix, value: '_'}]}' \ +// RUN: -- + +@interface Foo +@end + +@interface Foo () { + int _bar; + int barWithoutPrefix; + // CHECK-MESSAGES: :[[@LINE-1]]:9: warning: invalid case style for objc ivar 'barWithoutPrefix' [readability-identifier-naming] + // CHECK-FIXES: int _barWithoutPrefix; +} +@end |

