@@ -2690,7 +2690,7 @@ static VarDecl *synthesizePropertyWrapperProjectionVar(
26902690
26912691static void typeCheckSynthesizedWrapperInitializer (VarDecl *wrappedVar,
26922692 Expr *&initializer,
2693- bool contextualize = false ) {
2693+ bool contextualize) {
26942694 auto *dc = wrappedVar->getInnermostDeclContext ();
26952695 auto &ctx = wrappedVar->getASTContext ();
26962696 auto *initContext = new (ctx) PropertyWrapperInitializer (
@@ -2985,7 +2985,8 @@ PropertyWrapperInitializerInfoRequest::evaluate(Evaluator &evaluator,
29852985 && !wrapperInfo.defaultInit ) {
29862986 auto ty = parentPBD->getPattern (patternNumber)->getType ();
29872987 if (auto defaultInit = TypeChecker::buildDefaultInitializer (ty)) {
2988- typeCheckSynthesizedWrapperInitializer (var, defaultInit);
2988+ typeCheckSynthesizedWrapperInitializer (var, defaultInit,
2989+ /* contextualize=*/ false );
29892990 parentPBD->setInit (0 , defaultInit);
29902991 parentPBD->setInitializerChecked (0 );
29912992 }
@@ -3003,6 +3004,8 @@ PropertyWrapperInitializerInfoRequest::evaluate(Evaluator &evaluator,
30033004 // FIXME: Record this expression somewhere so that DI can perform the
30043005 // initialization itself.
30053006 Expr *defaultInit = nullptr ;
3007+ // Only contextualize local wrapped property, the rest of wrapped
3008+ // property will be contextualized in visitPatternBindingDecl.
30063009 typeCheckSynthesizedWrapperInitializer (var, defaultInit, dc->isLocalContext ());
30073010 pbd->setInit (0 , defaultInit);
30083011 pbd->setInitializerChecked (0 );
@@ -3073,7 +3076,8 @@ PropertyWrapperInitializerInfoRequest::evaluate(Evaluator &evaluator,
30733076 !var->getName ().hasDollarPrefix ()) {
30743077 wrappedValueInit = PropertyWrapperValuePlaceholderExpr::create (
30753078 ctx, var->getSourceRange (), var->getType (), /* wrappedValue=*/ nullptr );
3076- typeCheckSynthesizedWrapperInitializer (var, wrappedValueInit, true );
3079+ typeCheckSynthesizedWrapperInitializer (var, wrappedValueInit,
3080+ /* contextualize=*/ true );
30773081 }
30783082
30793083 return PropertyWrapperInitializerInfo (wrappedValueInit, projectedValueInit);
0 commit comments