Skip to content

Commit ea84474

Browse files
authored
[clang-format] Fix annotation of Java/JavaScript keyword extends (llvm#125038)
Uncovered in llvm#124891.
1 parent 14178de commit ea84474

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

clang/lib/Format/TokenAnnotator.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2584,6 +2584,11 @@ class AnnotatingParser {
25842584
if (Tok.isNot(tok::identifier) || !Tok.Previous)
25852585
return false;
25862586

2587+
if ((Style.isJavaScript() || Style.Language == FormatStyle::LK_Java) &&
2588+
Tok.is(Keywords.kw_extends)) {
2589+
return false;
2590+
}
2591+
25872592
if (const auto *NextNonComment = Tok.getNextNonComment();
25882593
(!NextNonComment && !Line.InMacroBody) ||
25892594
(NextNonComment &&

clang/unittests/Format/TokenAnnotatorTest.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3462,6 +3462,7 @@ TEST_F(TokenAnnotatorTest, BraceKind) {
34623462
Tokens = annotate("a = class Foo extends goog.a {};",
34633463
getGoogleStyle(FormatStyle::LK_JavaScript));
34643464
ASSERT_EQ(Tokens.size(), 12u) << Tokens;
3465+
EXPECT_TOKEN(Tokens[4], tok::identifier, TT_Unknown); // Not TT_StartOfName
34653466
EXPECT_TOKEN(Tokens[8], tok::l_brace, TT_ClassLBrace);
34663467
EXPECT_BRACE_KIND(Tokens[8], BK_Block);
34673468
EXPECT_TOKEN(Tokens[9], tok::r_brace, TT_ClassRBrace);

0 commit comments

Comments
 (0)