AST: Remove GenericContext::setGenericEnvironment()

This was a transitional step before converting all callers to
store a generic signature instead of an environment.
This commit is contained in:
Slava Pestov
2019-09-05 18:17:58 -04:00
parent 0405ab5ffc
commit f292c1b240
16 changed files with 59 additions and 94 deletions

View File

@@ -356,7 +356,7 @@ synthesizeStubBody(AbstractFunctionDecl *fn, void *) {
/*isTypeChecked=*/true };
}
static std::tuple<GenericEnvironment *, GenericParamList *, SubstitutionMap>
static std::tuple<GenericSignature *, GenericParamList *, SubstitutionMap>
configureGenericDesignatedInitOverride(ASTContext &ctx,
ClassDecl *classDecl,
Type superclassTy,
@@ -367,7 +367,7 @@ configureGenericDesignatedInitOverride(ASTContext &ctx,
auto subMap = superclassTy->getContextSubstitutionMap(
moduleDecl, superclassDecl);
GenericEnvironment *genericEnv;
GenericSignature *genericSig;
// Inheriting initializers that have their own generic parameters
auto *genericParams = superclassCtor->getGenericParams();
@@ -445,7 +445,7 @@ configureGenericDesignatedInitOverride(ASTContext &ctx,
subMap = SubstitutionMap::get(superclassSig,
substFn, lookupConformanceFn);
auto *genericSig = evaluateOrDefault(
genericSig = evaluateOrDefault(
ctx.evaluator,
AbstractGenericSignatureRequest{
classDecl->getGenericSignature(),
@@ -453,12 +453,11 @@ configureGenericDesignatedInitOverride(ASTContext &ctx,
std::move(requirements)
},
nullptr);
genericEnv = genericSig->getGenericEnvironment();
} else {
genericEnv = classDecl->getGenericEnvironment();
genericSig = classDecl->getGenericSignature();
}
return std::make_tuple(genericEnv, genericParams, subMap);
return std::make_tuple(genericSig, genericParams, subMap);
}
static void
@@ -640,11 +639,11 @@ createDesignatedInitOverride(ClassDecl *classDecl,
return nullptr;
}
GenericEnvironment *genericEnv;
GenericSignature *genericSig;
GenericParamList *genericParams;
SubstitutionMap subMap;
std::tie(genericEnv, genericParams, subMap) =
std::tie(genericSig, genericParams, subMap) =
configureGenericDesignatedInitOverride(ctx,
classDecl,
superclassTy,
@@ -690,7 +689,7 @@ createDesignatedInitOverride(ClassDecl *classDecl,
ctor->setImplicit();
// Set the interface type of the initializer.
ctor->setGenericEnvironment(genericEnv);
ctor->setGenericSignature(genericSig);
ctor->computeType();
ctor->setImplicitlyUnwrappedOptional(