Skip to content

Commit 64b1c35

Browse files
committed
[AST] Eliminate a few more LazyResolver::resolveDeclSignature() calls.
1 parent bc0445d commit 64b1c35

File tree

1 file changed

+3
-12
lines changed

1 file changed

+3
-12
lines changed

lib/AST/Decl.cpp

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3495,19 +3495,7 @@ bool ProtocolDecl::existentialTypeSupportedSlow(LazyResolver *resolver) {
34953495
if (isObjC())
34963496
return true;
34973497

3498-
// Resolve the protocol's type.
3499-
if (resolver && !hasInterfaceType())
3500-
resolver->resolveDeclSignature(this);
3501-
35023498
for (auto member : getMembers()) {
3503-
if (auto vd = dyn_cast<ValueDecl>(member)) {
3504-
if (resolver && !vd->hasInterfaceType())
3505-
resolver->resolveDeclSignature(vd);
3506-
}
3507-
3508-
if (member->isInvalid())
3509-
continue;
3510-
35113499
// Check for associated types.
35123500
if (isa<AssociatedTypeDecl>(member)) {
35133501
// An existential type cannot be used if the protocol has an
@@ -3524,6 +3512,9 @@ bool ProtocolDecl::existentialTypeSupportedSlow(LazyResolver *resolver) {
35243512
continue;
35253513
}
35263514

3515+
if (resolver && !valueMember->hasInterfaceType())
3516+
resolver->resolveDeclSignature(valueMember);
3517+
35273518
if (!isAvailableInExistential(valueMember)) {
35283519
Bits.ProtocolDecl.ExistentialTypeSupported = false;
35293520
return false;

0 commit comments

Comments
 (0)