@@ -1092,8 +1092,8 @@ namespace {
10921092 FunctionType::ExtInfo closureInfo;
10931093 auto *autoClosureType =
10941094 FunctionType::get (outerParamTypes, fnType->getResult (), closureInfo);
1095- auto *autoClosure = new (context) AutoClosureExpr (fnCall, autoClosureType,
1096- discriminator, cs. DC );
1095+ auto *autoClosure = new (context)
1096+ AutoClosureExpr (fnCall, autoClosureType, discriminator, dc );
10971097 autoClosure->setParameterList (outerParams);
10981098 autoClosure->setThunkKind (AutoClosureExpr::Kind::SingleCurryThunk);
10991099 cs.cacheType (autoClosure);
@@ -1126,9 +1126,8 @@ namespace {
11261126
11271127 auto resultTy = selfFnTy->getResult ();
11281128 auto discriminator = AutoClosureExpr::InvalidDiscriminator;
1129- auto closure =
1130- new (context) AutoClosureExpr (/* set body later*/ nullptr , resultTy,
1131- discriminator, cs.DC );
1129+ auto closure = new (context) AutoClosureExpr (/* set body later*/ nullptr ,
1130+ resultTy, discriminator, dc);
11321131 closure->setParameterList (params);
11331132 closure->setType (selfFnTy);
11341133 closure->setThunkKind (AutoClosureExpr::Kind::SingleCurryThunk);
@@ -1693,8 +1692,7 @@ namespace {
16931692 memberLocator);
16941693
16951694 auto outerClosure =
1696- new (context) AutoClosureExpr (closure, selfFnTy,
1697- discriminator, cs.DC );
1695+ new (context) AutoClosureExpr (closure, selfFnTy, discriminator, dc);
16981696 outerClosure->setThunkKind (AutoClosureExpr::Kind::DoubleCurryThunk);
16991697
17001698 outerClosure->setParameterList (outerParams);
@@ -6056,14 +6054,15 @@ Expr *ExprRewriter::coerceCallArguments(
60566054 bool isDefaultWrappedValue =
60576055 target->propertyWrapperHasInitialWrappedValue ();
60586056 auto *placeholder = injectWrappedValuePlaceholder (
6059- cs.buildAutoClosureExpr (arg, closureType, isDefaultWrappedValue),
6057+ cs.buildAutoClosureExpr (arg, closureType, dc,
6058+ isDefaultWrappedValue),
60606059 /* isAutoClosure=*/ true );
60616060 arg = CallExpr::createImplicit (ctx, placeholder, {}, {});
60626061 arg->setType (closureType->getResult ());
60636062 cs.cacheType (arg);
60646063 }
60656064
6066- convertedArg = cs.buildAutoClosureExpr (arg, closureType);
6065+ convertedArg = cs.buildAutoClosureExpr (arg, closureType, dc );
60676066 } else {
60686067 convertedArg = coerceToType (
60696068 arg, paramType,
@@ -8324,7 +8323,7 @@ static Expr *wrapAsyncLetInitializer(
83248323 auto closureType = FunctionType::get ({ }, initializerType, extInfo);
83258324 ASTContext &ctx = dc->getASTContext ();
83268325 Expr *autoclosureExpr = cs.buildAutoClosureExpr (
8327- initializer, closureType, /* isDefaultWrappedValue=*/ false ,
8326+ initializer, closureType, dc, /* isDefaultWrappedValue=*/ false ,
83288327 /* isAsyncLetWrapper=*/ true );
83298328
83308329 // Call the autoclosure so that the AST types line up. SILGen will ignore the
@@ -8792,7 +8791,8 @@ ExprWalker::rewriteTarget(SolutionApplicationTarget target) {
87928791 // conversion.
87938792 if (FunctionType *autoclosureParamType =
87948793 target.getAsAutoclosureParamType ()) {
8795- resultExpr = cs.buildAutoClosureExpr (resultExpr, autoclosureParamType);
8794+ resultExpr = cs.buildAutoClosureExpr (resultExpr, autoclosureParamType,
8795+ target.getDeclContext ());
87968796 }
87978797
87988798 solution.setExprTypes (resultExpr);
0 commit comments