@@ -3293,10 +3293,10 @@ static void finishNSManagedImplInfo(VarDecl *var,
32933293 if (info.isSimpleStored ()) {
32943294 // @NSManaged properties end up being computed; complain if there is
32953295 // an initializer.
3296- if (var->getParentInitializer ()) {
3296+ if (var->getParentExecutableInitializer ()) {
32973297 auto &Diags = var->getASTContext ().Diags ;
32983298 Diags.diagnose (attr->getLocation (), diag::attr_NSManaged_initial_value)
3299- .highlight (var->getParentInitializer ()->getSourceRange ());
3299+ .highlight (var->getParentExecutableInitializer ()->getSourceRange ());
33003300 }
33013301
33023302 // Otherwise, ok.
@@ -3313,13 +3313,22 @@ static void finishNSManagedImplInfo(VarDecl *var,
33133313 }
33143314}
33153315
3316+ static Expr *getParentExecutableInitializer (VarDecl *var) {
3317+ if (auto *PBD = var->getParentPatternBinding ()) {
3318+ const auto i = PBD->getPatternEntryIndexForVarDecl (var);
3319+ return PBD->getExecutableInit (i);
3320+ }
3321+
3322+ return nullptr ;
3323+ }
3324+
33163325static void finishStorageImplInfo (AbstractStorageDecl *storage,
33173326 StorageImplInfo &info) {
33183327 auto dc = storage->getDeclContext ();
33193328
33203329 if (auto var = dyn_cast<VarDecl>(storage)) {
33213330 if (!info.hasStorage ()) {
3322- if (auto *init = var->getParentInitializer ()) {
3331+ if (auto *init = var->getParentExecutableInitializer ()) {
33233332 auto &Diags = var->getASTContext ().Diags ;
33243333 Diags.diagnose (init->getLoc (), diag::getset_init)
33253334 .highlight (init->getSourceRange ());
0 commit comments