Skip to content

Commit 394e305

Browse files
committed
Serialization: Fix PackConformance deserialization
1 parent 24b4dd6 commit 394e305

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

lib/Serialization/Deserialization.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -871,8 +871,8 @@ ModuleFile::getConformanceChecked(ProtocolConformanceID conformanceID) {
871871

872872
case SerializedProtocolConformanceKind::Pack: {
873873
auto conformanceIndex = (conformanceID >> SerializedProtocolConformanceKind::Shift) - 1;
874-
assert(conformanceIndex < Conformances.size() && "invalid pack conformance ID");
875-
auto &conformanceOrOffset = Conformances[conformanceIndex];
874+
assert(conformanceIndex < PackConformances.size() && "invalid pack conformance ID");
875+
auto &conformanceOrOffset = PackConformances[conformanceIndex];
876876
if (!conformanceOrOffset.isComplete()) {
877877
BCOffsetRAII restoreOffset(DeclTypeCursor);
878878
if (auto error = diagnoseFatalIfNotSuccess(

lib/Serialization/ModuleFile.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ ModuleFile::ModuleFile(std::shared_ptr<const ModuleFileSharedCore> core)
110110
allocateBuffer(Decls, core->Decls);
111111
allocateBuffer(LocalDeclContexts, core->LocalDeclContexts);
112112
allocateBuffer(Conformances, core->Conformances);
113+
allocateBuffer(PackConformances, core->PackConformances);
113114
allocateBuffer(SILLayouts, core->SILLayouts);
114115
allocateBuffer(Types, core->Types);
115116
allocateBuffer(ClangTypes, core->ClangTypes);

test/SIL/Serialization/pack_expansion_type.swift

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// RUN: %empty-directory(%t)
22
// RUN: %target-swift-frontend -emit-module %s -emit-module-path %t/pack_expansion_type.swiftmodule -DLIB -enable-experimental-feature VariadicGenerics
3-
// RUN: %target-swift-frontend -emit-sil %s -I %t -DAPP -module-name main -enable-experimental-feature VariadicGenerics
3+
// RUN: %target-swift-frontend -emit-ir %s -I %t -DAPP -module-name main -enable-experimental-feature VariadicGenerics
44

55
// Because of -enable-experimental-feature VariadicGenerics
66
// REQUIRES: asserts
@@ -25,10 +25,9 @@ public func transparentCaller2() {
2525
transparentCaller(1, "hi", false)
2626
}
2727

28-
public func calleeWithRequirement<each T: Equatable>(_: repeat each T) {}
29-
30-
@_transparent public func callerWithRequirement(x: Int, y: String) {
31-
calleeWithRequirement(x, y)
28+
@_alwaysEmitIntoClient
29+
public func calleeWithRequirement<each T: Equatable>(_ t: repeat each T) {
30+
repeat ((each t) == (each t))
3231
}
3332

3433
#elseif APP
@@ -37,6 +36,6 @@ import pack_expansion_type
3736

3837
transparentCaller(1, "hi", false)
3938
serializedCaller(1, "hi", false)
40-
callerWithRequirement(x: 1, y: "hi")
39+
calleeWithRequirement(1, "hi")
4140

4241
#endif

0 commit comments

Comments
 (0)