Skip to content

Commit fe5b9c8

Browse files
authored
Merge pull request #30593 from slavapestov/rdar60045501
AST: Handle request cycle in TypeBase::getMemberSubstitutions()
2 parents 63deebc + 81912e9 commit fe5b9c8

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

lib/AST/Type.cpp

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4018,14 +4018,15 @@ TypeSubstitutionMap TypeBase::getMemberSubstitutions(
40184018
isa<SubscriptDecl>(member)) {
40194019
auto *innerDC = member->getInnermostDeclContext();
40204020
if (innerDC->isInnermostContextGeneric()) {
4021-
auto sig = innerDC->getGenericSignatureOfContext();
4022-
for (auto param : sig->getInnermostGenericParams()) {
4023-
auto *genericParam = param->getCanonicalType()
4024-
->castTo<GenericTypeParamType>();
4025-
substitutions[genericParam] =
4026-
(genericEnv
4027-
? genericEnv->mapTypeIntoContext(param)
4028-
: param);
4021+
if (auto sig = innerDC->getGenericSignatureOfContext()) {
4022+
for (auto param : sig->getInnermostGenericParams()) {
4023+
auto *genericParam = param->getCanonicalType()
4024+
->castTo<GenericTypeParamType>();
4025+
substitutions[genericParam] =
4026+
(genericEnv
4027+
? genericEnv->mapTypeIntoContext(param)
4028+
: param);
4029+
}
40294030
}
40304031
}
40314032
}

0 commit comments

Comments
 (0)