summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2016-11-16 21:15:58 +0000
committerEric Fiselier <eric@efcs.ca>2016-11-16 21:15:58 +0000
commit732a3e0dd198a8b61d7704f878b29605ffd7a7ad (patch)
treef6d75492ec0767c4d4e95a40ef3716698e882e52 /clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
parentc156427ded1dfa7686c90cc56ad16013a079a742 (diff)
downloadbcm5719-llvm-732a3e0dd198a8b61d7704f878b29605ffd7a7ad.tar.gz
bcm5719-llvm-732a3e0dd198a8b61d7704f878b29605ffd7a7ad.zip
[clang-tidy] Fix identifier naming for initializer list member initializers.
Summary: This patch adds handling for member initializers in a constructors initializer list. Previously we only handled base-class and delegating initializers, which are transformed by the `TypeLoc` matcher. For Example: ``` // Style options: All identifiers should start with an upper case letter. struct base { ... }; struct der : base { int field; // FIXES: int Field; der() : der(42) {} // FIXES: Der() : Der(42) {} der(int X) : base(), field(X) {} // FIXES: Der(int X) : Base(), field(X) // Note that `field` doesn't get replaced }; ``` Reviewers: alexfh, hokein, aaron.ballman Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D26744 llvm-svn: 287153
Diffstat (limited to 'clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp')
-rw-r--r--clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp b/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
index f73bc37e09d..c1c2eb70466 100644
--- a/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
@@ -677,6 +677,15 @@ void IdentifierNamingCheck::check(const MatchFinder::MatchResult &Result) {
addUsage(NamingCheckFailures, Decl->getParent(),
Decl->getNameInfo().getSourceRange());
+
+ for (const auto *Init : Decl->inits()) {
+ if (!Init->isWritten() || Init->isInClassMemberInitializer())
+ continue;
+ if (const auto *FD = Init->getAnyMember())
+ addUsage(NamingCheckFailures, FD, SourceRange(Init->getMemberLocation()));
+ // Note: delegating constructors and base class initializers are handled
+ // via the "typeLoc" matcher.
+ }
return;
}
OpenPOWER on IntegriCloud