Author: Björn Schäpers Date: 2026-07-03T17:48:19+02:00 New Revision: d2b5a1fabf98178713282658605f615ab14a5d68
URL: https://github.com/llvm/llvm-project/commit/d2b5a1fabf98178713282658605f615ab14a5d68 DIFF: https://github.com/llvm/llvm-project/commit/d2b5a1fabf98178713282658605f615ab14a5d68.diff LOG: [clang-format] Fix annotating paren after in (#206810) The y.in(foo) was considered a cast, and thus the following - annotated as unary operator. Fixes #206339 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 4a771a4a92a43..df640cf503c9d 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -2821,7 +2821,7 @@ class AnnotatingParser { // If there is an identifier (or with a few exceptions a keyword) right // before the parentheses, this is unlikely to be a cast. if (LeftOfParens->Tok.getIdentifierInfo() && - LeftOfParens->isNoneOf(Keywords.kw_in, tok::kw_return, tok::kw_case, + LeftOfParens->isNoneOf(TT_ObjCForIn, tok::kw_return, tok::kw_case, tok::kw_delete, tok::kw_throw)) { return false; } diff --git a/clang/unittests/Format/TokenAnnotatorTest.cpp b/clang/unittests/Format/TokenAnnotatorTest.cpp index 25ad923af8f4a..8ef7e7387e269 100644 --- a/clang/unittests/Format/TokenAnnotatorTest.cpp +++ b/clang/unittests/Format/TokenAnnotatorTest.cpp @@ -997,6 +997,11 @@ TEST_F(TokenAnnotatorTest, UnderstandsCasts) { EXPECT_TOKEN(Tokens[10], tok::r_paren, TT_CastRParen); EXPECT_TOKEN(Tokens[11], tok::amp, TT_UnaryOperator); + Tokens = annotate("auto x = y.in(foo) - w;"); + ASSERT_EQ(Tokens.size(), 13u) << Tokens; + EXPECT_TOKEN(Tokens[8], tok::r_paren, TT_Unknown); // NOT TT_CastRParen + EXPECT_TOKEN(Tokens[9], tok::minus, TT_BinaryOperator); + auto Style = getLLVMStyle(); Style.TypeNames.push_back("Foo"); Tokens = annotate("#define FOO(bar) foo((Foo)&bar)", Style); _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
