[clang] [clang-format] Fix annotation of Java/JavaScript keyword extends (PR #125038)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Jan 29 23:32:12 PST 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang-format
Author: Owen Pan (owenca)
<details>
<summary>Changes</summary>
Uncovered in #<!-- -->124891.
---
Full diff: https://github.com/llvm/llvm-project/pull/125038.diff
2 Files Affected:
- (modified) clang/lib/Format/TokenAnnotator.cpp (+5)
- (modified) clang/unittests/Format/TokenAnnotatorTest.cpp (+1)
``````````diff
diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp
index a172df5291ae62..d2992a532d23d1 100644
--- a/clang/lib/Format/TokenAnnotator.cpp
+++ b/clang/lib/Format/TokenAnnotator.cpp
@@ -2583,6 +2583,11 @@ class AnnotatingParser {
if (Tok.isNot(tok::identifier) || !Tok.Previous)
return false;
+ if ((Style.isJavaScript() || Style.Language == FormatStyle::LK_Java) &&
+ Tok.is(Keywords.kw_extends)) {
+ return false;
+ }
+
if (const auto *NextNonComment = Tok.getNextNonComment();
(!NextNonComment && !Line.InMacroBody) ||
(NextNonComment &&
diff --git a/clang/unittests/Format/TokenAnnotatorTest.cpp b/clang/unittests/Format/TokenAnnotatorTest.cpp
index fc77e277947c56..d1dc6a740bae5f 100644
--- a/clang/unittests/Format/TokenAnnotatorTest.cpp
+++ b/clang/unittests/Format/TokenAnnotatorTest.cpp
@@ -3458,6 +3458,7 @@ TEST_F(TokenAnnotatorTest, BraceKind) {
Tokens = annotate("a = class Foo extends goog.a {};",
getGoogleStyle(FormatStyle::LK_JavaScript));
ASSERT_EQ(Tokens.size(), 12u) << Tokens;
+ EXPECT_TOKEN(Tokens[4], tok::identifier, TT_Unknown); // Not TT_StartOfName
EXPECT_TOKEN(Tokens[8], tok::l_brace, TT_ClassLBrace);
EXPECT_BRACE_KIND(Tokens[8], BK_Block);
EXPECT_TOKEN(Tokens[9], tok::r_brace, TT_ClassRBrace);
``````````
</details>
https://github.com/llvm/llvm-project/pull/125038
More information about the cfe-commits
mailing list