Author: Owen Pan Date: 2024-10-14T19:29:44-07:00 New Revision: ee6468494e08651ec7f534781693408f34a74753
URL: https://github.com/llvm/llvm-project/commit/ee6468494e08651ec7f534781693408f34a74753 DIFF: https://github.com/llvm/llvm-project/commit/ee6468494e08651ec7f534781693408f34a74753.diff LOG: Revert "[clang-format] Correctly annotate */& in if condition with braced init (#109505)" This reverts commit 98281da29f7e36e22ff1e20b9cfefda8c31dbe56 which caused a regression. Fixes #112176. 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 f41cf3b32f74e2..fcefaa7bb298ea 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -1175,26 +1175,19 @@ class AnnotatingParser { ScopedContextCreator ContextCreator(*this, tok::l_brace, 1); Contexts.back().ColonIsDictLiteral = true; - - const auto *Prev = OpeningBrace.getPreviousNonComment(); - - if (OpeningBrace.is(BK_BracedInit)) { + if (OpeningBrace.is(BK_BracedInit)) Contexts.back().IsExpression = true; - if (Prev) { - for (auto *Tok = Prev->Previous; Tok && Tok->isPointerOrReference(); - Tok = Tok->Previous) { - Tok->setFinalizedType(TT_PointerOrReference); - } - } - } - - if (Style.isJavaScript() && Prev && Prev->is(TT_JsTypeColon)) + if (Style.isJavaScript() && OpeningBrace.Previous && + OpeningBrace.Previous->is(TT_JsTypeColon)) { Contexts.back().IsExpression = false; - + } + if (Style.isVerilog() && + (!OpeningBrace.getPreviousNonComment() || + OpeningBrace.getPreviousNonComment()->isNot(Keywords.kw_apostrophe))) { + Contexts.back().VerilogMayBeConcatenation = true; + } if (Style.isTableGen()) Contexts.back().ColonIsDictLiteral = false; - else if (Style.isVerilog() && !(Prev && Prev->is(Keywords.kw_apostrophe))) - Contexts.back().VerilogMayBeConcatenation = true; unsigned CommaCount = 0; while (CurrentToken) { diff --git a/clang/unittests/Format/TokenAnnotatorTest.cpp b/clang/unittests/Format/TokenAnnotatorTest.cpp index b78d0ab989e408..00776dac28a14b 100644 --- a/clang/unittests/Format/TokenAnnotatorTest.cpp +++ b/clang/unittests/Format/TokenAnnotatorTest.cpp @@ -308,11 +308,6 @@ TEST_F(TokenAnnotatorTest, UnderstandsUsesOfStarAndAmp) { EXPECT_TOKEN(Tokens[3], tok::star, TT_PointerOrReference); EXPECT_TOKEN(Tokens[4], tok::amp, TT_PointerOrReference); - Tokens = annotate("if (Foo *&foo{a})"); - ASSERT_EQ(Tokens.size(), 11u) << Tokens; - EXPECT_TOKEN(Tokens[3], tok::star, TT_PointerOrReference); - EXPECT_TOKEN(Tokens[4], tok::amp, TT_PointerOrReference); - FormatStyle Style = getLLVMStyle(); Style.TypeNames.push_back("MYI"); Tokens = annotate("if (MYI *p{nullptr})", Style); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits