diff options
| author | Eric Fiselier <eric@efcs.ca> | 2016-11-16 21:15:58 +0000 |
|---|---|---|
| committer | Eric Fiselier <eric@efcs.ca> | 2016-11-16 21:15:58 +0000 |
| commit | 732a3e0dd198a8b61d7704f878b29605ffd7a7ad (patch) | |
| tree | f6d75492ec0767c4d4e95a40ef3716698e882e52 /clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp | |
| parent | c156427ded1dfa7686c90cc56ad16013a079a742 (diff) | |
| download | bcm5719-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.cpp | 9 |
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; } |

