Merge remote-tracking branch 'origin/master' into master-rebranch

This commit is contained in:
swift-ci
2019-09-06 20:03:38 -07:00
21 changed files with 183 additions and 170 deletions

View File

@@ -4553,7 +4553,6 @@ namespace {
// Determine the type and generic args of the extension.
if (objcClass->getGenericParams()) {
result->createGenericParamsIfMissing(objcClass);
result->setGenericSignature(objcClass->getGenericSignature());
}
@@ -4826,7 +4825,8 @@ namespace {
if (auto gpImportResult = importObjCGenericParams(decl, dc)) {
auto genericParams = *gpImportResult;
if (genericParams) {
result->setGenericParams(genericParams);
result->getASTContext().evaluator.cacheOutput(
GenericParamListRequest{result}, std::move(genericParams));
auto *sig = Impl.buildGenericSignature(genericParams, dc);
result->setGenericSignature(sig);
@@ -5154,8 +5154,11 @@ namespace {
if (auto *GTD = dyn_cast<GenericTypeDecl>(typeDecl)) {
typealias->setGenericSignature(GTD->getGenericSignature());
if (GTD->isGeneric())
typealias->setGenericParams(GTD->getGenericParams()->clone(typealias));
if (GTD->isGeneric()) {
typealias->getASTContext().evaluator.cacheOutput(
GenericParamListRequest{typealias},
std::move(GTD->getGenericParams()->clone(typealias)));
}
}
typealias->setUnderlyingType(typeDecl->getDeclaredInterfaceType());
@@ -5386,8 +5389,11 @@ Decl *SwiftDeclConverter::importCompatibilityTypeAlias(
auto *GTD = dyn_cast<GenericTypeDecl>(typeDecl);
if (GTD && !isa<ProtocolDecl>(GTD)) {
alias->setGenericSignature(GTD->getGenericSignature());
if (GTD->isGeneric())
alias->setGenericParams(GTD->getGenericParams()->clone(alias));
if (GTD->isGeneric()) {
alias->getASTContext().evaluator.cacheOutput(
GenericParamListRequest{alias},
std::move(GTD->getGenericParams()->clone(alias)));
}
}
alias->setUnderlyingType(typeDecl->getDeclaredInterfaceType());
@@ -8125,7 +8131,6 @@ ClangImporter::Implementation::importDeclContextOf(
ext->setMemberLoader(this, reinterpret_cast<uintptr_t>(declSubmodule));
if (auto protoDecl = ext->getExtendedProtocolDecl()) {
ext->createGenericParamsIfMissing(protoDecl);
ext->setGenericSignature(protoDecl->getGenericSignature());
}