mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Serialization and deserialization support for layout requirements.
This commit is contained in:
@@ -252,6 +252,18 @@ enum GenericRequirementKind : uint8_t {
|
||||
};
|
||||
using GenericRequirementKindField = BCFixed<2>;
|
||||
|
||||
// These IDs must \em not be renumbered or reordered without incrementing
|
||||
// VERSION_MAJOR.
|
||||
enum LayoutRequirementKind : uint8_t {
|
||||
UnknownLayout = 0,
|
||||
TrivialOfExactSize = 1,
|
||||
TrivialOfAtMostSize = 2,
|
||||
Trivial = 3,
|
||||
RefCountedObject = 4,
|
||||
NativeRefCountedObject = 5,
|
||||
};
|
||||
using LayoutRequirementKindField = BCFixed<3>;
|
||||
|
||||
// These IDs must \em not be renumbered or reordered without incrementing
|
||||
// VERSION_MAJOR.
|
||||
enum Associativity : uint8_t {
|
||||
@@ -1102,6 +1114,14 @@ namespace decls_block {
|
||||
TypeIDField // same-type; one for value witness marker)
|
||||
>;
|
||||
|
||||
using LayoutRequirementLayout = BCRecordLayout<
|
||||
LAYOUT_REQUIREMENT,
|
||||
LayoutRequirementKindField, // requirement kind
|
||||
TypeIDField, // type being constrained
|
||||
BCFixed<24>, // size
|
||||
BCFixed<32> // alignment
|
||||
>;
|
||||
|
||||
/// Specifies the private discriminator string for a private declaration. This
|
||||
/// identifies the declaration's original source file in some opaque way.
|
||||
using PrivateDiscriminatorLayout = BCRecordLayout<
|
||||
|
||||
Reference in New Issue
Block a user