@@ -1514,26 +1514,6 @@ TEST(Hover, All) {
1514
1514
HI.Name = " cls<cls<cls<int> > >" ;
1515
1515
HI.Documentation = " type of nested templates." ;
1516
1516
}},
1517
- {
1518
- R"cpp( // sizeof expr
1519
- void foo() {
1520
- (void)[[size^of]](char);
1521
- })cpp" ,
1522
- [](HoverInfo &HI) {
1523
- HI.Name = " expression" ;
1524
- HI.Type = " unsigned long" ;
1525
- HI.Value = " 1" ;
1526
- }},
1527
- {
1528
- R"cpp( // alignof expr
1529
- void foo() {
1530
- (void)[[align^of]](char);
1531
- })cpp" ,
1532
- [](HoverInfo &HI) {
1533
- HI.Name = " expression" ;
1534
- HI.Type = " unsigned long" ;
1535
- HI.Value = " 1" ;
1536
- }},
1537
1517
};
1538
1518
1539
1519
// Create a tiny index, so tests above can verify documentation is fetched.
@@ -1794,6 +1774,49 @@ Value = val
1794
1774
1795
1775
def)pt" );
1796
1776
}
1777
+
1778
+ TEST (Hover, ExprTests) {
1779
+ struct {
1780
+ const char *const Code;
1781
+ const std::function<void (HoverInfo &)> ExpectedBuilder;
1782
+ } Cases[] = {
1783
+ {
1784
+ R"cpp( // sizeof expr
1785
+ void foo() {
1786
+ (void)[[size^of]](char);
1787
+ })cpp" ,
1788
+ [](HoverInfo &HI) {
1789
+ HI.Name = " expression" ;
1790
+ HI.Type = " unsigned long" ;
1791
+ HI.Value = " 1" ;
1792
+ }},
1793
+ {
1794
+ R"cpp( // alignof expr
1795
+ void foo() {
1796
+ (void)[[align^of]](char);
1797
+ })cpp" ,
1798
+ [](HoverInfo &HI) {
1799
+ HI.Name = " expression" ;
1800
+ HI.Type = " unsigned long" ;
1801
+ HI.Value = " 1" ;
1802
+ }},
1803
+ };
1804
+ for (const auto &C : Cases) {
1805
+ Annotations T (C.Code );
1806
+ TestTU TU = TestTU::withCode (T.code ());
1807
+ auto AST = TU.build ();
1808
+ for (const auto &D : AST.getDiagnostics ())
1809
+ ADD_FAILURE () << D;
1810
+
1811
+ auto H = getHover (AST, T.point (), format::getLLVMStyle (), nullptr );
1812
+ ASSERT_TRUE (H);
1813
+ HoverInfo ExpectedHover;
1814
+ C.ExpectedBuilder (ExpectedHover);
1815
+ // We don't check for Type as it might differ on different platforms.
1816
+ EXPECT_EQ (H->Name , ExpectedHover.Name );
1817
+ EXPECT_EQ (H->Value , ExpectedHover.Value );
1818
+ }
1819
+ }
1797
1820
} // namespace
1798
1821
} // namespace clangd
1799
1822
} // namespace clang
0 commit comments