https://github.com/revane created https://github.com/llvm/llvm-project/pull/86976
Until now, they were just ignored by RenamerClangTidyCheck. >From 85539210edf644259bb0dbb1d090e092709a1a1d Mon Sep 17 00:00:00 2001 From: Edwin Vane <rev...@google.com> Date: Thu, 28 Mar 2024 09:24:34 -0400 Subject: [PATCH] Support renaming designated initializers Until now, they were just ignored by RenamerClangTidyCheck. --- .../utils/RenamerClangTidyCheck.cpp | 19 +++++++++++++++++++ .../readability/identifier-naming.cpp | 8 ++++++++ 2 files changed, 27 insertions(+) diff --git a/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp b/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp index da1433aa2d05d4..e3409dfbb8f677 100644 --- a/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp +++ b/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp @@ -367,6 +367,25 @@ class RenamerClangTidyVisitor return true; } + bool VisitDesignatedInitExpr(DesignatedInitExpr *Expr) { + for (const auto &Designator : Expr->designators()) { + if (!Designator.isFieldDesignator()) + continue; + auto *FieldDecl = Designator.getFieldDecl(); + if (!FieldDecl) + continue; + auto *II = FieldDecl->getIdentifier(); + if (!II) + continue; + SourceRange FixLocation{ + Designator.getFieldLoc(), + Designator.getFieldLoc().getLocWithOffset(II->getLength())}; + Check->addUsage(FieldDecl, FixLocation, SM); + } + + return true; + } + private: RenamerClangTidyCheck *Check; const SourceManager *SM; diff --git a/clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming.cpp b/clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming.cpp index 84bf7764583e80..9c390e544c2abd 100644 --- a/clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming.cpp @@ -755,3 +755,11 @@ STATIC_MACRO void someFunc(MyFunPtr, const MyFunPtr****) {} // CHECK-FIXES: {{^}}STATIC_MACRO void someFunc(my_fun_ptr_t, const my_fun_ptr_t****) {} #undef STATIC_MACRO } + +struct Some_struct { + int SomeMember; +// CHECK-MESSAGES: :[[@LINE-1]]:7: warning: invalid case style for public member 'SomeMember' [readability-identifier-naming] +// CHECK-FIXES: {{^}} int some_member; +}; +Some_struct g_s{ .SomeMember = 1 }; +// CHECK-FIXES: {{^}}Some_struct g_s{ .some_member = 1 }; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits