Skip to content

Commit e4057a4

Browse files
authored
Merge pull request #68633 from slavapestov/fix-rdar115538386
RequirementMachine: Pass SubstFlags::PreservePackExpansionLevel when re-sugaring requirements
2 parents b3a3abe + dc2e0c9 commit e4057a4

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

lib/AST/RequirementMachine/RequirementMachineRequests.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -620,7 +620,8 @@ AbstractGenericSignatureRequest::evaluate(
620620
return Type(type);
621621
},
622622
MakeAbstractConformanceForGenericType(),
623-
SubstFlags::AllowLoweredTypes);
623+
SubstFlags::AllowLoweredTypes |
624+
SubstFlags::PreservePackExpansionLevel);
624625
resugaredRequirements.push_back(resugaredReq);
625626
}
626627

test/Generics/rdar115538386.swift

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// RUN: %target-swift-frontend -typecheck %s -disable-availability-checking
2+
3+
protocol P<A> {
4+
associatedtype A
5+
}
6+
7+
struct S<each T>: P {
8+
typealias A = (repeat each T)
9+
}
10+
11+
func foo<each T>() -> some P<(repeat each T)> {
12+
S<repeat each T>()
13+
}

0 commit comments

Comments
 (0)