Skip to content

Commit 243a86b

Browse files
committed
AST: Handle request cycle in TypeBase::getMemberSubstitutions()
I don't have a test case, but it's possible that getGenericSignature() returns nullptr, even if the declaration has a generic parameter list, because of a request cycle. Fixes <rdar://problem/60045501>.
1 parent 8f30626 commit 243a86b

File tree

1 file changed

+1
-2
lines changed

1 file changed

+1
-2
lines changed

lib/AST/Type.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4017,8 +4017,7 @@ TypeSubstitutionMap TypeBase::getMemberSubstitutions(
40174017
isa<GenericTypeDecl>(member) ||
40184018
isa<SubscriptDecl>(member)) {
40194019
auto *innerDC = member->getInnermostDeclContext();
4020-
if (innerDC->isInnermostContextGeneric()) {
4021-
auto sig = innerDC->getGenericSignatureOfContext();
4020+
if (auto sig = innerDC->getGenericSignatureOfContext()) {
40224021
for (auto param : sig->getInnermostGenericParams()) {
40234022
auto *genericParam = param->getCanonicalType()
40244023
->castTo<GenericTypeParamType>();

0 commit comments

Comments
 (0)