[Serialization] witness_method should reference existing conformances.

Part of a series of commits to remove redundantly-serialized conformances.

Swift SVN r22196
This commit is contained in:
Jordan Rose
2014-09-23 02:06:21 +00:00
parent eea6c17456
commit 82011c98ef
4 changed files with 75 additions and 26 deletions

View File

@@ -136,6 +136,7 @@ namespace sil_block {
SIL_WITNESS_ASSOC_PROTOCOL,
SIL_WITNESS_ASSOC_ENTRY,
SIL_GENERIC_OUTER_PARAMS,
SIL_INST_WITNESS_METHOD,
// We also share these layouts from the decls block. Their enumerators must
// not overlap with ours.
@@ -346,6 +347,20 @@ namespace sil_block {
SIL_GENERIC_OUTER_PARAMS,
DeclIDField // The decl id of the outer param if any.
>;
using SILInstWitnessMethodLayout = BCRecordLayout<
SIL_INST_WITNESS_METHOD,
TypeIDField, // result type
SILTypeCategoryField,
BCFixed<1>, // volatile?
TypeIDField, // lookup type
SILTypeCategoryField,
DeclIDField, // conformance proto
TypeIDField, // conformance type
ModuleIDField, // conformance module
BCArray<ValueIDField> // SILDeclRef
// may be trailed by an inline protocol conformance
>;
}
} // end namespace serialization