Fold ExtInfo::isThin and ::isBlock into a "Representation" enum.

These bits are orthogonal to each other, so combine them into one, and diagnose attempts to produce a type that's both. Spot-fix a bunch of places this revealed by inspection that we would have crashed in SILGen or IRGen if blocks were be handled.

Swift SVN r16088
This commit is contained in:
Joe Groff
2014-04-09 00:37:26 +00:00
parent e9d2e122ee
commit 8adaab0233
35 changed files with 505 additions and 339 deletions

View File

@@ -40,7 +40,7 @@ const uint16_t VERSION_MAJOR = 0;
/// Serialized module format minor version number.
///
/// When the format changes IN ANY WAY, this number should be incremented.
const uint16_t VERSION_MINOR = 46;
const uint16_t VERSION_MINOR = 49;
using DeclID = Fixnum<31>;
using DeclIDField = BCFixed<31>;
@@ -531,6 +531,7 @@ namespace decls_block {
ParameterConventionField, // callee convention
AbstractCCField, // calling convention
BCFixed<1>, // thin?
BCFixed<1>, // block?
BCFixed<1>, // noreturn?
BCFixed<30>, // number of generic parameters
BCArray<TypeIDField> // parameter types and conventions, alternating