Skip to content

Conversation

@PiJoules
Copy link
Contributor

… correctly" (#164670)"

This reverts commit 50ca1f4.

Reverting because this leads to the bug on ToT described in #164866. The original fix addresses an old regression which we'd still like to land eventually. See the discussion in #164670 for more context.

… correctly" (llvm#164670)"

This reverts commit 50ca1f4.

Reverting because this leads to the bug on ToT described in
llvm#164866. The original fix
addresses an old regression which we'd still like to land eventually.
See the discussion in llvm#164670
for more context.
@llvmbot
Copy link
Member

llvmbot commented Oct 24, 2025

@llvm/pr-subscribers-clang-format

Author: None (PiJoules)

Changes

… correctly" (#164670)"

This reverts commit 50ca1f4.

Reverting because this leads to the bug on ToT described in #164866. The original fix addresses an old regression which we'd still like to land eventually. See the discussion in #164670 for more context.


Full diff: https://github.com/llvm/llvm-project/pull/165038.diff

2 Files Affected:

  • (modified) clang/lib/Format/TokenAnnotator.cpp (+7-3)
  • (modified) clang/unittests/Format/TokenAnnotatorTest.cpp (-5)
diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp
index 1d0dfd0b9c151..a8a9c51952fbd 100644
--- a/clang/lib/Format/TokenAnnotator.cpp
+++ b/clang/lib/Format/TokenAnnotator.cpp
@@ -3791,12 +3791,18 @@ static bool isFunctionDeclarationName(const LangOptions &LangOpts,
   if (Current.is(TT_FunctionDeclarationName))
     return true;
 
-  if (Current.isNoneOf(tok::identifier, tok::kw_operator))
+  if (!Current.Tok.getIdentifierInfo())
     return false;
 
   const auto *Prev = Current.getPreviousNonComment();
   assert(Prev);
 
+  if (Prev->is(tok::coloncolon))
+    Prev = Prev->Previous;
+
+  if (!Prev)
+    return false;
+
   const auto &Previous = *Prev;
 
   if (const auto *PrevPrev = Previous.getPreviousNonComment();
@@ -3845,8 +3851,6 @@ static bool isFunctionDeclarationName(const LangOptions &LangOpts,
 
   // Find parentheses of parameter list.
   if (Current.is(tok::kw_operator)) {
-    if (Line.startsWith(tok::kw_friend))
-      return true;
     if (Previous.Tok.getIdentifierInfo() &&
         Previous.isNoneOf(tok::kw_return, tok::kw_co_return)) {
       return true;
diff --git a/clang/unittests/Format/TokenAnnotatorTest.cpp b/clang/unittests/Format/TokenAnnotatorTest.cpp
index ca99940890984..f3637383a0a65 100644
--- a/clang/unittests/Format/TokenAnnotatorTest.cpp
+++ b/clang/unittests/Format/TokenAnnotatorTest.cpp
@@ -1129,11 +1129,6 @@ TEST_F(TokenAnnotatorTest, UnderstandsOverloadedOperators) {
   ASSERT_EQ(Tokens.size(), 7u) << Tokens;
   // Not TT_FunctionDeclarationName.
   EXPECT_TOKEN(Tokens[3], tok::kw_operator, TT_Unknown);
-
-  Tokens = annotate("SomeAPI::operator()();");
-  ASSERT_EQ(Tokens.size(), 9u) << Tokens;
-  // Not TT_FunctionDeclarationName.
-  EXPECT_TOKEN(Tokens[2], tok::kw_operator, TT_Unknown);
 }
 
 TEST_F(TokenAnnotatorTest, OverloadedOperatorInTemplate) {

@PiJoules PiJoules merged commit bd27abc into llvm:main Oct 24, 2025
12 checks passed
@PiJoules PiJoules deleted the revert-overload-operator branch October 24, 2025 21:36
owenca added a commit that referenced this pull request Oct 25, 2025
dvbuka pushed a commit to dvbuka/llvm-project that referenced this pull request Oct 27, 2025
llvm#165038)

… correctly" (llvm#164670)"

This reverts commit 50ca1f4.

Reverting because this leads to the bug on ToT described in
llvm#164866. The original fix
addresses an old regression which we'd still like to land eventually.
See the discussion in llvm#164670
for more context.
dvbuka pushed a commit to dvbuka/llvm-project that referenced this pull request Oct 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants