File tree Expand file tree Collapse file tree 2 files changed +10
-3
lines changed Expand file tree Collapse file tree 2 files changed +10
-3
lines changed Original file line number Diff line number Diff line change @@ -1067,7 +1067,7 @@ namespace {
1067
1067
outerParamTypes.push_back (AnyFunctionType::Param (outerParamType,
1068
1068
Identifier (),
1069
1069
paramInfo[i].getParameterFlags ()));
1070
- outerParam->setInterfaceType (outerParamType);
1070
+ outerParam->setInterfaceType (outerParamType-> mapTypeOutOfContext () );
1071
1071
1072
1072
if (fnDecl.getAbstractFunctionDecl ())
1073
1073
argLabels.push_back (innerParam->getArgumentName ());
@@ -8151,11 +8151,12 @@ namespace {
8151
8151
8152
8152
if (auto *projectionVar = param->getPropertyWrapperProjectionVar ()) {
8153
8153
projectionVar->setInterfaceType (
8154
- solution.simplifyType (solution.getType (projectionVar)));
8154
+ solution.simplifyType (solution.getType (projectionVar))-> mapTypeOutOfContext () );
8155
8155
}
8156
8156
8157
8157
auto *wrappedValueVar = param->getPropertyWrapperWrappedValueVar ();
8158
- auto wrappedValueType = solution.simplifyType (solution.getType (wrappedValueVar));
8158
+ auto wrappedValueType =
8159
+ solution.simplifyType (solution.getType (wrappedValueVar))->mapTypeOutOfContext ();
8159
8160
wrappedValueVar->setInterfaceType (wrappedValueType->getWithoutSpecifierType ());
8160
8161
8161
8162
if (param->hasImplicitPropertyWrapper ()) {
Original file line number Diff line number Diff line change @@ -125,3 +125,9 @@ func testResultBuilderWithImplicitWrapper(@ProjectionWrapper value: String) {
125
125
$value
126
126
}
127
127
}
128
+
129
+ func takesWrapperClosure< T> ( _: ProjectionWrapper < [ S < T > ] > , closure: ( ProjectionWrapper < S < T > > ) -> Void ) { }
130
+
131
+ func testGenericPropertyWrapper< U> ( @ProjectionWrapper wrappers: [ S < U > ] ) {
132
+ takesWrapperClosure ( $wrappers) { $wrapper in }
133
+ }
You can’t perform that action at this time.
0 commit comments