Serialization: Don't serialize contextual type of AbstractFunctionDecls and EnumElementDecls

These can contain PolymorphicFunctionTypes, and should no longer be
accessed.
This commit is contained in:
Slava Pestov
2016-11-24 15:42:07 -05:00
parent 7c556712dd
commit e71979ea1a
3 changed files with 19 additions and 40 deletions

View File

@@ -54,7 +54,7 @@ const uint16_t VERSION_MAJOR = 0;
/// in source control, you should also update the comment to briefly
/// 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.
const uint16_t VERSION_MINOR = 285; // Last change: simplified archetype format
const uint16_t VERSION_MINOR = 286; // Last change: function contextual types removed
using DeclID = PointerEmbeddedInt<unsigned, 31>;
using DeclIDField = BCFixed<31>;
@@ -854,7 +854,6 @@ namespace decls_block {
BCFixed<1>, // stub implementation?
BCFixed<1>, // throws?
CtorInitializerKindField, // initializer kind
TypeIDField, // type (signature)
TypeIDField, // type (interface)
DeclIDField, // overridden decl
AccessibilityKindField, // accessibility
@@ -908,7 +907,6 @@ namespace decls_block {
BCFixed<1>, // has dynamic self?
BCFixed<1>, // throws?
BCVBR<5>, // number of parameter patterns
TypeIDField, // type (signature)
TypeIDField, // interface type
DeclIDField, // operator decl
DeclIDField, // overridden function
@@ -966,7 +964,6 @@ namespace decls_block {
IdentifierIDField, // name
DeclContextIDField,// context decl
TypeIDField, // argument type
TypeIDField, // constructor type
TypeIDField, // interface type
BCFixed<1>, // implicit?
EnumElementRawValueKindField, // raw value kind
@@ -1013,7 +1010,6 @@ namespace decls_block {
DeclContextIDField, // context decl
BCFixed<1>, // implicit?
BCFixed<1>, // objc?
TypeIDField, // type (signature)
TypeIDField // interface type
// Trailed by a pattern for self.
>;