[SPI] Serialize SPI attributes on imports

This commit is contained in:
Alexis Laferrière
2020-02-06 12:28:21 -08:00
parent 501f458879
commit 6a5a858408
4 changed files with 68 additions and 12 deletions

View File

@@ -55,7 +55,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 = 541; // movable guaranteed scopes
const uint16_t SWIFTMODULE_VERSION_MINOR = 542; // SPI
/// A standard hash seed used for all string hashes in a serialized module.
///
@@ -797,18 +797,25 @@ namespace input_block {
SEARCH_PATH,
FILE_DEPENDENCY,
DEPENDENCY_DIRECTORY,
MODULE_INTERFACE_PATH
MODULE_INTERFACE_PATH,
IMPORTED_MODULE_SPIS,
};
using ImportedModuleLayout = BCRecordLayout<
IMPORTED_MODULE,
ImportControlField, // import kind
BCFixed<1>, // scoped?
BCFixed<1>, // has spis?
BCBlob // module name, with submodule path pieces separated by \0s.
// If the 'scoped' flag is set, the final path piece is an access
// path within the module.
>;
using ImportedModuleLayoutSPI = BCRecordLayout<
IMPORTED_MODULE_SPIS,
BCBlob // SPI names, separated by \0s
>;
using LinkLibraryLayout = BCRecordLayout<
LINK_LIBRARY,
LibraryKindField, // kind