[llvm-branch-commits] [clang] release/22.x: [clang-format] Correctly annotate binary stars in braced init lists (#186732) (PR #188330)

2026-04-28 Thread via llvm-branch-commits

https://github.com/mydeveloperday commented:

lgtm

https://github.com/llvm/llvm-project/pull/188330
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] release/22.x: [clang-format] Correctly annotate binary stars in braced init lists (#186732) (PR #188330)

2026-04-20 Thread Cullen Rhodes via llvm-branch-commits

https://github.com/c-rhodes closed 
https://github.com/llvm/llvm-project/pull/188330
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] release/22.x: [clang-format] Correctly annotate binary stars in braced init lists (#186732) (PR #188330)

2026-04-20 Thread Cullen Rhodes via llvm-branch-commits

https://github.com/c-rhodes updated 
https://github.com/llvm/llvm-project/pull/188330

>From d1c9116f844206ad2167e0db0d1d6e1452e794dc Mon Sep 17 00:00:00 2001
From: owenca 
Date: Mon, 16 Mar 2026 12:29:06 -0700
Subject: [PATCH] [clang-format] Correctly annotate binary stars in braced init
 lists (#186732)

Fixes #175241

(cherry picked from commit 9d1d7a5645783b283f3289832a5d31feefd7a468)
---
 clang/lib/Format/TokenAnnotator.cpp   | 9 ++---
 clang/unittests/Format/TokenAnnotatorTest.cpp | 6 ++
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/clang/lib/Format/TokenAnnotator.cpp 
b/clang/lib/Format/TokenAnnotator.cpp
index c0d31a1c9e2f4..fe1361bb25693 100644
--- a/clang/lib/Format/TokenAnnotator.cpp
+++ b/clang/lib/Format/TokenAnnotator.cpp
@@ -1251,13 +1251,18 @@ class AnnotatingParser {
   OpeningBrace.overwriteFixedType(TT_DictLiteral);
 }
   }
+  bool IsBracedListComma = false;
   if (CurrentToken->is(tok::comma)) {
 if (Style.isJavaScript())
   OpeningBrace.overwriteFixedType(TT_DictLiteral);
+else
+  IsBracedListComma = OpeningBrace.is(BK_BracedInit);
 ++CommaCount;
   }
   if (!consumeToken())
 return false;
+  if (IsBracedListComma)
+Contexts.back().IsExpression = true;
 }
 return true;
   }
