@@ -174,14 +174,12 @@ SubstitutionMap SubstitutionMap::get(GenericSignature genericSig,
174
174
// Form the stored conformances.
175
175
SmallVector<ProtocolConformanceRef, 4> conformances;
176
176
for (const auto &req : genericSig.getRequirements()) {
177
- if (req.getKind() != RequirementKind::Conformance) continue;
178
-
179
- Type depTy = req.getFirstType();
180
- auto replacement = depTy.subst(IFS);
181
- auto *proto = req.getProtocolDecl();
182
- auto conformance = IFS.lookupConformance(
183
- depTy->getCanonicalType(), replacement, proto, /*level=*/0);
184
- conformances.push_back(conformance);
177
+ if (req.getKind() != RequirementKind::Conformance)
178
+ continue;
179
+
180
+ conformances.push_back(
181
+ IFS.lookupConformance(
182
+ req.getFirstType(), req.getProtocolDecl(), /*level=*/0));
185
183
}
186
184
187
185
return SubstitutionMap(genericSig, types, conformances);
@@ -649,14 +647,14 @@ bool SubstitutionMap::isIdentity() const {
649
647
return !hasNonIdentityReplacement;
650
648
}
651
649
652
- SubstitutionMap SubstitutionMap::mapIntoTypeExpansionContext (
653
- TypeExpansionContext context) const {
650
+ SubstitutionMap swift::substOpaqueTypesWithUnderlyingTypes (
651
+ SubstitutionMap subs, TypeExpansionContext context) {
654
652
ReplaceOpaqueTypesWithUnderlyingTypes replacer(
655
653
context.getContext(), context.getResilienceExpansion(),
656
654
context.isWholeModuleContext());
657
- return this-> subst(replacer, replacer,
658
- SubstFlags::SubstituteOpaqueArchetypes |
659
- SubstFlags::PreservePackExpansionLevel);
655
+ return subs. subst(replacer, replacer,
656
+ SubstFlags::SubstituteOpaqueArchetypes |
657
+ SubstFlags::PreservePackExpansionLevel);
660
658
}
661
659
662
660
bool OuterSubstitutions::isUnsubstitutedTypeParameter(Type type) const {
0 commit comments