Merge pull request #39095 from AnthonyLatsis/se-309

SE-0309: Unlock existential types for all protocols
This commit is contained in:
Konrad `ktoso` Malawski
2021-09-02 11:27:39 +09:00
committed by GitHub
31 changed files with 829 additions and 571 deletions

View File

@@ -3561,14 +3561,13 @@ public:
StringRef blobData) {
IdentifierID nameID;
DeclContextID contextID;
bool isImplicit, isClassBounded, isObjC, existentialTypeSupported;
bool isImplicit, isClassBounded, isObjC;
uint8_t rawAccessLevel;
unsigned numInheritedTypes;
ArrayRef<uint64_t> rawInheritedAndDependencyIDs;
decls_block::ProtocolLayout::readRecord(scratch, nameID, contextID,
isImplicit, isClassBounded, isObjC,
existentialTypeSupported,
rawAccessLevel, numInheritedTypes,
rawInheritedAndDependencyIDs);
@@ -3594,8 +3593,6 @@ public:
ctx.evaluator.cacheOutput(ProtocolRequiresClassRequest{proto},
std::move(isClassBounded));
ctx.evaluator.cacheOutput(ExistentialTypeSupportedRequest{proto},
std::move(existentialTypeSupported));
if (auto accessLevel = getActualAccessLevel(rawAccessLevel))
proto->setAccess(*accessLevel);