[clang-tidy] Fix readability-identifer-naming duplicating prefix or suffix for replacements.

If a identifier has a correct prefix/suffix but a bad case, the fix won't strip them when computing the correct case, leading to duplication when the are added back.

Reviewed By: aaron.ballman

Differential Revision: https://reviews.llvm.org/D98521
This commit is contained in:
Nathan James 2021-03-15 14:20:47 +00:00
parent 74c270f33e
commit 0333dde923
No known key found for this signature in database
GPG Key ID: CC007AFCDA90AA5F
2 changed files with 9 additions and 0 deletions

View File

@ -407,6 +407,8 @@ static bool isParamInMainLikeFunction(const ParmVarDecl &ParmDecl,
static std::string
fixupWithStyle(StringRef Name,
const IdentifierNamingCheck::NamingStyle &Style) {
Name.consume_front(Style.Prefix);
Name.consume_back(Style.Suffix);
const std::string Fixed = fixupWithCase(
Name, Style.Case.getValueOr(IdentifierNamingCheck::CaseType::CT_AnyCase));
StringRef Mid = StringRef(Fixed).trim("_");

View File

@ -148,6 +148,10 @@ int global3;
int g_twice_global3 = ADD_TO_SELF(global3);
// CHECK-FIXES: {{^}}int g_twice_global3 = ADD_TO_SELF(g_global3);{{$}}
int g_Global4;
// CHECK-MESSAGES: :[[@LINE-1]]:5: warning: invalid case style for global variable 'g_Global4'
// CHECK-FIXES: {{^}}int g_global4;{{$}}
enum my_enumeration {
// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: invalid case style for enum 'my_enumeration'
// CHECK-FIXES: {{^}}enum EMyEnumeration {{{$}}
@ -544,6 +548,9 @@ unsigned const MyConstGlobal_array[] = {1,2,3};
// CHECK-FIXES: {{^}}unsigned const MY_CONST_GLOBAL_ARRAY[] = {1,2,3};{{$}}
int * MyGlobal_Ptr;// -> ok
int * my_second_global_Ptr;
// CHECK-MESSAGES: :[[@LINE-1]]:7: warning: invalid case style for global pointer 'my_second_global_Ptr'
// CHECK-FIXES: {{^}}int * MySecondGlobal_Ptr;{{$}}
int * const MyConstantGlobalPointer = nullptr;
// CHECK-MESSAGES: :[[@LINE-1]]:13: warning: invalid case style for global constant pointer 'MyConstantGlobalPointer'
// CHECK-FIXES: {{^}}int * const MY_CONSTANT_GLOBAL_POINTER_Ptr = nullptr;{{$}}