Skip to content

Commit 2de232c

Browse files
committed
Serialization: Remove unused mapConformanceOutOfContext() / mapConformanceRefIntoContext() path
1 parent 24f32b3 commit 2de232c

File tree

4 files changed

+14
-43
lines changed

4 files changed

+14
-43
lines changed

lib/Serialization/Deserialization.cpp

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -825,17 +825,15 @@ ProtocolConformanceDeserializer::read(
825825
}
826826

827827
ProtocolConformanceRef
828-
ModuleFile::getConformance(ProtocolConformanceID id,
829-
GenericEnvironment *genericEnv) {
830-
auto conformance = getConformanceChecked(id, genericEnv);
828+
ModuleFile::getConformance(ProtocolConformanceID id) {
829+
auto conformance = getConformanceChecked(id);
831830
if (!conformance)
832831
fatal(conformance.takeError());
833832
return conformance.get();
834833
}
835834

836835
Expected<ProtocolConformanceRef>
837-
ModuleFile::getConformanceChecked(ProtocolConformanceID conformanceID,
838-
GenericEnvironment *genericEnv) {
836+
ModuleFile::getConformanceChecked(ProtocolConformanceID conformanceID) {
839837
using namespace decls_block;
840838

841839
if (conformanceID == 0) return ProtocolConformanceRef::forInvalid();
@@ -868,14 +866,7 @@ ModuleFile::getConformanceChecked(ProtocolConformanceID conformanceID,
868866
conformanceOrOffset = result.get();
869867
}
870868
auto conformance = conformanceOrOffset.get();
871-
if (!genericEnv || !conformance->getType()->hasTypeParameter())
872-
return ProtocolConformanceRef(conformance);
873-
874-
// If we have a generic environment, map the conformance into context.
875-
auto mappedConformance =
876-
genericEnv->mapConformanceRefIntoContext(conformance->getType(),
877-
ProtocolConformanceRef(conformance));
878-
return mappedConformance.second;
869+
return ProtocolConformanceRef(conformance);
879870
}
880871

881872
case SerializedProtocolConformanceKind::Pack: {

lib/Serialization/ModuleFile.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -989,13 +989,11 @@ class ModuleFile
989989

990990
/// Returns the protocol conformance for the given ID.
991991
ProtocolConformanceRef
992-
getConformance(serialization::ProtocolConformanceID id,
993-
GenericEnvironment *genericEnv = nullptr);
992+
getConformance(serialization::ProtocolConformanceID id);
994993

995994
/// Returns the protocol conformance for the given ID.
996995
llvm::Expected<ProtocolConformanceRef>
997-
getConformanceChecked(serialization::ProtocolConformanceID id,
998-
GenericEnvironment *genericEnv = nullptr);
996+
getConformanceChecked(serialization::ProtocolConformanceID id);
999997

1000998
/// Read a SILLayout from the given cursor.
1001999
SILLayout *readSILLayout(llvm::BitstreamCursor &Cursor);

lib/Serialization/Serialization.cpp

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1678,20 +1678,17 @@ void Serializer::writeLocalNormalProtocolConformance(
16781678
}
16791679

16801680
serialization::ProtocolConformanceID
1681-
Serializer::addConformanceRef(ProtocolConformance *conformance,
1682-
GenericEnvironment *genericEnv) {
1683-
return addConformanceRef(ProtocolConformanceRef(conformance), genericEnv);
1681+
Serializer::addConformanceRef(ProtocolConformance *conformance) {
1682+
return addConformanceRef(ProtocolConformanceRef(conformance));
16841683
}
16851684

16861685
serialization::ProtocolConformanceID
1687-
Serializer::addConformanceRef(PackConformance *conformance,
1688-
GenericEnvironment *genericEnv) {
1689-
return addConformanceRef(ProtocolConformanceRef(conformance), genericEnv);
1686+
Serializer::addConformanceRef(PackConformance *conformance) {
1687+
return addConformanceRef(ProtocolConformanceRef(conformance));
16901688
}
16911689

16921690
serialization::ProtocolConformanceID
1693-
Serializer::addConformanceRef(ProtocolConformanceRef ref,
1694-
GenericEnvironment *genericEnv) {
1691+
Serializer::addConformanceRef(ProtocolConformanceRef ref) {
16951692
if (ref.isInvalid()) {
16961693
return 0;
16971694
}
@@ -1705,13 +1702,6 @@ Serializer::addConformanceRef(ProtocolConformanceRef ref,
17051702

17061703
if (ref.isConcrete()) {
17071704
auto conformance = ref.getConcrete();
1708-
1709-
if (genericEnv && conformance->getType()->hasArchetype()) {
1710-
ref = ref.mapConformanceOutOfContext();
1711-
assert(!ref.isInvalid() && !ref.isAbstract());
1712-
conformance = ref.getConcrete();
1713-
}
1714-
17151705
auto rawID = ConformancesToSerialize.addRef(conformance);
17161706
return ((rawID << SerializedProtocolConformanceKind::Shift) |
17171707
SerializedProtocolConformanceKind::Concrete);

lib/Serialization/Serialization.h

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -511,18 +511,10 @@ class Serializer : public SerializerBase {
511511
/// The protocol conformance will be scheduled for serialization
512512
/// if necessary.
513513
///
514-
/// \param genericEnv When provided, the generic environment that describes
515-
/// the archetypes within the substitutions. The replacement types within
516-
/// the substitution will be mapped out of the generic environment before
517-
/// being written.
518-
///
519514
/// \returns The ID for the given conformance in this module.
520-
ProtocolConformanceID addConformanceRef(ProtocolConformance *conformance,
521-
GenericEnvironment *genericEnv = nullptr);
522-
ProtocolConformanceID addConformanceRef(PackConformance *conformance,
523-
GenericEnvironment *genericEnv = nullptr);
524-
ProtocolConformanceID addConformanceRef(ProtocolConformanceRef conformance,
525-
GenericEnvironment *genericEnv = nullptr);
515+
ProtocolConformanceID addConformanceRef(ProtocolConformance *conformance);
516+
ProtocolConformanceID addConformanceRef(PackConformance *conformance);
517+
ProtocolConformanceID addConformanceRef(ProtocolConformanceRef conformance);
526518

527519
SmallVector<ProtocolConformanceID, 4>
528520
addConformanceRefs(ArrayRef<ProtocolConformanceRef> conformances);

0 commit comments

Comments
 (0)