================
@@ -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);
----------------
jwidauer wrote:

Nice! Didn't know about those! Thanks! Fixed!

https://github.com/llvm/llvm-project/pull/182577
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to