diff options
Diffstat (limited to 'clang/unittests/Format/TokenAnnotatorTest.cpp')
-rw-r--r-- | clang/unittests/Format/TokenAnnotatorTest.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/clang/unittests/Format/TokenAnnotatorTest.cpp b/clang/unittests/Format/TokenAnnotatorTest.cpp index 1152466..ca99940 100644 --- a/clang/unittests/Format/TokenAnnotatorTest.cpp +++ b/clang/unittests/Format/TokenAnnotatorTest.cpp @@ -1129,6 +1129,11 @@ TEST_F(TokenAnnotatorTest, UnderstandsOverloadedOperators) { ASSERT_EQ(Tokens.size(), 7u) << Tokens; // Not TT_FunctionDeclarationName. EXPECT_TOKEN(Tokens[3], tok::kw_operator, TT_Unknown); + + Tokens = annotate("SomeAPI::operator()();"); + ASSERT_EQ(Tokens.size(), 9u) << Tokens; + // Not TT_FunctionDeclarationName. + EXPECT_TOKEN(Tokens[2], tok::kw_operator, TT_Unknown); } TEST_F(TokenAnnotatorTest, OverloadedOperatorInTemplate) { @@ -4232,6 +4237,29 @@ TEST_F(TokenAnnotatorTest, QtProperty) { EXPECT_TOKEN(Tokens[12], tok::identifier, TT_QtProperty); } +TEST_F(TokenAnnotatorTest, AttributeSquares) { + auto Tokens = annotate("[[maybe_unused]] const int i;"); + ASSERT_EQ(Tokens.size(), 10u) << Tokens; + EXPECT_TOKEN(Tokens[0], tok::l_square, TT_AttributeLSquare); + EXPECT_TOKEN(Tokens[1], tok::l_square, TT_Unknown); + EXPECT_TOKEN(Tokens[3], tok::r_square, TT_Unknown); + EXPECT_TOKEN(Tokens[4], tok::r_square, TT_AttributeRSquare); + EXPECT_TRUE(Tokens[4]->EndsCppAttributeGroup); + + Tokens = annotate("[[foo([[]])]] [[maybe_unused]] int j;"); + ASSERT_EQ(Tokens.size(), 20u) << Tokens; + EXPECT_TOKEN(Tokens[0], tok::l_square, TT_AttributeLSquare); + EXPECT_TOKEN(Tokens[1], tok::l_square, TT_Unknown); + EXPECT_TOKEN(Tokens[9], tok::r_square, TT_Unknown); + EXPECT_TOKEN(Tokens[10], tok::r_square, TT_AttributeRSquare); + EXPECT_FALSE(Tokens[10]->EndsCppAttributeGroup); + EXPECT_TOKEN(Tokens[11], tok::l_square, TT_AttributeLSquare); + EXPECT_TOKEN(Tokens[12], tok::l_square, TT_Unknown); + EXPECT_TOKEN(Tokens[14], tok::r_square, TT_Unknown); + EXPECT_TOKEN(Tokens[15], tok::r_square, TT_AttributeRSquare); + EXPECT_TRUE(Tokens[15]->EndsCppAttributeGroup); +} + } // namespace } // namespace format } // namespace clang |