Skip to content
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions lib/AST/TypeSubstitution.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -251,6 +251,15 @@ operator()(CanType dependentType, Type conformingReplacementType,
PackConformance::get(conformingPack, conformedProtocol, conformances));
}

// All conformances for invertible protocols are builtin, so they're already
// abstract in a sense.
if (conformedProtocol->getInvertibleProtocolKind()) {
auto &ctx = conformedProtocol->getASTContext();
return ProtocolConformanceRef(
ctx.getBuiltinConformance(conformingReplacementType, conformedProtocol,
BuiltinConformanceKind::Synthesized));
}

assert((conformingReplacementType->is<ErrorType>() ||
conformingReplacementType->is<SubstitutableType>() ||
conformingReplacementType->is<DependentMemberType>() ||
Expand Down