Skip to content

Commit cb05ea6

Browse files
committed
Sema: Use SubstitutionMap::getOverrideSubstitutions() in computeDesignatedInitOverrideSignature()
1 parent 1d87bc2 commit cb05ea6

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

lib/Sema/CodeSynthesis.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,7 @@ computeDesignatedInitOverrideSignature(ASTContext &ctx,
434434
ClassDecl *classDecl,
435435
Type superclassTy,
436436
ConstructorDecl *superclassCtor) {
437-
auto *superclassDecl = superclassTy->getAnyNominal();
437+
auto *superclassDecl = superclassTy->getClassOrBoundGenericClass();
438438

439439
auto classSig = classDecl->getGenericSignature();
440440
auto superclassCtorSig = superclassCtor->getGenericSignature();
@@ -515,11 +515,6 @@ computeDesignatedInitOverrideSignature(ASTContext &ctx,
515515
return ProtocolConformanceRef(proto);
516516
};
517517

518-
// Now form the substitution map that will be used to remap parameter
519-
// types.
520-
auto subMap = SubstitutionMap::get(superclassCtorSig,
521-
substFn, lookupConformanceFn);
522-
523518
SmallVector<Requirement, 2> requirements;
524519

525520
// If the base initializer's generic signature is different
@@ -540,6 +535,11 @@ computeDesignatedInitOverrideSignature(ASTContext &ctx,
540535
std::move(requirements));
541536
}
542537

538+
// Now form the substitution map that will be used to remap parameter
539+
// types.
540+
auto subMap = SubstitutionMap::getOverrideSubstitutions(
541+
superclassDecl, classDecl, superclassCtorSig, genericParams);
542+
543543
return DesignatedInitOverrideInfo{genericSig, genericParams, subMap};
544544
}
545545

0 commit comments

Comments
 (0)