@@ -1792,32 +1792,11 @@ void swift::simple_display(
1792
1792
// ResolveMacroRequest computation.
1793
1793
// ----------------------------------------------------------------------------//
1794
1794
1795
- // / Destructure a type repr for a macro reference.
1796
- // /
1797
- // / For a 1-level member type repr whose base and member are both identifier
1798
- // / types, e.g. `Foo.Bar`, return a pair of the base and the member.
1799
- // /
1800
- // / For an identifier type repr, return a pair of `nullptr` and the identifier.
1801
- static std::pair<IdentTypeRepr *, IdentTypeRepr *>
1802
- destructureMacroRefTypeRepr (TypeRepr *typeRepr) {
1803
- if (!typeRepr)
1804
- return {nullptr , nullptr };
1805
- if (auto *identType = dyn_cast<IdentTypeRepr>(typeRepr))
1806
- return {nullptr , identType};
1807
- if (auto *memType = dyn_cast<MemberTypeRepr>(typeRepr))
1808
- if (auto *base = dyn_cast<IdentTypeRepr>(memType->getBaseComponent ()))
1809
- if (memType->getMemberComponents ().size () == 1 )
1810
- if (auto first =
1811
- dyn_cast<IdentTypeRepr>(memType->getMemberComponents ().front ()))
1812
- return {base, first};
1813
- return {nullptr , nullptr };
1814
- }
1815
-
1816
1795
DeclNameRef UnresolvedMacroReference::getMacroName () const {
1817
1796
if (auto *expansion = pointer.dyn_cast <FreestandingMacroExpansion *>())
1818
1797
return expansion->getMacroName ();
1819
1798
if (auto *attr = pointer.dyn_cast <CustomAttr *>()) {
1820
- auto [_, member] = destructureMacroRefTypeRepr ( attr->getTypeRepr () );
1799
+ auto [_, member] = attr->destructureMacroRef ( );
1821
1800
if (!member)
1822
1801
return DeclNameRef ();
1823
1802
return member->getNameRef ();
@@ -1837,7 +1816,7 @@ DeclNameRef UnresolvedMacroReference::getModuleName() const {
1837
1816
if (auto *expansion = pointer.dyn_cast <FreestandingMacroExpansion *>())
1838
1817
return expansion->getModuleName ();
1839
1818
if (auto *attr = pointer.dyn_cast <CustomAttr *>()) {
1840
- auto [base, _] = destructureMacroRefTypeRepr ( attr->getTypeRepr () );
1819
+ auto [base, _] = attr->destructureMacroRef ( );
1841
1820
if (!base)
1842
1821
return DeclNameRef ();
1843
1822
return base->getNameRef ();
@@ -1849,7 +1828,7 @@ DeclNameLoc UnresolvedMacroReference::getModuleNameLoc() const {
1849
1828
if (auto *expansion = pointer.dyn_cast <FreestandingMacroExpansion *>())
1850
1829
return expansion->getModuleNameLoc ();
1851
1830
if (auto *attr = pointer.dyn_cast <CustomAttr *>()) {
1852
- auto [base, _] = destructureMacroRefTypeRepr ( attr->getTypeRepr () );
1831
+ auto [base, _] = attr->destructureMacroRef ( );
1853
1832
if (!base)
1854
1833
return DeclNameLoc ();
1855
1834
return base->getNameLoc ();
@@ -1861,7 +1840,7 @@ DeclNameLoc UnresolvedMacroReference::getMacroNameLoc() const {
1861
1840
if (auto *expansion = pointer.dyn_cast <FreestandingMacroExpansion *>())
1862
1841
return expansion->getMacroNameLoc ();
1863
1842
if (auto *attr = pointer.dyn_cast <CustomAttr *>()) {
1864
- auto [_, member] = destructureMacroRefTypeRepr ( attr->getTypeRepr () );
1843
+ auto [_, member] = attr->destructureMacroRef ( );
1865
1844
if (!member)
1866
1845
return DeclNameLoc ();
1867
1846
return member->getNameLoc ();
@@ -1874,7 +1853,7 @@ SourceRange UnresolvedMacroReference::getGenericArgsRange() const {
1874
1853
return expansion->getGenericArgsRange ();
1875
1854
1876
1855
if (auto *attr = pointer.dyn_cast <CustomAttr *>()) {
1877
- auto [_, member] = destructureMacroRefTypeRepr ( attr->getTypeRepr () );
1856
+ auto [_, member] = attr->destructureMacroRef ( );
1878
1857
if (!member)
1879
1858
return SourceRange ();
1880
1859
auto *genericTypeRepr = dyn_cast_or_null<GenericIdentTypeRepr>(member);
@@ -1892,7 +1871,7 @@ ArrayRef<TypeRepr *> UnresolvedMacroReference::getGenericArgs() const {
1892
1871
return expansion->getGenericArgs ();
1893
1872
1894
1873
if (auto *attr = pointer.dyn_cast <CustomAttr *>()) {
1895
- auto [_, member] = destructureMacroRefTypeRepr ( attr->getTypeRepr () );
1874
+ auto [_, member] = attr->destructureMacroRef ( );
1896
1875
if (!member)
1897
1876
return {};
1898
1877
auto *genericTypeRepr = dyn_cast_or_null<GenericIdentTypeRepr>(member);
0 commit comments