@@ -1645,38 +1645,45 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
16451645 auto Tokens = annotate (" []() constexpr {}" );
16461646 ASSERT_EQ (Tokens.size (), 8u ) << Tokens;
16471647 EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1648+ EXPECT_TOKEN (Tokens[2 ], tok::l_paren, TT_LambdaDefinitionLParen);
16481649 EXPECT_TOKEN (Tokens[5 ], tok::l_brace, TT_LambdaLBrace);
16491650
16501651 Tokens = annotate (" []() consteval {}" );
16511652 ASSERT_EQ (Tokens.size (), 8u ) << Tokens;
16521653 EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1654+ EXPECT_TOKEN (Tokens[2 ], tok::l_paren, TT_LambdaDefinitionLParen);
16531655 EXPECT_TOKEN (Tokens[5 ], tok::l_brace, TT_LambdaLBrace);
16541656
16551657 Tokens = annotate (" []() mutable {}" );
16561658 ASSERT_EQ (Tokens.size (), 8u ) << Tokens;
16571659 EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1660+ EXPECT_TOKEN (Tokens[2 ], tok::l_paren, TT_LambdaDefinitionLParen);
16581661 EXPECT_TOKEN (Tokens[5 ], tok::l_brace, TT_LambdaLBrace);
16591662
16601663 Tokens = annotate (" []() static {}" );
16611664 ASSERT_EQ (Tokens.size (), 8u ) << Tokens;
16621665 EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1666+ EXPECT_TOKEN (Tokens[2 ], tok::l_paren, TT_LambdaDefinitionLParen);
16631667 EXPECT_TOKEN (Tokens[5 ], tok::l_brace, TT_LambdaLBrace);
16641668
16651669 Tokens = annotate (" []() -> auto {}" );
16661670 ASSERT_EQ (Tokens.size (), 9u ) << Tokens;
16671671 EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1672+ EXPECT_TOKEN (Tokens[2 ], tok::l_paren, TT_LambdaDefinitionLParen);
16681673 EXPECT_TOKEN (Tokens[4 ], tok::arrow, TT_TrailingReturnArrow);
16691674 EXPECT_TOKEN (Tokens[6 ], tok::l_brace, TT_LambdaLBrace);
16701675
16711676 Tokens = annotate (" []() -> auto & {}" );
16721677 ASSERT_EQ (Tokens.size (), 10u ) << Tokens;
16731678 EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1679+ EXPECT_TOKEN (Tokens[2 ], tok::l_paren, TT_LambdaDefinitionLParen);
16741680 EXPECT_TOKEN (Tokens[4 ], tok::arrow, TT_TrailingReturnArrow);
16751681 EXPECT_TOKEN (Tokens[7 ], tok::l_brace, TT_LambdaLBrace);
16761682
16771683 Tokens = annotate (" []() -> auto * {}" );
16781684 ASSERT_EQ (Tokens.size (), 10u ) << Tokens;
16791685 EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1686+ EXPECT_TOKEN (Tokens[2 ], tok::l_paren, TT_LambdaDefinitionLParen);
16801687 EXPECT_TOKEN (Tokens[4 ], tok::arrow, TT_TrailingReturnArrow);
16811688 EXPECT_TOKEN (Tokens[7 ], tok::l_brace, TT_LambdaLBrace);
16821689
@@ -1705,13 +1712,15 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
17051712 Tokens = annotate (" foo([&](u32 bar) __attribute__((attr)) -> void {});" );
17061713 ASSERT_EQ (Tokens.size (), 22u ) << Tokens;
17071714 EXPECT_TOKEN (Tokens[2 ], tok::l_square, TT_LambdaLSquare);
1715+ EXPECT_TOKEN (Tokens[5 ], tok::l_paren, TT_LambdaDefinitionLParen);
17081716 EXPECT_TOKEN (Tokens[15 ], tok::arrow, TT_TrailingReturnArrow);
17091717 EXPECT_TOKEN (Tokens[17 ], tok::l_brace, TT_LambdaLBrace);
17101718
17111719 Tokens = annotate (" [] <typename T> () {}" );
17121720 ASSERT_EQ (Tokens.size (), 11u ) << Tokens;
17131721 EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
17141722 EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1723+ EXPECT_TOKEN (Tokens[6 ], tok::l_paren, TT_LambdaDefinitionLParen);
17151724 EXPECT_TOKEN (Tokens[8 ], tok::l_brace, TT_LambdaLBrace);
17161725
17171726 Tokens = annotate (" [] <typename T> {}" );
@@ -1724,6 +1733,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
17241733 ASSERT_EQ (Tokens.size (), 12u ) << Tokens;
17251734 EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
17261735 EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1736+ EXPECT_TOKEN (Tokens[7 ], tok::l_paren, TT_LambdaDefinitionLParen);
17271737 EXPECT_TOKEN (Tokens[9 ], tok::l_brace, TT_LambdaLBrace);
17281738
17291739 Tokens = annotate (" [] <typename... T> {}" );
@@ -1736,6 +1746,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
17361746 ASSERT_EQ (Tokens.size (), 12u ) << Tokens;
17371747 EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
17381748 EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1749+ EXPECT_TOKEN (Tokens[7 ], tok::l_paren, TT_LambdaDefinitionLParen);
17391750 EXPECT_TOKEN (Tokens[9 ], tok::l_brace, TT_LambdaLBrace);
17401751
17411752 Tokens = annotate (" [] <int... T> {}" );
@@ -1748,6 +1759,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
17481759 ASSERT_EQ (Tokens.size (), 12u ) << Tokens;
17491760 EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
17501761 EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1762+ EXPECT_TOKEN (Tokens[7 ], tok::l_paren, TT_LambdaDefinitionLParen);
17511763 EXPECT_TOKEN (Tokens[9 ], tok::l_brace, TT_LambdaLBrace);
17521764
17531765 Tokens = annotate (" [] <Foo... T> {}" );
@@ -1761,6 +1773,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
17611773 ASSERT_EQ (Tokens.size (), 18u ) << Tokens;
17621774 EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
17631775 EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1776+ EXPECT_TOKEN (Tokens[6 ], tok::l_paren, TT_LambdaDefinitionLParen);
17641777 EXPECT_TOKEN (Tokens[10 ], tok::kw_requires, TT_RequiresClause);
17651778 EXPECT_TRUE (Tokens[14 ]->ClosesRequiresClause );
17661779 EXPECT_TOKEN (Tokens[15 ], tok::l_brace, TT_LambdaLBrace);
@@ -1769,6 +1782,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
17691782 ASSERT_EQ (Tokens.size (), 19u ) << Tokens;
17701783 EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
17711784 EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1785+ EXPECT_TOKEN (Tokens[6 ], tok::l_paren, TT_LambdaDefinitionLParen);
17721786 EXPECT_TOKEN (Tokens[8 ], tok::ampamp, TT_PointerOrReference);
17731787 EXPECT_TOKEN (Tokens[11 ], tok::kw_requires, TT_RequiresClause);
17741788 EXPECT_TRUE (Tokens[15 ]->ClosesRequiresClause );
@@ -1778,6 +1792,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
17781792 ASSERT_EQ (Tokens.size (), 23u ) << Tokens;
17791793 EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
17801794 EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1795+ EXPECT_TOKEN (Tokens[6 ], tok::l_paren, TT_LambdaDefinitionLParen);
17811796 EXPECT_TOKEN (Tokens[10 ], tok::kw_requires, TT_RequiresClause);
17821797 EXPECT_TRUE (Tokens[19 ]->ClosesRequiresClause );
17831798 EXPECT_TOKEN (Tokens[20 ], tok::l_brace, TT_LambdaLBrace);
@@ -1786,6 +1801,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
17861801 ASSERT_EQ (Tokens.size (), 20u ) << Tokens;
17871802 EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
17881803 EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1804+ EXPECT_TOKEN (Tokens[6 ], tok::l_paren, TT_LambdaDefinitionLParen);
17891805 EXPECT_TOKEN (Tokens[10 ], tok::arrow, TT_TrailingReturnArrow);
17901806 EXPECT_TOKEN (Tokens[12 ], tok::kw_requires, TT_RequiresClause);
17911807 EXPECT_TRUE (Tokens[16 ]->ClosesRequiresClause );
@@ -1797,6 +1813,8 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
17971813 EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
17981814 EXPECT_TOKEN (Tokens[6 ], tok::kw_requires, TT_RequiresClause);
17991815 EXPECT_TRUE (Tokens[10 ]->ClosesRequiresClause );
1816+ // FIXME:
1817+ // EXPECT_TOKEN(Tokens[11], tok::l_paren, TT_LambdaDefinitionLParen);
18001818 EXPECT_TOKEN (Tokens[15 ], tok::l_brace, TT_LambdaLBrace);
18011819
18021820 Tokens = annotate (" [] <typename T> requires Bar<T> (T &&t) {}" );
@@ -1805,6 +1823,8 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
18051823 EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
18061824 EXPECT_TOKEN (Tokens[6 ], tok::kw_requires, TT_RequiresClause);
18071825 EXPECT_TRUE (Tokens[10 ]->ClosesRequiresClause );
1826+ // FIXME:
1827+ // EXPECT_TOKEN(Tokens[11], tok::l_paren, TT_LambdaDefinitionLParen);
18081828 EXPECT_TOKEN (Tokens[13 ], tok::ampamp, TT_PointerOrReference);
18091829 EXPECT_TOKEN (Tokens[16 ], tok::l_brace, TT_LambdaLBrace);
18101830
@@ -1814,6 +1834,8 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
18141834 EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
18151835 EXPECT_TOKEN (Tokens[6 ], tok::kw_requires, TT_RequiresClause);
18161836 EXPECT_TRUE (Tokens[15 ]->ClosesRequiresClause );
1837+ // FIXME:
1838+ // EXPECT_TOKEN(Tokens[16], tok::l_paren, TT_LambdaDefinitionLParen);
18171839 EXPECT_TOKEN (Tokens[20 ], tok::l_brace, TT_LambdaLBrace);
18181840
18191841 Tokens = annotate (" [] <typename T> requires true (T&& t) {}" );
@@ -1822,6 +1844,8 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
18221844 EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
18231845 EXPECT_TOKEN (Tokens[6 ], tok::kw_requires, TT_RequiresClause);
18241846 EXPECT_TRUE (Tokens[7 ]->ClosesRequiresClause );
1847+ // FIXME:
1848+ // EXPECT_TOKEN(Tokens[8], tok::l_paren, TT_LambdaDefinitionLParen);
18251849 EXPECT_TOKEN (Tokens[10 ], tok::ampamp, TT_PointerOrReference);
18261850 EXPECT_TOKEN (Tokens[13 ], tok::l_brace, TT_LambdaLBrace);
18271851
@@ -1856,6 +1880,8 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
18561880 EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
18571881 EXPECT_TOKEN (Tokens[6 ], tok::kw_requires, TT_RequiresClause);
18581882 EXPECT_TRUE (Tokens[10 ]->ClosesRequiresClause );
1883+ // FIXME:
1884+ // EXPECT_TOKEN(Tokens[11], tok::l_paren, TT_LambdaDefinitionLParen);
18591885 EXPECT_TOKEN (Tokens[15 ], tok::kw_requires, TT_RequiresClause);
18601886 EXPECT_TRUE (Tokens[19 ]->ClosesRequiresClause );
18611887 EXPECT_TOKEN (Tokens[20 ], tok::l_brace, TT_LambdaLBrace);
@@ -1865,20 +1891,23 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
18651891 EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
18661892 EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
18671893 EXPECT_TOKEN (Tokens[7 ], tok::greater, TT_TemplateCloser);
1894+ EXPECT_TOKEN (Tokens[8 ], tok::l_paren, TT_LambdaDefinitionLParen);
18681895 EXPECT_TOKEN (Tokens[12 ], tok::l_brace, TT_LambdaLBrace);
18691896
18701897 Tokens = annotate (" [] <int I = 0> (T t) {}" );
18711898 ASSERT_EQ (Tokens.size (), 15u ) << Tokens;
18721899 EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
18731900 EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
18741901 EXPECT_TOKEN (Tokens[7 ], tok::greater, TT_TemplateCloser);
1902+ EXPECT_TOKEN (Tokens[8 ], tok::l_paren, TT_LambdaDefinitionLParen);
18751903 EXPECT_TOKEN (Tokens[12 ], tok::l_brace, TT_LambdaLBrace);
18761904
18771905 Tokens = annotate (" [] <bool b = false> (T t) {}" );
18781906 ASSERT_EQ (Tokens.size (), 15u ) << Tokens;
18791907 EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
18801908 EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
18811909 EXPECT_TOKEN (Tokens[7 ], tok::greater, TT_TemplateCloser);
1910+ EXPECT_TOKEN (Tokens[8 ], tok::l_paren, TT_LambdaDefinitionLParen);
18821911 EXPECT_TOKEN (Tokens[12 ], tok::l_brace, TT_LambdaLBrace);
18831912
18841913 Tokens = annotate (" [] <bool b = true && false> (T&& t) {}" );
@@ -1887,6 +1916,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
18871916 EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
18881917 EXPECT_TOKEN (Tokens[7 ], tok::ampamp, TT_BinaryOperator);
18891918 EXPECT_TOKEN (Tokens[9 ], tok::greater, TT_TemplateCloser);
1919+ EXPECT_TOKEN (Tokens[10 ], tok::l_paren, TT_LambdaDefinitionLParen);
18901920 EXPECT_TOKEN (Tokens[12 ], tok::ampamp, TT_PointerOrReference);
18911921 EXPECT_TOKEN (Tokens[15 ], tok::l_brace, TT_LambdaLBrace);
18921922
@@ -1896,6 +1926,8 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
18961926 EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
18971927 EXPECT_TOKEN (Tokens[7 ], tok::greater, TT_TemplateCloser);
18981928 EXPECT_TOKEN (Tokens[8 ], tok::kw_requires, TT_RequiresClause);
1929+ // FIXME:
1930+ // EXPECT_TOKEN(Tokens[13], tok::l_paren, TT_LambdaDefinitionLParen);
18991931 EXPECT_TOKEN (Tokens[17 ], tok::l_brace, TT_LambdaLBrace);
19001932}
19011933
0 commit comments