mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[Serialization] Serialize hasMissingDesignatedInitializers
Since this is going to be something modules tell clients, rather than something clients discover about modules, serialize it.
This commit is contained in:
committed by
Robert Widmann
parent
b133b7e3da
commit
8e45f44da4
@@ -3416,6 +3416,7 @@ public:
|
||||
DeclContextID contextID;
|
||||
bool isImplicit, isObjC;
|
||||
bool inheritsSuperclassInitializers;
|
||||
bool hasMissingDesignatedInits;
|
||||
GenericSignatureID genericSigID;
|
||||
TypeID superclassID;
|
||||
uint8_t rawAccessLevel;
|
||||
@@ -3424,6 +3425,7 @@ public:
|
||||
decls_block::ClassLayout::readRecord(scratch, nameID, contextID,
|
||||
isImplicit, isObjC,
|
||||
inheritsSuperclassInitializers,
|
||||
hasMissingDesignatedInits,
|
||||
genericSigID, superclassID,
|
||||
rawAccessLevel, numConformances,
|
||||
numInheritedTypes,
|
||||
@@ -3466,6 +3468,8 @@ public:
|
||||
theClass->setSuperclass(MF.getType(superclassID));
|
||||
ctx.evaluator.cacheOutput(InheritsSuperclassInitializersRequest{theClass},
|
||||
std::move(inheritsSuperclassInitializers));
|
||||
ctx.evaluator.cacheOutput(HasMissingDesignatedInitializersRequest{theClass},
|
||||
std::move(hasMissingDesignatedInits));
|
||||
|
||||
handleInherited(theClass,
|
||||
rawInheritedAndDependencyIDs.slice(0, numInheritedTypes));
|
||||
@@ -5390,7 +5394,8 @@ Decl *handleErrorAndSupplyMissingClassMember(ASTContext &context,
|
||||
Decl *suppliedMissingMember = nullptr;
|
||||
auto handleMissingClassMember = [&](const DeclDeserializationError &error) {
|
||||
if (error.isDesignatedInitializer())
|
||||
containingClass->setHasMissingDesignatedInitializers();
|
||||
context.evaluator.cacheOutput(
|
||||
HasMissingDesignatedInitializersRequest{containingClass}, true);
|
||||
if (error.getNumberOfVTableEntries() > 0)
|
||||
containingClass->setHasMissingVTableEntries();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user