[PATCH] D66269: [clang-tidy] Migrate objc-forbidden-subclassing to use isDerivedFrom 🚛
Stephane Moore via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Aug 14 19:01:17 PDT 2019
stephanemoore created this revision.
Herald added subscribers: cfe-commits, xazax.hun.
Herald added a project: clang.
This migrates objc-forbidden-subclassing to `isDerivedFrom` as it now
supports matching Objective-C interface declarations.
Test Notes:
Ran clang tools tests.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D66269
Files:
clang-tools-extra/clang-tidy/objc/ForbiddenSubclassingCheck.cpp
Index: clang-tools-extra/clang-tidy/objc/ForbiddenSubclassingCheck.cpp
===================================================================
--- clang-tools-extra/clang-tidy/objc/ForbiddenSubclassingCheck.cpp
+++ clang-tools-extra/clang-tidy/objc/ForbiddenSubclassingCheck.cpp
@@ -37,33 +37,6 @@
"UITextInputMode;"
"UIWebView";
-/// \brief Matches Objective-C classes that directly or indirectly
-/// have a superclass matching \c Base.
-///
-/// Note that a class is not considered to be a subclass of itself.
-///
-/// Example matches Y, Z
-/// (matcher = objcInterfaceDecl(hasName("X")))
-/// \code
-/// @interface X
-/// @end
-/// @interface Y : X // directly derived
-/// @end
-/// @interface Z : Y // indirectly derived
-/// @end
-/// \endcode
-AST_MATCHER_P(ObjCInterfaceDecl, isSubclassOf,
- ast_matchers::internal::Matcher<ObjCInterfaceDecl>, Base) {
- for (const auto *SuperClass = Node.getSuperClass();
- SuperClass != nullptr;
- SuperClass = SuperClass->getSuperClass()) {
- if (Base.matches(*SuperClass, Finder, Builder)) {
- return true;
- }
- }
- return false;
-}
-
} // namespace
ForbiddenSubclassingCheck::ForbiddenSubclassingCheck(
@@ -82,7 +55,7 @@
Finder->addMatcher(
objcInterfaceDecl(
- isSubclassOf(
+ isDerivedFrom(
objcInterfaceDecl(
hasAnyName(
std::vector<StringRef>(
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D66269.215305.patch
Type: text/x-patch
Size: 1449 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190815/106577ad/attachment-0001.bin>
More information about the cfe-commits
mailing list