@@ -3051,7 +3056,7 @@ class AnnotatingParser {
   return TT_BinaryOperator;
 
 if (NextToken->isOneOf(tok::arrow, tok::equal, tok::comma, tok::r_paren,
-   TT_RequiresClause) ||
+   tok::semi, TT_RequiresClause) ||
 (NextToken->is(tok::kw_noexcept) && !IsExpression) ||
 NextToken->canBePointerOrReferenceQualifier() ||
 (NextToken->is(tok::l_brace) && !NextToken->getNextNonComment())) {
@@ -3071,8 +3076,6 @@ class AnnotatingParser {
   return TT_PointerOrReference;
 if (NextToken->is(tok::kw_operator) && !IsExpression)
   return TT_PointerOrReference;
-if (NextToken->isOneOf(tok::comma, tok::semi))
-  return TT_PointerOrReference;
 
 // After right braces, star tokens are likely to be pointers to struct,
 // union, or class.
diff --git a/clang/unittests/Format/TokenAnnotatorTest.cpp 
b/clang/unittests/Format/TokenAnnotatorTest.cpp
index e449922710029..82b6c7451d622 100644
--- a/clang/unittests/Format/TokenAnnotatorTest.cpp
+++ b/clang/unittests/Format/TokenAnnotatorTest.cpp
@@ -416,6 +416,12 @@ TEST_F(TokenAnnotatorTest, UnderstandsUsesOfStarAndAmp) {
   EXPECT_TOKEN(Tokens[16], tok::star, TT_BinaryOperator);
   EXPECT_TOKEN(Tokens[22], tok::star, TT_BinaryOperator);
 
+  Tokens = annotate("Foo foo{bar, bar * bar};");
+  ASSERT_EQ(Tokens.size(), 11u) << Tokens;
+  EXPECT_TOKEN(Tokens[6], tok::star, TT_BinaryOperator);
+  // Not TT_StartOfName.
+  EXPECT_TOKEN(Tokens[7], tok::identifier, TT_Unknown);
+
   Tokens = annotate("NSError *__autoreleasing *foo;",
 getLLVMStyle(FormatStyle::LK_ObjC));
   ASSERT_EQ(Tokens.size(), 7u) << Tokens;

___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] release/22.x: [clang-format] Correctly annotate binary stars in braced init lists (#186732) (PR #188330)

2026-04-17 Thread Björn Schäpers via llvm-branch-commits

https://github.com/HazardyKnusperkeks approved this pull request.


https://github.com/llvm/llvm-project/pull/188330
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] release/22.x: [clang-format] Correctly annotate binary stars in braced init lists (#186732) (PR #188330)

2026-04-17 Thread Carlos Galvez via llvm-branch-commits

carlosgalvezp wrote:

@HazardyKnusperkeks @mydeveloperday it would be great if you could review :) 

https://github.com/llvm/llvm-project/pull/188330
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] release/22.x: [clang-format] Correctly annotate binary stars in braced init lists (#186732) (PR #188330)

2026-04-17 Thread Cullen Rhodes via llvm-branch-commits

c-rhodes wrote:

22.1.4 next Tuesday, be good to get this reviewed and landed by then if we 
still want this in

https://github.com/llvm/llvm-project/pull/188330
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] release/22.x: [clang-format] Correctly annotate binary stars in braced init lists (#186732) (PR #188330)

2026-03-24 Thread via llvm-branch-commits

llvmbot wrote:




@llvm/pr-subscribers-clang-format

Author: llvmbot


Changes

Backport 9d1d7a5645783b283f3289832a5d31feefd7a468

Requested by: @carlosgalvezp

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


2 Files Affected:

- (modified) clang/lib/Format/TokenAnnotator.cpp (+6-3) 
- (modified) clang/unittests/Format/TokenAnnotatorTest.cpp (+6) 


``diff
diff --git a/clang/lib/Format/TokenAnnotator.cpp 
b/clang/lib/Format/TokenAnnotator.cpp
index c0d31a1c9e2f4..fe1361bb25693 100644
--- a/clang/lib/Format/TokenAnnotator.cpp
+++ b/clang/lib/Format/TokenAnnotator.cpp
@@ -1251,13 +1251,18 @@ class AnnotatingParser {
   OpeningBrace.overwriteFixedType(TT_DictLiteral);
 }
   }
+  bool IsBracedListComma = false;
   if (CurrentToken->is(tok::comma)) {
 if (Style.isJavaScript())
   OpeningBrace.overwriteFixedType(TT_DictLiteral);
+else
+  IsBracedListComma = OpeningBrace.is(BK_BracedInit);
 ++CommaCount;
   }
   if (!consumeToken())
 return false;
+  if (IsBracedListComma)
+Contexts.back().IsExpression = true;
 }
 return true;
   }
