Author: Owen Pan Date: 2024-09-03T19:07:14-07:00 New Revision: a27ff17034d66d852ba83be7d237d6a623cb4ff4
URL: https://github.com/llvm/llvm-project/commit/a27ff17034d66d852ba83be7d237d6a623cb4ff4 DIFF: https://github.com/llvm/llvm-project/commit/a27ff17034d66d852ba83be7d237d6a623cb4ff4.diff LOG: [clang-format] Fix a regression in annotating ObjCBlockLParen (#107021) Fixes #106994. Added: Modified: clang/lib/Format/TokenAnnotator.cpp clang/unittests/Format/TokenAnnotatorTest.cpp Removed: ################################################################################ diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index 64e936f627d438..bf37062393719c 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -3588,8 +3588,7 @@ static FormatToken *getFunctionName(const AnnotatedLine &Line, // Make sure the name is followed by a pair of parentheses. if (Name) { - if (Tok->is(tok::l_paren) && Tok->isNot(TT_FunctionTypeLParen) && - Tok->MatchingParen) { + if (Tok->is(tok::l_paren) && Tok->is(TT_Unknown) && Tok->MatchingParen) { OpeningParen = Tok; return Name; } diff --git a/clang/unittests/Format/TokenAnnotatorTest.cpp b/clang/unittests/Format/TokenAnnotatorTest.cpp index 5d37a65250d0b1..b8a86245808e5a 100644 --- a/clang/unittests/Format/TokenAnnotatorTest.cpp +++ b/clang/unittests/Format/TokenAnnotatorTest.cpp @@ -1678,6 +1678,13 @@ TEST_F(TokenAnnotatorTest, UnderstandsObjCBlock) { "}();"); ASSERT_EQ(Tokens.size(), 19u) << Tokens; EXPECT_TOKEN(Tokens[9], tok::l_brace, TT_ObjCBlockLBrace); + + Tokens = annotate("id (^block)(Foo *a) = ^id _Nullable(Foo *_Nullable a) {\n" + " return a;\n" + "};"); + ASSERT_EQ(Tokens.size(), 27u) << Tokens; + EXPECT_TOKEN(Tokens[0], tok::identifier, TT_Unknown); // Not CtorDtorDeclName. + EXPECT_TOKEN(Tokens[1], tok::l_paren, TT_ObjCBlockLParen); } TEST_F(TokenAnnotatorTest, UnderstandsObjCMethodExpr) { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits