@@ -1560,6 +1560,31 @@ fn main() { let _: m::Spam = S$0 }
15601560 check (
15611561 r#"
15621562#[deprecated]
1563+ mod something_deprecated {}
1564+
1565+ fn main() { som$0 }
1566+ "# ,
1567+ SymbolKind :: Module ,
1568+ expect ! [ [ r#"
1569+ [
1570+ CompletionItem {
1571+ label: "something_deprecated",
1572+ detail_left: None,
1573+ detail_right: None,
1574+ source_range: 55..58,
1575+ delete: 55..58,
1576+ insert: "something_deprecated",
1577+ kind: SymbolKind(
1578+ Module,
1579+ ),
1580+ },
1581+ ]
1582+ "# ] ] ,
1583+ ) ;
1584+
1585+ check (
1586+ r#"
1587+ #[deprecated]
15631588fn something_deprecated() {}
15641589
15651590fn main() { som$0 }
@@ -1602,10 +1627,289 @@ fn main() { som$0 }
16021627 "# ] ] ,
16031628 ) ;
16041629
1630+ check (
1631+ r#"
1632+ #[deprecated]
1633+ struct A;
1634+
1635+ fn main() { A$0 }
1636+ "# ,
1637+ SymbolKind :: Struct ,
1638+ expect ! [ [ r#"
1639+ [
1640+ CompletionItem {
1641+ label: "A",
1642+ detail_left: None,
1643+ detail_right: Some(
1644+ "A",
1645+ ),
1646+ source_range: 37..38,
1647+ delete: 37..38,
1648+ insert: "A",
1649+ kind: SymbolKind(
1650+ Struct,
1651+ ),
1652+ detail: "A",
1653+ },
1654+ ]
1655+ "# ] ] ,
1656+ ) ;
1657+
1658+ check (
1659+ r#"
1660+ #[deprecated]
1661+ enum A {}
1662+
1663+ fn main() { A$0 }
1664+ "# ,
1665+ SymbolKind :: Enum ,
1666+ expect ! [ [ r#"
1667+ [
1668+ CompletionItem {
1669+ label: "A",
1670+ detail_left: None,
1671+ detail_right: Some(
1672+ "A",
1673+ ),
1674+ source_range: 37..38,
1675+ delete: 37..38,
1676+ insert: "A",
1677+ kind: SymbolKind(
1678+ Enum,
1679+ ),
1680+ detail: "A",
1681+ },
1682+ ]
1683+ "# ] ] ,
1684+ ) ;
1685+
1686+ check (
1687+ r#"
1688+ enum A {
1689+ Okay,
1690+ #[deprecated]
1691+ Old,
1692+ }
1693+
1694+ fn main() { A::$0 }
1695+ "# ,
1696+ SymbolKind :: Variant ,
1697+ expect ! [ [ r#"
1698+ [
1699+ CompletionItem {
1700+ label: "Okay",
1701+ detail_left: None,
1702+ detail_right: Some(
1703+ "Okay",
1704+ ),
1705+ source_range: 64..64,
1706+ delete: 64..64,
1707+ insert: "Okay$0",
1708+ kind: SymbolKind(
1709+ Variant,
1710+ ),
1711+ detail: "Okay",
1712+ relevance: CompletionRelevance {
1713+ exact_name_match: false,
1714+ type_match: None,
1715+ is_local: false,
1716+ trait_: None,
1717+ is_name_already_imported: false,
1718+ requires_import: false,
1719+ is_private_editable: false,
1720+ postfix_match: None,
1721+ function: Some(
1722+ CompletionRelevanceFn {
1723+ has_params: false,
1724+ has_self_param: false,
1725+ return_type: DirectConstructor,
1726+ },
1727+ ),
1728+ is_skipping_completion: false,
1729+ has_local_inherent_impl: false,
1730+ },
1731+ trigger_call_info: true,
1732+ },
1733+ CompletionItem {
1734+ label: "Old",
1735+ detail_left: None,
1736+ detail_right: Some(
1737+ "Old",
1738+ ),
1739+ source_range: 64..64,
1740+ delete: 64..64,
1741+ insert: "Old$0",
1742+ kind: SymbolKind(
1743+ Variant,
1744+ ),
1745+ detail: "Old",
1746+ deprecated: true,
1747+ relevance: CompletionRelevance {
1748+ exact_name_match: false,
1749+ type_match: None,
1750+ is_local: false,
1751+ trait_: None,
1752+ is_name_already_imported: false,
1753+ requires_import: false,
1754+ is_private_editable: false,
1755+ postfix_match: None,
1756+ function: Some(
1757+ CompletionRelevanceFn {
1758+ has_params: false,
1759+ has_self_param: false,
1760+ return_type: DirectConstructor,
1761+ },
1762+ ),
1763+ is_skipping_completion: false,
1764+ has_local_inherent_impl: false,
1765+ },
1766+ trigger_call_info: true,
1767+ },
1768+ ]
1769+ "# ] ] ,
1770+ ) ;
1771+
1772+ check (
1773+ r#"
1774+ #[deprecated]
1775+ const A: i32 = 0;
1776+
1777+ fn main() { A$0 }
1778+ "# ,
1779+ SymbolKind :: Const ,
1780+ expect ! [ [ r#"
1781+ [
1782+ CompletionItem {
1783+ label: "A",
1784+ detail_left: None,
1785+ detail_right: Some(
1786+ "i32",
1787+ ),
1788+ source_range: 45..46,
1789+ delete: 45..46,
1790+ insert: "A",
1791+ kind: SymbolKind(
1792+ Const,
1793+ ),
1794+ detail: "i32",
1795+ },
1796+ ]
1797+ "# ] ] ,
1798+ ) ;
1799+
1800+ check (
1801+ r#"
1802+ #[deprecated]
1803+ static A: i32 = 0;
1804+
1805+ fn main() { A$0 }
1806+ "# ,
1807+ SymbolKind :: Static ,
1808+ expect ! [ [ r#"
1809+ [
1810+ CompletionItem {
1811+ label: "A",
1812+ detail_left: None,
1813+ detail_right: Some(
1814+ "i32",
1815+ ),
1816+ source_range: 46..47,
1817+ delete: 46..47,
1818+ insert: "A",
1819+ kind: SymbolKind(
1820+ Static,
1821+ ),
1822+ detail: "i32",
1823+ },
1824+ ]
1825+ "# ] ] ,
1826+ ) ;
1827+
1828+ check (
1829+ r#"
1830+ #[deprecated]
1831+ trait A {}
1832+
1833+ impl A$0
1834+ "# ,
1835+ SymbolKind :: Trait ,
1836+ expect ! [ [ r#"
1837+ [
1838+ CompletionItem {
1839+ label: "A",
1840+ detail_left: None,
1841+ detail_right: None,
1842+ source_range: 31..32,
1843+ delete: 31..32,
1844+ insert: "A",
1845+ kind: SymbolKind(
1846+ Trait,
1847+ ),
1848+ },
1849+ ]
1850+ "# ] ] ,
1851+ ) ;
1852+
1853+ check (
1854+ r#"
1855+ #[deprecated]
1856+ type A = i32;
1857+
1858+ fn main() { A$0 }
1859+ "# ,
1860+ SymbolKind :: TypeAlias ,
1861+ expect ! [ [ r#"
1862+ [
1863+ CompletionItem {
1864+ label: "A",
1865+ detail_left: None,
1866+ detail_right: None,
1867+ source_range: 41..42,
1868+ delete: 41..42,
1869+ insert: "A",
1870+ kind: SymbolKind(
1871+ TypeAlias,
1872+ ),
1873+ },
1874+ ]
1875+ "# ] ] ,
1876+ ) ;
1877+
1878+ check (
1879+ r#"
1880+ #[deprecated]
1881+ macro_rules! a { _ => {}}
1882+
1883+ fn main() { a$0 }
1884+ "# ,
1885+ SymbolKind :: Macro ,
1886+ expect ! [ [ r#"
1887+ [
1888+ CompletionItem {
1889+ label: "a!(…)",
1890+ detail_left: None,
1891+ detail_right: Some(
1892+ "macro_rules! a",
1893+ ),
1894+ source_range: 53..54,
1895+ delete: 53..54,
1896+ insert: "a!($0)",
1897+ kind: SymbolKind(
1898+ Macro,
1899+ ),
1900+ lookup: "a!",
1901+ detail: "macro_rules! a",
1902+ deprecated: true,
1903+ },
1904+ ]
1905+ "# ] ] ,
1906+ ) ;
1907+
16051908 check (
16061909 r#"
16071910struct A { #[deprecated] the_field: u32 }
1608- fn foo() { A { the$0 } }
1911+
1912+ fn main() { A { the$0 } }
16091913"# ,
16101914 SymbolKind :: Field ,
16111915 expect ! [ [ r#"
@@ -1616,8 +1920,8 @@ fn foo() { A { the$0 } }
16161920 detail_right: Some(
16171921 "u32",
16181922 ),
1619- source_range: 57..60 ,
1620- delete: 57..60 ,
1923+ source_range: 59..62 ,
1924+ delete: 59..62 ,
16211925 insert: "the_field",
16221926 kind: SymbolKind(
16231927 Field,
0 commit comments