@@ -111,14 +111,6 @@ ModuleDecl::lookupExistentialConformance(Type type, ProtocolDecl *protocol) {
111
111
return ProtocolConformanceRef::forInvalid ();
112
112
}
113
113
114
- if (protocol->isSpecificProtocol (KnownProtocolKind::Copyable)
115
- && !ctx.LangOpts .hasFeature (Feature::NoncopyableGenerics)) {
116
- // Prior to noncopyable generics, all existentials conform to Copyable.
117
- return ProtocolConformanceRef (
118
- ctx.getBuiltinConformance (type, protocol,
119
- BuiltinConformanceKind::Synthesized));
120
- }
121
-
122
114
auto layout = type->getExistentialLayout ();
123
115
124
116
// Due to an IRGen limitation, witness tables cannot be passed from an
@@ -503,12 +495,6 @@ LookupConformanceInModuleRequest::evaluate(
503
495
// archetype's list of conformances, or if the archetype has a superclass
504
496
// constraint and the superclass conforms to the protocol.
505
497
if (auto archetype = type->getAs <ArchetypeType>()) {
506
-
507
- // Without noncopyable generics, all archetypes are Copyable
508
- if (!ctx.LangOpts .hasFeature (Feature::NoncopyableGenerics))
509
- if (protocol->isSpecificProtocol (KnownProtocolKind::Copyable))
510
- return ProtocolConformanceRef (protocol);
511
-
512
498
// The generic signature builder drops conformance requirements that are made
513
499
// redundant by a superclass requirement, so check for a concrete
514
500
// conformance first, since an abstract conformance might not be
0 commit comments