diff options
author | Owen Pan <owenpiano@gmail.com> | 2024-06-21 20:23:18 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-21 20:23:18 -0700 |
commit | d69050d614cc3348fb639f4a1862e8b9a9ad9885 (patch) | |
tree | 0008dff6091727161afc2c3b7e24fc017ecabdb4 /clang | |
parent | 38458144bf74417aa36bdd468ce3b3d482cdaf99 (diff) | |
download | llvm-d69050d614cc3348fb639f4a1862e8b9a9ad9885.zip llvm-d69050d614cc3348fb639f4a1862e8b9a9ad9885.tar.gz llvm-d69050d614cc3348fb639f4a1862e8b9a9ad9885.tar.bz2 |
[clang-format] Annotate r_paren before braced list as TT_CastRParen (#96271)
Fixes #96096.
Diffstat (limited to 'clang')
-rw-r--r-- | clang/lib/Format/TokenAnnotator.cpp | 5 | ||||
-rw-r--r-- | clang/unittests/Format/TokenAnnotatorTest.cpp | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index 63a028a..55c5ece 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -2837,6 +2837,11 @@ private: if (!AfterRParen->Next) return false; + if (AfterRParen->is(tok::l_brace) && + AfterRParen->getBlockKind() == BK_BracedInit) { + return true; + } + // If the next token after the parenthesis is a unary operator, assume // that this is cast, unless there are unexpected tokens inside the // parenthesis. diff --git a/clang/unittests/Format/TokenAnnotatorTest.cpp b/clang/unittests/Format/TokenAnnotatorTest.cpp index 0dc5064..12c4b7f 100644 --- a/clang/unittests/Format/TokenAnnotatorTest.cpp +++ b/clang/unittests/Format/TokenAnnotatorTest.cpp @@ -662,6 +662,10 @@ TEST_F(TokenAnnotatorTest, UnderstandsCasts) { EXPECT_TOKEN(Tokens[3], tok::r_paren, TT_Unknown); EXPECT_TOKEN(Tokens[4], tok::amp, TT_BinaryOperator); + Tokens = annotate("return (struct foo){};"); + ASSERT_EQ(Tokens.size(), 9u) << Tokens; + EXPECT_TOKEN(Tokens[4], tok::r_paren, TT_CastRParen); + Tokens = annotate("#define FOO(bar) foo((uint64_t)&bar)"); ASSERT_EQ(Tokens.size(), 15u) << Tokens; EXPECT_TOKEN(Tokens[10], tok::r_paren, TT_CastRParen); |