@@ -1645,38 +1645,45 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1645
1645
auto Tokens = annotate (" []() constexpr {}" );
1646
1646
ASSERT_EQ (Tokens.size (), 8u ) << Tokens;
1647
1647
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1648
+ EXPECT_TOKEN (Tokens[2 ], tok::l_paren, TT_LambdaDefinitionLParen);
1648
1649
EXPECT_TOKEN (Tokens[5 ], tok::l_brace, TT_LambdaLBrace);
1649
1650
1650
1651
Tokens = annotate (" []() consteval {}" );
1651
1652
ASSERT_EQ (Tokens.size (), 8u ) << Tokens;
1652
1653
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1654
+ EXPECT_TOKEN (Tokens[2 ], tok::l_paren, TT_LambdaDefinitionLParen);
1653
1655
EXPECT_TOKEN (Tokens[5 ], tok::l_brace, TT_LambdaLBrace);
1654
1656
1655
1657
Tokens = annotate (" []() mutable {}" );
1656
1658
ASSERT_EQ (Tokens.size (), 8u ) << Tokens;
1657
1659
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1660
+ EXPECT_TOKEN (Tokens[2 ], tok::l_paren, TT_LambdaDefinitionLParen);
1658
1661
EXPECT_TOKEN (Tokens[5 ], tok::l_brace, TT_LambdaLBrace);
1659
1662
1660
1663
Tokens = annotate (" []() static {}" );
1661
1664
ASSERT_EQ (Tokens.size (), 8u ) << Tokens;
1662
1665
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1666
+ EXPECT_TOKEN (Tokens[2 ], tok::l_paren, TT_LambdaDefinitionLParen);
1663
1667
EXPECT_TOKEN (Tokens[5 ], tok::l_brace, TT_LambdaLBrace);
1664
1668
1665
1669
Tokens = annotate (" []() -> auto {}" );
1666
1670
ASSERT_EQ (Tokens.size (), 9u ) << Tokens;
1667
1671
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1672
+ EXPECT_TOKEN (Tokens[2 ], tok::l_paren, TT_LambdaDefinitionLParen);
1668
1673
EXPECT_TOKEN (Tokens[4 ], tok::arrow, TT_TrailingReturnArrow);
1669
1674
EXPECT_TOKEN (Tokens[6 ], tok::l_brace, TT_LambdaLBrace);
1670
1675
1671
1676
Tokens = annotate (" []() -> auto & {}" );
1672
1677
ASSERT_EQ (Tokens.size (), 10u ) << Tokens;
1673
1678
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1679
+ EXPECT_TOKEN (Tokens[2 ], tok::l_paren, TT_LambdaDefinitionLParen);
1674
1680
EXPECT_TOKEN (Tokens[4 ], tok::arrow, TT_TrailingReturnArrow);
1675
1681
EXPECT_TOKEN (Tokens[7 ], tok::l_brace, TT_LambdaLBrace);
1676
1682
1677
1683
Tokens = annotate (" []() -> auto * {}" );
1678
1684
ASSERT_EQ (Tokens.size (), 10u ) << Tokens;
1679
1685
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1686
+ EXPECT_TOKEN (Tokens[2 ], tok::l_paren, TT_LambdaDefinitionLParen);
1680
1687
EXPECT_TOKEN (Tokens[4 ], tok::arrow, TT_TrailingReturnArrow);
1681
1688
EXPECT_TOKEN (Tokens[7 ], tok::l_brace, TT_LambdaLBrace);
1682
1689
@@ -1705,13 +1712,15 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1705
1712
Tokens = annotate (" foo([&](u32 bar) __attribute__((attr)) -> void {});" );
1706
1713
ASSERT_EQ (Tokens.size (), 22u ) << Tokens;
1707
1714
EXPECT_TOKEN (Tokens[2 ], tok::l_square, TT_LambdaLSquare);
1715
+ EXPECT_TOKEN (Tokens[5 ], tok::l_paren, TT_LambdaDefinitionLParen);
1708
1716
EXPECT_TOKEN (Tokens[15 ], tok::arrow, TT_TrailingReturnArrow);
1709
1717
EXPECT_TOKEN (Tokens[17 ], tok::l_brace, TT_LambdaLBrace);
1710
1718
1711
1719
Tokens = annotate (" [] <typename T> () {}" );
1712
1720
ASSERT_EQ (Tokens.size (), 11u ) << Tokens;
1713
1721
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1714
1722
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1723
+ EXPECT_TOKEN (Tokens[6 ], tok::l_paren, TT_LambdaDefinitionLParen);
1715
1724
EXPECT_TOKEN (Tokens[8 ], tok::l_brace, TT_LambdaLBrace);
1716
1725
1717
1726
Tokens = annotate (" [] <typename T> {}" );
@@ -1724,6 +1733,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1724
1733
ASSERT_EQ (Tokens.size (), 12u ) << Tokens;
1725
1734
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1726
1735
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1736
+ EXPECT_TOKEN (Tokens[7 ], tok::l_paren, TT_LambdaDefinitionLParen);
1727
1737
EXPECT_TOKEN (Tokens[9 ], tok::l_brace, TT_LambdaLBrace);
1728
1738
1729
1739
Tokens = annotate (" [] <typename... T> {}" );
@@ -1736,6 +1746,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1736
1746
ASSERT_EQ (Tokens.size (), 12u ) << Tokens;
1737
1747
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1738
1748
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1749
+ EXPECT_TOKEN (Tokens[7 ], tok::l_paren, TT_LambdaDefinitionLParen);
1739
1750
EXPECT_TOKEN (Tokens[9 ], tok::l_brace, TT_LambdaLBrace);
1740
1751
1741
1752
Tokens = annotate (" [] <int... T> {}" );
@@ -1748,6 +1759,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1748
1759
ASSERT_EQ (Tokens.size (), 12u ) << Tokens;
1749
1760
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1750
1761
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1762
+ EXPECT_TOKEN (Tokens[7 ], tok::l_paren, TT_LambdaDefinitionLParen);
1751
1763
EXPECT_TOKEN (Tokens[9 ], tok::l_brace, TT_LambdaLBrace);
1752
1764
1753
1765
Tokens = annotate (" [] <Foo... T> {}" );
@@ -1761,6 +1773,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1761
1773
ASSERT_EQ (Tokens.size (), 18u ) << Tokens;
1762
1774
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1763
1775
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1776
+ EXPECT_TOKEN (Tokens[6 ], tok::l_paren, TT_LambdaDefinitionLParen);
1764
1777
EXPECT_TOKEN (Tokens[10 ], tok::kw_requires, TT_RequiresClause);
1765
1778
EXPECT_TRUE (Tokens[14 ]->ClosesRequiresClause );
1766
1779
EXPECT_TOKEN (Tokens[15 ], tok::l_brace, TT_LambdaLBrace);
@@ -1769,6 +1782,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1769
1782
ASSERT_EQ (Tokens.size (), 19u ) << Tokens;
1770
1783
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1771
1784
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1785
+ EXPECT_TOKEN (Tokens[6 ], tok::l_paren, TT_LambdaDefinitionLParen);
1772
1786
EXPECT_TOKEN (Tokens[8 ], tok::ampamp, TT_PointerOrReference);
1773
1787
EXPECT_TOKEN (Tokens[11 ], tok::kw_requires, TT_RequiresClause);
1774
1788
EXPECT_TRUE (Tokens[15 ]->ClosesRequiresClause );
@@ -1778,6 +1792,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1778
1792
ASSERT_EQ (Tokens.size (), 23u ) << Tokens;
1779
1793
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1780
1794
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1795
+ EXPECT_TOKEN (Tokens[6 ], tok::l_paren, TT_LambdaDefinitionLParen);
1781
1796
EXPECT_TOKEN (Tokens[10 ], tok::kw_requires, TT_RequiresClause);
1782
1797
EXPECT_TRUE (Tokens[19 ]->ClosesRequiresClause );
1783
1798
EXPECT_TOKEN (Tokens[20 ], tok::l_brace, TT_LambdaLBrace);
@@ -1786,6 +1801,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1786
1801
ASSERT_EQ (Tokens.size (), 20u ) << Tokens;
1787
1802
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1788
1803
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1804
+ EXPECT_TOKEN (Tokens[6 ], tok::l_paren, TT_LambdaDefinitionLParen);
1789
1805
EXPECT_TOKEN (Tokens[10 ], tok::arrow, TT_TrailingReturnArrow);
1790
1806
EXPECT_TOKEN (Tokens[12 ], tok::kw_requires, TT_RequiresClause);
1791
1807
EXPECT_TRUE (Tokens[16 ]->ClosesRequiresClause );
@@ -1797,6 +1813,8 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1797
1813
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1798
1814
EXPECT_TOKEN (Tokens[6 ], tok::kw_requires, TT_RequiresClause);
1799
1815
EXPECT_TRUE (Tokens[10 ]->ClosesRequiresClause );
1816
+ // FIXME:
1817
+ // EXPECT_TOKEN(Tokens[11], tok::l_paren, TT_LambdaDefinitionLParen);
1800
1818
EXPECT_TOKEN (Tokens[15 ], tok::l_brace, TT_LambdaLBrace);
1801
1819
1802
1820
Tokens = annotate (" [] <typename T> requires Bar<T> (T &&t) {}" );
@@ -1805,6 +1823,8 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1805
1823
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1806
1824
EXPECT_TOKEN (Tokens[6 ], tok::kw_requires, TT_RequiresClause);
1807
1825
EXPECT_TRUE (Tokens[10 ]->ClosesRequiresClause );
1826
+ // FIXME:
1827
+ // EXPECT_TOKEN(Tokens[11], tok::l_paren, TT_LambdaDefinitionLParen);
1808
1828
EXPECT_TOKEN (Tokens[13 ], tok::ampamp, TT_PointerOrReference);
1809
1829
EXPECT_TOKEN (Tokens[16 ], tok::l_brace, TT_LambdaLBrace);
1810
1830
@@ -1814,6 +1834,8 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1814
1834
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1815
1835
EXPECT_TOKEN (Tokens[6 ], tok::kw_requires, TT_RequiresClause);
1816
1836
EXPECT_TRUE (Tokens[15 ]->ClosesRequiresClause );
1837
+ // FIXME:
1838
+ // EXPECT_TOKEN(Tokens[16], tok::l_paren, TT_LambdaDefinitionLParen);
1817
1839
EXPECT_TOKEN (Tokens[20 ], tok::l_brace, TT_LambdaLBrace);
1818
1840
1819
1841
Tokens = annotate (" [] <typename T> requires true (T&& t) {}" );
@@ -1822,6 +1844,8 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1822
1844
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1823
1845
EXPECT_TOKEN (Tokens[6 ], tok::kw_requires, TT_RequiresClause);
1824
1846
EXPECT_TRUE (Tokens[7 ]->ClosesRequiresClause );
1847
+ // FIXME:
1848
+ // EXPECT_TOKEN(Tokens[8], tok::l_paren, TT_LambdaDefinitionLParen);
1825
1849
EXPECT_TOKEN (Tokens[10 ], tok::ampamp, TT_PointerOrReference);
1826
1850
EXPECT_TOKEN (Tokens[13 ], tok::l_brace, TT_LambdaLBrace);
1827
1851
@@ -1856,6 +1880,8 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1856
1880
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1857
1881
EXPECT_TOKEN (Tokens[6 ], tok::kw_requires, TT_RequiresClause);
1858
1882
EXPECT_TRUE (Tokens[10 ]->ClosesRequiresClause );
1883
+ // FIXME:
1884
+ // EXPECT_TOKEN(Tokens[11], tok::l_paren, TT_LambdaDefinitionLParen);
1859
1885
EXPECT_TOKEN (Tokens[15 ], tok::kw_requires, TT_RequiresClause);
1860
1886
EXPECT_TRUE (Tokens[19 ]->ClosesRequiresClause );
1861
1887
EXPECT_TOKEN (Tokens[20 ], tok::l_brace, TT_LambdaLBrace);
@@ -1865,20 +1891,23 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1865
1891
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1866
1892
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1867
1893
EXPECT_TOKEN (Tokens[7 ], tok::greater, TT_TemplateCloser);
1894
+ EXPECT_TOKEN (Tokens[8 ], tok::l_paren, TT_LambdaDefinitionLParen);
1868
1895
EXPECT_TOKEN (Tokens[12 ], tok::l_brace, TT_LambdaLBrace);
1869
1896
1870
1897
Tokens = annotate (" [] <int I = 0> (T t) {}" );
1871
1898
ASSERT_EQ (Tokens.size (), 15u ) << Tokens;
1872
1899
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1873
1900
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1874
1901
EXPECT_TOKEN (Tokens[7 ], tok::greater, TT_TemplateCloser);
1902
+ EXPECT_TOKEN (Tokens[8 ], tok::l_paren, TT_LambdaDefinitionLParen);
1875
1903
EXPECT_TOKEN (Tokens[12 ], tok::l_brace, TT_LambdaLBrace);
1876
1904
1877
1905
Tokens = annotate (" [] <bool b = false> (T t) {}" );
1878
1906
ASSERT_EQ (Tokens.size (), 15u ) << Tokens;
1879
1907
EXPECT_TOKEN (Tokens[0 ], tok::l_square, TT_LambdaLSquare);
1880
1908
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1881
1909
EXPECT_TOKEN (Tokens[7 ], tok::greater, TT_TemplateCloser);
1910
+ EXPECT_TOKEN (Tokens[8 ], tok::l_paren, TT_LambdaDefinitionLParen);
1882
1911
EXPECT_TOKEN (Tokens[12 ], tok::l_brace, TT_LambdaLBrace);
1883
1912
1884
1913
Tokens = annotate (" [] <bool b = true && false> (T&& t) {}" );
@@ -1887,6 +1916,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1887
1916
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1888
1917
EXPECT_TOKEN (Tokens[7 ], tok::ampamp, TT_BinaryOperator);
1889
1918
EXPECT_TOKEN (Tokens[9 ], tok::greater, TT_TemplateCloser);
1919
+ EXPECT_TOKEN (Tokens[10 ], tok::l_paren, TT_LambdaDefinitionLParen);
1890
1920
EXPECT_TOKEN (Tokens[12 ], tok::ampamp, TT_PointerOrReference);
1891
1921
EXPECT_TOKEN (Tokens[15 ], tok::l_brace, TT_LambdaLBrace);
1892
1922
@@ -1896,6 +1926,8 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
1896
1926
EXPECT_TOKEN (Tokens[2 ], tok::less, TT_TemplateOpener);
1897
1927
EXPECT_TOKEN (Tokens[7 ], tok::greater, TT_TemplateCloser);
1898
1928
EXPECT_TOKEN (Tokens[8 ], tok::kw_requires, TT_RequiresClause);
1929
+ // FIXME:
1930
+ // EXPECT_TOKEN(Tokens[13], tok::l_paren, TT_LambdaDefinitionLParen);
1899
1931
EXPECT_TOKEN (Tokens[17 ], tok::l_brace, TT_LambdaLBrace);
1900
1932
}
1901
1933
0 commit comments