[PATCH] D113830: [clang-tidy] Fix false positive in `readability-identifier-naming` check involving `override` attribute
Salman Javed via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sun Nov 14 02:07:13 PST 2021
salman-javed-nz added inline comments.
================
Comment at: clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp:1260
if (Decl->isMain() || !Decl->isUserProvided() ||
- Decl->size_overridden_methods() > 0)
+ Decl->size_overridden_methods() > 0 || Decl->hasAttr<OverrideAttr>())
return SK_Invalid;
----------------
Adding a call to `hasAttr<OverrideAttr>()` looks OK to me -- this is in line with [[ https://clang.llvm.org/doxygen/ASTMatchers_8h_source.html#l06002 | AST_MATCHER(CXXMethodDecl, isOverride)]]. Other clang-tidy checks have done the same thing.
================
Comment at: clang-tools-extra/test/clang-tidy/checkers/readability-identifier-naming.cpp:282-294
class AOverridden {
public:
virtual ~AOverridden() = default;
virtual void BadBaseMethod() = 0;
// CHECK-MESSAGES: :[[@LINE-1]]:16: warning: invalid case style for virtual method 'BadBaseMethod'
// CHECK-FIXES: {{^}} virtual void v_Bad_Base_Method() = 0;
};
----------------
How about a test to check that diagnostics are generated even if the `override` keyword is omitted.
This challenges the `Decl->size_overridden_methods() > 0` portion of the `if` statement.
================
Comment at: clang-tools-extra/test/clang-tidy/checkers/readability-identifier-naming.cpp:321
+ // (note that there could be specializations of the template base class, though)
+ void BadBaseMethod() override{}
+};
----------------
What should happen if the base method is overridden without the `override` keyword?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D113830/new/
https://reviews.llvm.org/D113830
More information about the cfe-commits
mailing list