diff --git a/include/swift/Serialization/ModuleFormat.h b/include/swift/Serialization/ModuleFormat.h index 58eea077167..bace12dfc26 100644 --- a/include/swift/Serialization/ModuleFormat.h +++ b/include/swift/Serialization/ModuleFormat.h @@ -52,7 +52,7 @@ const uint16_t SWIFTMODULE_VERSION_MAJOR = 0; /// describe what change you made. The content of this comment isn't important; /// it just ensures a conflict if two people change the module format. /// Don't worry about adhering to the 80-column limit for this line. -const uint16_t SWIFTMODULE_VERSION_MINOR = 465; // Last change: Remove owning addressors +const uint16_t SWIFTMODULE_VERSION_MINOR = 466; // Last change: add isAutoClosure flag to param using DeclIDField = BCFixed<31>; @@ -1024,6 +1024,7 @@ namespace decls_block { VarDeclSpecifierField, // specifier TypeIDField, // interface type BCFixed<1>, // isVariadic? + BCFixed<1>, // isAutoClosure? DefaultArgumentField, // default argument kind BCBlob // default argument text >; diff --git a/lib/Serialization/Deserialization.cpp b/lib/Serialization/Deserialization.cpp index cbe325c8742..9f220db4e0e 100644 --- a/lib/Serialization/Deserialization.cpp +++ b/lib/Serialization/Deserialization.cpp @@ -3029,12 +3029,13 @@ ModuleFile::getDeclCheckedImpl(DeclID DID) { unsigned rawSpecifier; TypeID interfaceTypeID; bool isVariadic; + bool isAutoClosure; uint8_t rawDefaultArg; decls_block::ParamLayout::readRecord(scratch, argNameID, paramNameID, contextID, rawSpecifier, interfaceTypeID, isVariadic, - rawDefaultArg); + isAutoClosure, rawDefaultArg); auto DC = getDeclContext(contextID); if (declOrOffset.isComplete()) @@ -3065,6 +3066,7 @@ ModuleFile::getDeclCheckedImpl(DeclID DID) { param->setInterfaceType(paramTy); param->setVariadic(isVariadic); + param->setAutoClosure(isAutoClosure); // Decode the default argument kind. // FIXME: Default argument expression, if available. diff --git a/lib/Serialization/Serialization.cpp b/lib/Serialization/Serialization.cpp index 6e88131c473..c1d4ee4dd4e 100644 --- a/lib/Serialization/Serialization.cpp +++ b/lib/Serialization/Serialization.cpp @@ -3228,6 +3228,7 @@ void Serializer::writeDecl(const Decl *D) { getRawStableVarDeclSpecifier(param->getSpecifier()), addTypeRef(interfaceType), param->isVariadic(), + param->isAutoClosure(), getRawStableDefaultArgumentKind(param->getDefaultArgumentKind()), defaultArgumentText);