Skip to content

Commit 90df4f7

Browse files
DougGregorlorentey
authored andcommitted
Don't mangle inverse protocols within reabstraction thunks
(cherry picked from commit cab88d1)
1 parent 791b9b7 commit 90df4f7

File tree

5 files changed

+5
-7
lines changed

5 files changed

+5
-7
lines changed

lib/AST/ASTMangler.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -453,6 +453,9 @@ std::string ASTMangler::mangleReabstractionThunkHelper(
453453
assert(ThunkType->getPatternSubstitutions().empty() && "not implemented");
454454
GenericSignature GenSig = ThunkType->getInvocationGenericSignature();
455455

456+
// Reabstraction thunks never reference inverse conformances.
457+
llvm::SaveAndRestore X(AllowInverses, false);
458+
456459
beginMangling();
457460
appendType(FromType, GenSig);
458461
appendType(ToType, GenSig);

lib/IRGen/IRGenMangler.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -499,8 +499,9 @@ IRGenMangler::appendExtendedExistentialTypeShape(CanGenericSignature genSig,
499499
CanType shapeType) {
500500
// Append the generalization signature.
501501
if (genSig) {
502-
// Generalization signature never reference inverses.
502+
// Generalization signature never references inverses.
503503
llvm::SaveAndRestore X(AllowInverses, false);
504+
504505
appendGenericSignature(genSig);
505506
}
506507

test/SILGen/existential_member_accesses_self_assoctype.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
// RUN: %target-swift-frontend -emit-silgen %s | %FileCheck %s
22

3-
// XFAIL: noncopyable_generics
4-
53
protocol P {
64
associatedtype A
75

test/SILGen/tuple_attribute_reabstraction.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
// RUN: %target-swift-emit-silgen %s | %FileCheck %s
22

3-
// XFAIL: noncopyable_generics
4-
53
public struct G<T> {
64
var t: T
75

test/SILGen/variadic-generic-reabstract-tuple-result.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
// RUN: %target-swift-emit-silgen -disable-availability-checking %s | %FileCheck %s
22

3-
// XFAIL: noncopyable_generics
4-
53
// rdar://110391963
64

75
struct Use<each T> {}

0 commit comments

Comments
 (0)