@@ -1631,65 +1631,77 @@ TEST_F(TokenAnnotatorTest, UnderstandsFunctionDeclarationNames) {
1631
1631
ASSERT_EQ (Tokens.size (), 12u ) << Tokens;
1632
1632
EXPECT_TOKEN (Tokens[1 ], tok::identifier, TT_FunctionDeclarationName);
1633
1633
1634
- Tokens = annotate (" class Foo { public: Foo(); };" );
1634
+ Tokens = annotate (" #define FOO Foo::\n "
1635
+ " FOO Foo();" );
1636
+ ASSERT_EQ (Tokens.size (), 11u ) << Tokens;
1637
+ EXPECT_TOKEN (Tokens[6 ], tok::identifier, TT_FunctionDeclarationName);
1638
+
1639
+ Tokens = annotate (" struct Foo {\n "
1640
+ " Bar (*func)();\n "
1641
+ " };" );
1642
+ ASSERT_EQ (Tokens.size (), 14u ) << Tokens;
1643
+ EXPECT_TOKEN (Tokens[3 ], tok::identifier, TT_Unknown);
1644
+ EXPECT_TOKEN (Tokens[4 ], tok::l_paren, TT_FunctionTypeLParen);
1645
+ }
1646
+
1647
+ TEST_F (TokenAnnotatorTest, UnderstandsCtorAndDtorDeclNames) {
1648
+ auto Tokens = annotate (" class Foo { public: Foo(); };" );
1635
1649
ASSERT_EQ (Tokens.size (), 12u ) << Tokens;
1636
- EXPECT_TOKEN (Tokens[5 ], tok::identifier, TT_FunctionDeclarationName );
1650
+ EXPECT_TOKEN (Tokens[5 ], tok::identifier, TT_CtorDtorDeclName );
1637
1651
1638
1652
Tokens = annotate (" class Foo { public: ~Foo(); };" );
1639
1653
ASSERT_EQ (Tokens.size (), 13u ) << Tokens;
1640
- EXPECT_TOKEN (Tokens[6 ], tok::identifier, TT_FunctionDeclarationName );
1654
+ EXPECT_TOKEN (Tokens[6 ], tok::identifier, TT_CtorDtorDeclName );
1641
1655
1642
1656
Tokens = annotate (" struct Foo { [[deprecated]] Foo() {} };" );
1643
1657
ASSERT_EQ (Tokens.size (), 16u ) << Tokens;
1644
- EXPECT_TOKEN (Tokens[8 ], tok::identifier, TT_FunctionDeclarationName );
1658
+ EXPECT_TOKEN (Tokens[8 ], tok::identifier, TT_CtorDtorDeclName );
1645
1659
EXPECT_TOKEN (Tokens[11 ], tok::l_brace, TT_FunctionLBrace);
1646
1660
1647
1661
Tokens = annotate (" struct Foo { [[deprecated]] ~Foo() {} };" );
1648
1662
ASSERT_EQ (Tokens.size (), 17u ) << Tokens;
1649
- EXPECT_TOKEN (Tokens[9 ], tok::identifier, TT_FunctionDeclarationName );
1663
+ EXPECT_TOKEN (Tokens[9 ], tok::identifier, TT_CtorDtorDeclName );
1650
1664
EXPECT_TOKEN (Tokens[12 ], tok::l_brace, TT_FunctionLBrace);
1651
1665
1652
1666
Tokens = annotate (" struct Foo { Foo() [[deprecated]] {} };" );
1653
1667
ASSERT_EQ (Tokens.size (), 16u ) << Tokens;
1654
- EXPECT_TOKEN (Tokens[3 ], tok::identifier, TT_FunctionDeclarationName );
1668
+ EXPECT_TOKEN (Tokens[3 ], tok::identifier, TT_CtorDtorDeclName );
1655
1669
EXPECT_TOKEN (Tokens[11 ], tok::l_brace, TT_FunctionLBrace);
1656
1670
1657
1671
Tokens = annotate (" struct Foo { ~Foo() [[deprecated]] {} };" );
1658
1672
ASSERT_EQ (Tokens.size (), 17u ) << Tokens;
1659
- EXPECT_TOKEN (Tokens[4 ], tok::identifier, TT_FunctionDeclarationName );
1673
+ EXPECT_TOKEN (Tokens[4 ], tok::identifier, TT_CtorDtorDeclName );
1660
1674
EXPECT_TOKEN (Tokens[12 ], tok::l_brace, TT_FunctionLBrace);
1661
1675
1662
1676
Tokens = annotate (" struct Foo { [[deprecated]] explicit Foo() {} };" );
1663
1677
ASSERT_EQ (Tokens.size (), 17u ) << Tokens;
1664
- EXPECT_TOKEN (Tokens[9 ], tok::identifier, TT_FunctionDeclarationName );
1678
+ EXPECT_TOKEN (Tokens[9 ], tok::identifier, TT_CtorDtorDeclName );
1665
1679
EXPECT_TOKEN (Tokens[12 ], tok::l_brace, TT_FunctionLBrace);
1666
1680
1667
1681
Tokens = annotate (" struct Foo { virtual [[deprecated]] ~Foo() {} };" );
1668
1682
ASSERT_EQ (Tokens.size (), 18u ) << Tokens;
1669
- EXPECT_TOKEN (Tokens[10 ], tok::identifier, TT_FunctionDeclarationName );
1683
+ EXPECT_TOKEN (Tokens[10 ], tok::identifier, TT_CtorDtorDeclName );
1670
1684
EXPECT_TOKEN (Tokens[13 ], tok::l_brace, TT_FunctionLBrace);
1671
1685
1672
1686
Tokens = annotate (" Foo::Foo() {}" );
1673
1687
ASSERT_EQ (Tokens.size (), 8u ) << Tokens;
1674
- EXPECT_TOKEN (Tokens[2 ], tok::identifier, TT_FunctionDeclarationName );
1688
+ EXPECT_TOKEN (Tokens[2 ], tok::identifier, TT_CtorDtorDeclName );
1675
1689
EXPECT_TOKEN (Tokens[5 ], tok::l_brace, TT_FunctionLBrace);
1676
1690
1677
1691
Tokens = annotate (" Foo::~Foo() {}" );
1678
1692
ASSERT_EQ (Tokens.size (), 9u ) << Tokens;
1679
- EXPECT_TOKEN (Tokens[3 ], tok::identifier, TT_FunctionDeclarationName );
1693
+ EXPECT_TOKEN (Tokens[3 ], tok::identifier, TT_CtorDtorDeclName );
1680
1694
EXPECT_TOKEN (Tokens[6 ], tok::l_brace, TT_FunctionLBrace);
1681
1695
1682
- Tokens = annotate (" #define FOO Foo::\n "
1683
- " FOO Foo();" );
1684
- ASSERT_EQ (Tokens.size (), 11u ) << Tokens;
1685
- EXPECT_TOKEN (Tokens[6 ], tok::identifier, TT_FunctionDeclarationName);
1686
-
1687
- Tokens = annotate (" struct Foo {\n "
1688
- " Bar (*func)();\n "
1696
+ Tokens = annotate (" struct Test {\n "
1697
+ " Test()\n "
1698
+ " : l([] {\n "
1699
+ " Short::foo();\n "
1700
+ " }) {}\n "
1689
1701
" };" );
1690
- ASSERT_EQ (Tokens.size (), 14u ) << Tokens;
1691
- EXPECT_TOKEN (Tokens[3 ], tok::identifier, TT_Unknown );
1692
- EXPECT_TOKEN (Tokens[4 ], tok::l_paren, TT_FunctionTypeLParen );
1702
+ ASSERT_EQ (Tokens.size (), 25u ) << Tokens;
1703
+ EXPECT_TOKEN (Tokens[3 ], tok::identifier, TT_CtorDtorDeclName );
1704
+ EXPECT_TOKEN (Tokens[14 ], tok::identifier, TT_Unknown );
1693
1705
}
1694
1706
1695
1707
TEST_F (TokenAnnotatorTest, UnderstandsC11GenericSelection) {
0 commit comments