@@ -2286,39 +2286,14 @@ static bool declsAreAssociatedTypes(ArrayRef<TypeDecl *> decls) {
2286
2286
return true ;
2287
2287
}
2288
2288
2289
-
2290
- // / Clone the given generic parameters in the given list. We don't need any
2291
- // / of the requirements, because they will be inferred.
2292
- static GenericParamList *cloneGenericParams (ASTContext &ctx,
2293
- ExtensionDecl *ext,
2294
- GenericParamList *fromParams) {
2295
- // Clone generic parameters.
2296
- SmallVector<GenericTypeParamDecl *, 2 > toGenericParams;
2297
- for (auto fromGP : *fromParams) {
2298
- // Create the new generic parameter.
2299
- auto toGP = new (ctx) GenericTypeParamDecl (ext, fromGP->getName (),
2300
- SourceLoc (),
2301
- fromGP->getDepth (),
2302
- fromGP->getIndex ());
2303
- toGP->setImplicit (true );
2304
-
2305
- // Record new generic parameter.
2306
- toGenericParams.push_back (toGP);
2307
- }
2308
-
2309
- return GenericParamList::create (ctx, SourceLoc (), toGenericParams,
2310
- SourceLoc ());
2311
- }
2312
-
2313
2289
static GenericParamList *
2314
2290
createExtensionGenericParams (ASTContext &ctx,
2315
2291
ExtensionDecl *ext,
2316
2292
NominalTypeDecl *nominal) {
2317
2293
// Collect generic parameters from all outer contexts.
2318
2294
SmallVector<GenericParamList *, 2 > allGenericParams;
2319
2295
nominal->forEachGenericContext ([&](GenericParamList *gpList) {
2320
- allGenericParams.push_back (
2321
- cloneGenericParams (ctx, ext, gpList));
2296
+ allGenericParams.push_back (gpList->clone (ext));
2322
2297
});
2323
2298
2324
2299
GenericParamList *toParams = nullptr ;
0 commit comments