[clang-tools-extra] [clang-tidy] Skip overloaded functions in modernize-use-string-view (PR #183921)

Baranov Victor via cfe-commits cfe-commits at lists.llvm.org
Thu Mar 5 08:03:54 PST 2026


================
@@ -21,6 +21,29 @@ using namespace clang::ast_matchers;
 
 namespace clang::tidy::modernize {
 
+namespace {
+AST_MATCHER(FunctionDecl, isOverloaded) {
+  const DeclarationName Name = Node.getDeclName();
+  // Skip lambda-like functions
+  if (Name.isEmpty())
+    return false;
+  const DeclContext *DC = Node.getDeclContext();
+  auto LookupResult = DC->lookup(Name);
+  size_t UniqueSignatures = 0;
+  llvm::SmallPtrSet<const FunctionDecl *, 2> SeenFunctions;
+  for (NamedDecl *ND : LookupResult) {
+    if (const auto *FD = dyn_cast<FunctionDecl>(ND)) {
+      if (SeenFunctions.insert(FD->getCanonicalDecl()).second) {
+        UniqueSignatures++;
+        if (UniqueSignatures > 1)
----------------
vbvictor wrote:

What is purpose of `UniqueSignatures`/`SeenFunctions` variables? Can we just bail out here? 

https://github.com/llvm/llvm-project/pull/183921


More information about the cfe-commits mailing list