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 @@ -1066,7 +1066,7 @@ namespace {
1066
1066
outerParamTypes.push_back (AnyFunctionType::Param (outerParamType,
1067
1067
Identifier (),
1068
1068
paramInfo[i].getParameterFlags ()));
1069
- outerParam->setInterfaceType (outerParamType);
1069
+ outerParam->setInterfaceType (outerParamType-> mapTypeOutOfContext () );
1070
1070
1071
1071
if (fnDecl.getAbstractFunctionDecl ())
1072
1072
argLabels.push_back (innerParam->getArgumentName ());
@@ -8171,11 +8171,12 @@ namespace {
8171
8171
8172
8172
if (auto *projectionVar = param->getPropertyWrapperProjectionVar ()) {
8173
8173
projectionVar->setInterfaceType (
8174
- solution.simplifyType (solution.getType (projectionVar)));
8174
+ solution.simplifyType (solution.getType (projectionVar))-> mapTypeOutOfContext () );
8175
8175
}
8176
8176
8177
8177
auto *wrappedValueVar = param->getPropertyWrapperWrappedValueVar ();
8178
- auto wrappedValueType = solution.simplifyType (solution.getType (wrappedValueVar));
8178
+ auto wrappedValueType =
8179
+ solution.simplifyType (solution.getType (wrappedValueVar))->mapTypeOutOfContext ();
8179
8180
wrappedValueVar->setInterfaceType (wrappedValueType->getWithoutSpecifierType ());
8180
8181
8181
8182
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