[Serialization] Recover if a typealias's underlying type is broken (#12979)

We could handle a typealias itself disappearing, but not if the
typealias was okay but the underlying type wasn't. This came up in
real Swift 3/4 mix-and-match code.

rdar://problem/34940079
This commit is contained in:
Jordan Rose
2017-11-16 19:31:13 -08:00
committed by GitHub
parent dbce0409ce
commit ac6fd7214e
4 changed files with 42 additions and 6 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 = 386; // Last change: @callee_guaranted closures
const uint16_t VERSION_MINOR = 387; // Last change: dependencies for typealiases
using DeclIDField = BCFixed<31>;
@@ -819,7 +819,8 @@ namespace decls_block {
TypeIDField, // interface type (no longer used)
BCFixed<1>, // implicit flag
GenericEnvironmentIDField, // generic environment
AccessLevelField // access level
AccessLevelField, // access level
BCArray<TypeIDField> // dependency types
// Trailed by generic parameters (if any).
>;