Skip to content

Commit 66651de

Browse files
authored
Merge pull request #72130 from DougGregor/no-inverse-mangle-reabstraction
Don't mangle inverse protocols within reabstraction thunks
2 parents 7a38c03 + cab88d1 commit 66651de

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
@@ -450,6 +450,9 @@ std::string ASTMangler::mangleReabstractionThunkHelper(
450450
assert(ThunkType->getPatternSubstitutions().empty() && "not implemented");
451451
GenericSignature GenSig = ThunkType->getInvocationGenericSignature();
452452

453+
// Reabstraction thunks never reference inverse conformances.
454+
llvm::SaveAndRestore X(AllowInverses, false);
455+
453456
beginMangling();
454457
appendType(FromType, GenSig);
455458
appendType(ToType, GenSig);

lib/IRGen/IRGenMangler.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -496,8 +496,9 @@ IRGenMangler::appendExtendedExistentialTypeShape(CanGenericSignature genSig,
496496
CanType shapeType) {
497497
// Append the generalization signature.
498498
if (genSig) {
499-
// Generalization signature never reference inverses.
499+
// Generalization signature never references inverses.
500500
llvm::SaveAndRestore X(AllowInverses, false);
501+
501502
appendGenericSignature(genSig);
502503
}
503504

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)