@@ -3051,7 +3056,7 @@ class AnnotatingParser {
   return TT_BinaryOperator;
 
 if (NextToken->isOneOf(tok::arrow, tok::equal, tok::comma, tok::r_paren,
-   TT_RequiresClause) ||
+   tok::semi, TT_RequiresClause) ||
 (NextToken->is(tok::kw_noexcept) && !IsExpression) ||
 NextToken->canBePointerOrReferenceQualifier() ||
 (NextToken->is(tok::l_brace) && !NextToken->getNextNonComment())) {
@@ -3071,8 +3076,6 @@ class AnnotatingParser {
   return TT_PointerOrReference;
 if (NextToken->is(tok::kw_operator) && !IsExpression)
   return TT_PointerOrReference;
-if (NextToken->isOneOf(tok::comma, tok::semi))
-  return TT_PointerOrReference;
 
 // After right braces, star tokens are likely to be pointers to struct,
 // union, or class.
diff --git a/clang/unittests/Format/TokenAnnotatorTest.cpp 
b/clang/unittests/Format/TokenAnnotatorTest.cpp
index e449922710029..82b6c7451d622 100644
--- a/clang/unittests/Format/TokenAnnotatorTest.cpp
+++ b/clang/unittests/Format/TokenAnnotatorTest.cpp
@@ -416,6 +416,12 @@ TEST_F(TokenAnnotatorTest, UnderstandsUsesOfStarAndAmp) {
   EXPECT_TOKEN(Tokens[16], tok::star, TT_BinaryOperator);
   EXPECT_TOKEN(Tokens[22], tok::star, TT_BinaryOperator);
 
+  Tokens = annotate("Foo foo{bar, bar * bar};");
+  ASSERT_EQ(Tokens.size(), 11u) << Tokens;
+  EXPECT_TOKEN(Tokens[6], tok::star, TT_BinaryOperator);
+  // Not TT_StartOfName.
+  EXPECT_TOKEN(Tokens[7], tok::identifier, TT_Unknown);
+
   Tokens = annotate("NSError *__autoreleasing *foo;",
 getLLVMStyle(FormatStyle::LK_ObjC));
   ASSERT_EQ(Tokens.size(), 7u) << Tokens;

``




https://github.com/llvm/llvm-project/pull/188330
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] release/22.x: [clang-format] Correctly annotate binary stars in braced init lists (#186732) (PR #188330)

2026-03-24 Thread via llvm-branch-commits

llvmbot wrote:

@HazardyKnusperkeks What do you think about merging this PR to the release 
branch?

https://github.com/llvm/llvm-project/pull/188330
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] release/22.x: [clang-format] Correctly annotate binary stars in braced init lists (#186732) (PR #188330)

2026-03-24 Thread via llvm-branch-commits

https://github.com/llvmbot milestoned 
https://github.com/llvm/llvm-project/pull/188330
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] release/22.x: [clang-format] Correctly annotate binary stars in braced init lists (#186732) (PR #188330)

2026-03-24 Thread via llvm-branch-commits

https://github.com/llvmbot created 
https://github.com/llvm/llvm-project/pull/188330

Backport 9d1d7a5645783b283f3289832a5d31feefd7a468

Requested by: @carlosgalvezp

>From 02a15a9718545c47b1919d30403759061da950d6 Mon Sep 17 00:00:00 2001
From: owenca 
Date: Mon, 16 Mar 2026 12:29:06 -0700
Subject: [PATCH] [clang-format] Correctly annotate binary stars in braced init
 lists (#186732)

Fixes #175241

(cherry picked from commit 9d1d7a5645783b283f3289832a5d31feefd7a468)
---
 clang/lib/Format/TokenAnnotator.cpp   | 9 ++---
 clang/unittests/Format/TokenAnnotatorTest.cpp | 6 ++
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/clang/lib/Format/TokenAnnotator.cpp 
b/clang/lib/Format/TokenAnnotator.cpp
index c0d31a1c9e2f4..fe1361bb25693 100644
--- a/clang/lib/Format/TokenAnnotator.cpp
+++ b/clang/lib/Format/TokenAnnotator.cpp
@@ -1251,13 +1251,18 @@ class AnnotatingParser {
   OpeningBrace.overwriteFixedType(TT_DictLiteral);
 }
   }
+  bool IsBracedListComma = false;
   if (CurrentToken->is(tok::comma)) {
 if (Style.isJavaScript())
   OpeningBrace.overwriteFixedType(TT_DictLiteral);
+else
+  IsBracedListComma = OpeningBrace.is(BK_BracedInit);
 ++CommaCount;
   }
   if (!consumeToken())
 return false;
+  if (IsBracedListComma)
+Contexts.back().IsExpression = true;
 }
 return true;
   }
@@ -3051,7 +3056,7 @@ class AnnotatingParser {
   return TT_BinaryOperator;
 
 if (NextToken->isOneOf(tok::arrow, tok::equal, tok::comma, tok::r_paren,
-   TT_RequiresClause) ||
+   tok::semi, TT_RequiresClause) ||
 (NextToken->is(tok::kw_noexcept) && !IsExpression) ||
 NextToken->canBePointerOrReferenceQualifier() ||
 (NextToken->is(tok::l_brace) && !NextToken->getNextNonComment())) {
@@ -3071,8 +3076,6 @@ class AnnotatingParser {
   return TT_PointerOrReference;
 if (NextToken->is(tok::kw_operator) && !IsExpression)
   return TT_PointerOrReference;
-if (NextToken->isOneOf(tok::comma, tok::semi))
-  return TT_PointerOrReference;
 
 // After right braces, star tokens are likely to be pointers to struct,
 // union, or class.
diff --git a/clang/unittests/Format/TokenAnnotatorTest.cpp 
b/clang/unittests/Format/TokenAnnotatorTest.cpp
index e449922710029..82b6c7451d622 100644
--- a/clang/unittests/Format/TokenAnnotatorTest.cpp
+++ b/clang/unittests/Format/TokenAnnotatorTest.cpp
@@ -416,6 +416,12 @@ TEST_F(TokenAnnotatorTest, UnderstandsUsesOfStarAndAmp) {
   EXPECT_TOKEN(Tokens[16], tok::star, TT_BinaryOperator);
   EXPECT_TOKEN(Tokens[22], tok::star, TT_BinaryOperator);
 
+  Tokens = annotate("Foo foo{bar, bar * bar};");
+  ASSERT_EQ(Tokens.size(), 11u) << Tokens;
+  EXPECT_TOKEN(Tokens[6], tok::star, TT_BinaryOperator);
+  // Not TT_StartOfName.
+  EXPECT_TOKEN(Tokens[7], tok::identifier, TT_Unknown);
+
   Tokens = annotate("NSError *__autoreleasing *foo;",
 getLLVMStyle(FormatStyle::LK_ObjC));
   ASSERT_EQ(Tokens.size(), 7u) << Tokens;

___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits