@@ -776,6 +776,10 @@ void writeResultBuilderInformation(llvm::json::OStream &JSON,
776776
777777 for (ProtocolDecl *Decl :
778778 TypeDecl->getLocalProtocols (ConformanceLookupKind::All)) {
779+ // FIXME(noncopyable_generics): Should these be included?
780+ if (Decl->getInvertibleProtocolKind ())
781+ continue ;
782+
779783 for (auto Member : Decl->getMembers ()) {
780784 if (auto *VD = dyn_cast<swift::VarDecl>(Member)) {
781785 if (VD->getName () != VarDecl->getName ())
@@ -840,9 +844,16 @@ void writeSubstitutedOpaqueTypeAliasDetails(
840844 // Ignore requirements whose subject type is that of the owner decl
841845 if (!Requirement.getFirstType ()->isEqual (OpaqueTy.getInterfaceType ()))
842846 continue ;
843- if (Requirement.getKind () == RequirementKind::Conformance)
844- JSON.value (
845- toFullyQualifiedProtocolNameString (*Requirement.getProtocolDecl ()));
847+
848+ if (Requirement.getKind () != RequirementKind::Conformance)
849+ continue ;
850+
851+ // FIXME(noncopyable_generics): Should these be included?
852+ if (Requirement.getProtocolDecl ()->getInvertibleProtocolKind ())
853+ continue ;
854+
855+ JSON.value (
856+ toFullyQualifiedProtocolNameString (*Requirement.getProtocolDecl ()));
846857 }
847858 });
848859
@@ -920,7 +931,11 @@ void writeProperties(llvm::json::OStream &JSON,
920931void writeConformances (llvm::json::OStream &JSON,
921932 const NominalTypeDecl &NomTypeDecl) {
922933 JSON.attributeArray (" conformances" , [&] {
923- for (auto &Protocol : NomTypeDecl.getAllProtocols ()) {
934+ for (auto *Protocol : NomTypeDecl.getAllProtocols ()) {
935+ // FIXME(noncopyable_generics): Should these be included?
936+ if (Protocol->getInvertibleProtocolKind ())
937+ continue ;
938+
924939 JSON.value (toFullyQualifiedProtocolNameString (*Protocol));
925940 }
926941 });
0 commit comments