mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
If a protocol inherits from a protocol that can't be loaded, drop it entirely. Similarly, if it has requirements that reference types in other modules that can't be loaded, drop the protocol entirely---at least for now, we don't want to deal with a protocol that exists but has the wrong requirement signature. That "in other modules" isn't perfect, but it avoids cases where two protocols depend on each other. Unfortunately, it means the compiler may still get into exactly the situation above if a protocol depends on another protocol in the same module, and /that/ protocol can't be loaded for some other reason. But it's progress. This comes up when referencing implementation-only-imported protocols from non-public protocols, but is also just general deserialization recovery goodness. rdar://problem/52141347
54 KiB
54 KiB