Skip to content

Commit e3119a8

Browse files
committed
Allow Retrieving Nominal Types from PPTs
1 parent f7b2a8e commit e3119a8

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

include/swift/AST/Types.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6528,7 +6528,8 @@ inline NominalTypeDecl *TypeBase::getAnyNominal() {
65286528
inline Type TypeBase::getNominalParent() {
65296529
if (auto existential = getAs<ExistentialType>())
65306530
return existential->getConstraintType()->getNominalParent();
6531-
6531+
if (auto ppt = getAs<ParameterizedProtocolType>())
6532+
return ppt->getBaseType()->getNominalParent();
65326533
return castTo<AnyGenericType>()->getParent();
65336534
}
65346535

lib/AST/Type.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,8 @@ NominalTypeDecl *CanType::getAnyNominal() const {
106106
GenericTypeDecl *CanType::getAnyGeneric() const {
107107
if (auto existential = dyn_cast<ExistentialType>(*this))
108108
return existential->getConstraintType()->getAnyGeneric();
109+
if (auto ppt = dyn_cast<ParameterizedProtocolType>(*this))
110+
return ppt->getBaseType()->getDecl();
109111
if (auto Ty = dyn_cast<AnyGenericType>(*this))
110112
return Ty->getDecl();
111113
return nullptr;

0 commit comments

Comments
 (0)