================
@@ -39,6 +40,21 @@ AST_MATCHER(CXXMethodDecl, isSpecialFunction) {
return isa<CXXDestructorDecl>(Node) || Node.isCopyAssignmentOperator() ||
Node.isMoveAssignmentOperator();
}
+
+AST_MATCHER(CXXMethodDecl, hasPublicOverload) {
+ const DeclContext::lookup_result LookupResult =
+ Node.getParent()->lookup(Node.getNameInfo().getName());
+
+ if (LookupResult.isSingleResult())
+ return false; // No overloads
+
+ auto IsPublicOverload = [](const Decl *Overload) {
+ return isa<CXXMethodDecl>(Overload) && Overload->getAccess() == AS_public;
+ };
+
+ return std::any_of(LookupResult.begin(), LookupResult.end(),
+ IsPublicOverload);
----------------
localspook wrote:
```suggestion
return llvm::any_of(LookupResult, IsPublicOverload);
```
https://github.com/llvm/llvm-project/pull/182577
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits