@@ -274,30 +274,32 @@ operator()(CanType dependentType, Type conformingReplacementType,
274274}
275275
276276Type DependentMemberType::substBaseType (ModuleDecl *module , Type substBase) {
277- return substBaseType (substBase, LookUpConformanceInModule (module ));
277+ return substBaseType (substBase, LookUpConformanceInModule (module ), llvm::None );
278278}
279279
280280Type DependentMemberType::substBaseType (Type substBase,
281- LookupConformanceFn lookupConformance) {
281+ LookupConformanceFn lookupConformance,
282+ SubstOptions options) {
282283 if (substBase.getPointer () == getBase ().getPointer () &&
283284 substBase->hasTypeParameter ())
284285 return this ;
285286
286- InFlightSubstitution IFS (nullptr , lookupConformance, llvm::None );
287+ InFlightSubstitution IFS (nullptr , lookupConformance, options );
287288 return getMemberForBaseType (IFS, getBase (), substBase,
288289 getAssocType (), getName (),
289290 /* level=*/ 0 );
290291}
291292
292293Type DependentMemberType::substRootParam (Type newRoot,
293- LookupConformanceFn lookupConformance){
294+ LookupConformanceFn lookupConformance,
295+ SubstOptions options) {
294296 auto base = getBase ();
295297 if (base->is <GenericTypeParamType>()) {
296- return substBaseType (newRoot, lookupConformance);
298+ return substBaseType (newRoot, lookupConformance, options );
297299 }
298300 if (auto depMem = base->getAs <DependentMemberType>()) {
299- return substBaseType (depMem->substRootParam (newRoot, lookupConformance),
300- lookupConformance);
301+ return substBaseType (depMem->substRootParam (newRoot, lookupConformance, options ),
302+ lookupConformance, options );
301303 }
302304 return Type ();
303305}
0 commit comments