Serialization: Serialize ProtocolDecl::getSuperclassDecl() instead of ProtocolDecl::getSuperclass()

Protocols with a superclass bound written as `protocol P where Self: C`
return null from getSuperclass(). Unqualified lookup only cares about
getSuperclassDecl(), so serialize that instead.

Fixes rdar://problem/124478687.
This commit is contained in:
Slava Pestov
2024-03-20 15:36:06 -04:00
parent 582ec11cee
commit e3d434fbbe
5 changed files with 51 additions and 15 deletions

View File

@@ -4353,7 +4353,7 @@ public:
->requiresClass(),
proto->isObjC(),
proto->hasSelfOrAssociatedTypeRequirements(),
S.addTypeRef(proto->getSuperclass()),
S.addDeclRef(proto->getSuperclassDecl()),
rawAccessLevel,
dependencyTypeIDs);