Skip to content

Commit a7f4576

Browse files
authored
[clang-format] Fix a regression in annotating TrailingReturnArrow (llvm#86624)
Fixes llvm#86559.
1 parent 2cf8118 commit a7f4576

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

Diff for: clang/lib/Format/TokenAnnotator.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -3889,6 +3889,8 @@ void TokenAnnotator::calculateFormattingInformation(AnnotatedLine &Line) const {
38893889
}
38903890
} else if (ClosingParen) {
38913891
for (auto *Tok = ClosingParen->Next; Tok; Tok = Tok->Next) {
3892+
if (Tok->is(TT_CtorInitializerColon))
3893+
break;
38923894
if (Tok->is(tok::arrow)) {
38933895
Tok->setType(TT_TrailingReturnArrow);
38943896
break;

Diff for: clang/unittests/Format/TokenAnnotatorTest.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -1916,6 +1916,10 @@ TEST_F(TokenAnnotatorTest, UnderstandsTrailingReturnArrow) {
19161916
ASSERT_EQ(Tokens.size(), 12u) << Tokens;
19171917
EXPECT_TOKEN(Tokens[7], tok::arrow, TT_Unknown);
19181918

1919+
Tokens = annotate("__attribute__((cold)) C() : Base(obj->func()) {}");
1920+
ASSERT_EQ(Tokens.size(), 21u) << Tokens;
1921+
EXPECT_TOKEN(Tokens[13], tok::arrow, TT_Unknown);
1922+
19191923
// Mixed
19201924
Tokens = annotate("auto f() -> int { auto a = b()->c; }");
19211925
ASSERT_EQ(Tokens.size(), 18u) << Tokens;

0 commit comments

Comments
 (0)