@@ -1665,38 +1665,45 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1665
1665
auto Tokens = annotate (" []() constexpr {}" );
1666
1666
ASSERT_EQ (Tokens.size (), 8u ) << Tokens;
1667
1667
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1668
+ EXPECT_TOKEN (Tokens[2 ], tok::l_paren, TT_LambdaDefinitionLParen);
1668
1669
EXPECT_TOKEN (Tokens[5 ], tok::l_brace, TT_LambdaLBrace);
1669
1670
1670
1671
Tokens = annotate (" []() consteval {}" );
1671
1672
ASSERT_EQ (Tokens.size (), 8u ) << Tokens;
1672
1673
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1674
+ EXPECT_TOKEN (Tokens[2 ], tok::l_paren, TT_LambdaDefinitionLParen);
1673
1675
EXPECT_TOKEN (Tokens[5 ], tok::l_brace, TT_LambdaLBrace);
1674
1676
1675
1677
Tokens = annotate (" []() mutable {}" );
1676
1678
ASSERT_EQ (Tokens.size (), 8u ) << Tokens;
1677
1679
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1680
+ EXPECT_TOKEN (Tokens[2 ], tok::l_paren, TT_LambdaDefinitionLParen);
1678
1681
EXPECT_TOKEN (Tokens[5 ], tok::l_brace, TT_LambdaLBrace);
1679
1682
1680
1683
Tokens = annotate (" []() static {}" );
1681
1684
ASSERT_EQ (Tokens.size (), 8u ) << Tokens;
1682
1685
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1686
+ EXPECT_TOKEN (Tokens[2 ], tok::l_paren, TT_LambdaDefinitionLParen);
1683
1687
EXPECT_TOKEN (Tokens[5 ], tok::l_brace, TT_LambdaLBrace);
1684
1688
1685
1689
Tokens = annotate (" []() -> auto {}" );
1686
1690
ASSERT_EQ (Tokens.size (), 9u ) << Tokens;
1687
1691
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1692
+ EXPECT_TOKEN (Tokens[2 ], tok::l_paren, TT_LambdaDefinitionLParen);
1688
1693
EXPECT_TOKEN (Tokens[4 ], tok::arrow, TT_TrailingReturnArrow);
1689
1694
EXPECT_TOKEN (Tokens[6 ], tok::l_brace, TT_LambdaLBrace);
1690
1695
1691
1696
Tokens = annotate (" []() -> auto & {}" );
1692
1697
ASSERT_EQ (Tokens.size (), 10u ) << Tokens;
1693
1698
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1699
+ EXPECT_TOKEN (Tokens[2 ], tok::l_paren, TT_LambdaDefinitionLParen);
1694
1700
EXPECT_TOKEN (Tokens[4 ], tok::arrow, TT_TrailingReturnArrow);
1695
1701
EXPECT_TOKEN (Tokens[7 ], tok::l_brace, TT_LambdaLBrace);
1696
1702
1697
1703
Tokens = annotate (" []() -> auto * {}" );
1698
1704
ASSERT_EQ (Tokens.size (), 10u ) << Tokens;
1699
1705
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1706
+ EXPECT_TOKEN (Tokens[2 ], tok::l_paren, TT_LambdaDefinitionLParen);
1700
1707
EXPECT_TOKEN (Tokens[4 ], tok::arrow, TT_TrailingReturnArrow);
1701
1708
EXPECT_TOKEN (Tokens[7 ], tok::l_brace, TT_LambdaLBrace);
1702
1709
@@ -1725,13 +1732,15 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1725
1732
Tokens = annotate (" foo([&](u32 bar) __attribute__((attr)) -> void {});" );
1726
1733
ASSERT_EQ (Tokens.size (), 22u ) << Tokens;
1727
1734
EXPECT_TOKEN (Tokens[2 ], tok::l_square, TT_LambdaLSquare);
1735
+ EXPECT_TOKEN (Tokens[5 ], tok::l_paren, TT_LambdaDefinitionLParen);
1728
1736
EXPECT_TOKEN (Tokens[15 ], tok::arrow, TT_TrailingReturnArrow);
1729
1737
EXPECT_TOKEN (Tokens[17 ], tok::l_brace, TT_LambdaLBrace);
1730
1738
1731
1739
Tokens = annotate (" [] <typename T> () {}" );
1732
1740
ASSERT_EQ (Tokens.size (), 11u ) << Tokens;
1733
1741
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1734
1742
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1743
+ EXPECT_TOKEN (Tokens[6 ], tok::l_paren, TT_LambdaDefinitionLParen);
1735
1744
EXPECT_TOKEN (Tokens[8 ], tok::l_brace, TT_LambdaLBrace);
1736
1745
1737
1746
Tokens = annotate (" [] <typename T> {}" );
@@ -1744,6 +1753,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1744
1753
ASSERT_EQ (Tokens.size (), 12u ) << Tokens;
1745
1754
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1746
1755
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1756
+ EXPECT_TOKEN (Tokens[7 ], tok::l_paren, TT_LambdaDefinitionLParen);
1747
1757
EXPECT_TOKEN (Tokens[9 ], tok::l_brace, TT_LambdaLBrace);
1748
1758
1749
1759
Tokens = annotate (" [] <typename... T> {}" );
@@ -1756,6 +1766,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1756
1766
ASSERT_EQ (Tokens.size (), 12u ) << Tokens;
1757
1767
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1758
1768
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1769
+ EXPECT_TOKEN (Tokens[7 ], tok::l_paren, TT_LambdaDefinitionLParen);
1759
1770
EXPECT_TOKEN (Tokens[9 ], tok::l_brace, TT_LambdaLBrace);
1760
1771
1761
1772
Tokens = annotate (" [] <int... T> {}" );
@@ -1768,6 +1779,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1768
1779
ASSERT_EQ (Tokens.size (), 12u ) << Tokens;
1769
1780
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1770
1781
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1782
+ EXPECT_TOKEN (Tokens[7 ], tok::l_paren, TT_LambdaDefinitionLParen);
1771
1783
EXPECT_TOKEN (Tokens[9 ], tok::l_brace, TT_LambdaLBrace);
1772
1784
1773
1785
Tokens = annotate (" [] <Foo... T> {}" );
@@ -1781,6 +1793,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1781
1793
ASSERT_EQ (Tokens.size (), 18u ) << Tokens;
1782
1794
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1783
1795
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1796
+ EXPECT_TOKEN (Tokens[6 ], tok::l_paren, TT_LambdaDefinitionLParen);
1784
1797
EXPECT_TOKEN (Tokens[10 ], tok::kw_requires, TT_RequiresClause);
1785
1798
EXPECT_TRUE (Tokens[14 ]->ClosesRequiresClause );
1786
1799
EXPECT_TOKEN (Tokens[15 ], tok::l_brace, TT_LambdaLBrace);
@@ -1789,6 +1802,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1789
1802
ASSERT_EQ (Tokens.size (), 19u ) << Tokens;
1790
1803
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1791
1804
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1805
+ EXPECT_TOKEN (Tokens[6 ], tok::l_paren, TT_LambdaDefinitionLParen);
1792
1806
EXPECT_TOKEN (Tokens[8 ], tok::ampamp, TT_PointerOrReference);
1793
1807
EXPECT_TOKEN (Tokens[11 ], tok::kw_requires, TT_RequiresClause);
1794
1808
EXPECT_TRUE (Tokens[15 ]->ClosesRequiresClause );
@@ -1798,6 +1812,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1798
1812
ASSERT_EQ (Tokens.size (), 23u ) << Tokens;
1799
1813
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1800
1814
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1815
+ EXPECT_TOKEN (Tokens[6 ], tok::l_paren, TT_LambdaDefinitionLParen);
1801
1816
EXPECT_TOKEN (Tokens[10 ], tok::kw_requires, TT_RequiresClause);
1802
1817
EXPECT_TRUE (Tokens[19 ]->ClosesRequiresClause );
1803
1818
EXPECT_TOKEN (Tokens[20 ], tok::l_brace, TT_LambdaLBrace);
@@ -1806,6 +1821,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1806
1821
ASSERT_EQ (Tokens.size (), 20u ) << Tokens;
1807
1822
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1808
1823
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1824
+ EXPECT_TOKEN (Tokens[6 ], tok::l_paren, TT_LambdaDefinitionLParen);
1809
1825
EXPECT_TOKEN (Tokens[10 ], tok::arrow, TT_TrailingReturnArrow);
1810
1826
EXPECT_TOKEN (Tokens[12 ], tok::kw_requires, TT_RequiresClause);
1811
1827
EXPECT_TRUE (Tokens[16 ]->ClosesRequiresClause );
@@ -1885,20 +1901,23 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1885
1901
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1886
1902
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1887
1903
EXPECT_TOKEN (Tokens[7 ], tok::greater, TT_TemplateCloser);
1904
+ EXPECT_TOKEN (Tokens[8 ], tok::l_paren, TT_LambdaDefinitionLParen);
1888
1905
EXPECT_TOKEN (Tokens[12 ], tok::l_brace, TT_LambdaLBrace);
1889
1906
1890
1907
Tokens = annotate (" [] <int I = 0> (T t) {}" );
1891
1908
ASSERT_EQ (Tokens.size (), 15u ) << Tokens;
1892
1909
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1893
1910
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1894
1911
EXPECT_TOKEN (Tokens[7 ], tok::greater, TT_TemplateCloser);
1912
+ EXPECT_TOKEN (Tokens[8 ], tok::l_paren, TT_LambdaDefinitionLParen);
1895
1913
EXPECT_TOKEN (Tokens[12 ], tok::l_brace, TT_LambdaLBrace);
1896
1914
1897
1915
Tokens = annotate (" [] <bool b = false> (T t) {}" );
1898
1916
ASSERT_EQ (Tokens.size (), 15u ) << Tokens;
1899
1917
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1900
1918
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1901
1919
EXPECT_TOKEN (Tokens[7 ], tok::greater, TT_TemplateCloser);
1920
+ EXPECT_TOKEN (Tokens[8 ], tok::l_paren, TT_LambdaDefinitionLParen);
1902
1921
EXPECT_TOKEN (Tokens[12 ], tok::l_brace, TT_LambdaLBrace);
1903
1922
1904
1923
Tokens = annotate (" [] <bool b = true && false> (T&& t) {}" );
@@ -1907,6 +1926,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1907
1926
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1908
1927
EXPECT_TOKEN (Tokens[7 ], tok::ampamp, TT_BinaryOperator);
1909
1928
EXPECT_TOKEN (Tokens[9 ], tok::greater, TT_TemplateCloser);
1929
+ EXPECT_TOKEN (Tokens[10 ], tok::l_paren, TT_LambdaDefinitionLParen);
1910
1930
EXPECT_TOKEN (Tokens[12 ], tok::ampamp, TT_PointerOrReference);
1911
1931
EXPECT_TOKEN (Tokens[15 ], tok::l_brace, TT_LambdaLBrace);
1912
1932
0 commit comments