@@ -84,28 +84,14 @@ Type InheritedTypeRequest::evaluate(
8484
8585Type
8686SuperclassTypeRequest::evaluate (Evaluator &evaluator,
87- NominalTypeDecl *nominalDecl ,
87+ ClassDecl *classDecl ,
8888 TypeResolutionStage stage) const {
89- assert (isa<ClassDecl>(nominalDecl) || isa<ProtocolDecl>(nominalDecl));
90-
91- // If this is a protocol that came from a serialized module, compute the
92- // superclass via its generic signature.
93- if (auto *proto = dyn_cast<ProtocolDecl>(nominalDecl)) {
94- if (proto->wasDeserialized ()) {
95- return proto->getGenericSignature ()
96- ->getSuperclassBound (proto->getSelfInterfaceType ());
97- }
98-
99- if (!proto->getSuperclassDecl ())
100- return Type ();
101- } else if (auto classDecl = dyn_cast<ClassDecl>(nominalDecl)) {
102- if (!classDecl->getSuperclassDecl ())
103- return Type ();
104- }
89+ if (!classDecl->getSuperclassDecl ())
90+ return Type ();
10591
106- for (unsigned int idx : nominalDecl ->getInherited ().getIndices ()) {
92+ for (unsigned int idx : classDecl ->getInherited ().getIndices ()) {
10793 auto result = evaluateOrDefault (evaluator,
108- InheritedTypeRequest{nominalDecl , idx, stage},
94+ InheritedTypeRequest{classDecl , idx, stage},
10995 Type ());
11096 if (!result)
11197 continue ;
0 commit comments