@@ -341,7 +341,7 @@ struct TemplateInstantiationArgumentCollecter
341341 // If this function was instantiated from a specialized member that is
342342 // a function template, we're done.
343343 assert (FD->getPrimaryTemplate () && " No function template?" );
344- if (FD->getPrimaryTemplate ()->isMemberSpecialization ())
344+ if (FD->getPrimaryTemplate ()->hasMemberSpecialization ())
345345 return Done ();
346346
347347 // If this function is a generic lambda specialization, we are done.
@@ -440,11 +440,11 @@ struct TemplateInstantiationArgumentCollecter
440440 Specialized = CTSD->getSpecializedTemplateOrPartial ();
441441 if (auto *CTPSD =
442442 Specialized.dyn_cast <ClassTemplatePartialSpecializationDecl *>()) {
443- if (CTPSD->isMemberSpecialization ())
443+ if (CTPSD->hasMemberSpecialization ())
444444 return Done ();
445445 } else {
446446 auto *CTD = Specialized.get <ClassTemplateDecl *>();
447- if (CTD->isMemberSpecialization ())
447+ if (CTD->hasMemberSpecialization ())
448448 return Done ();
449449 }
450450 return UseNextDecl (CTSD);
@@ -476,11 +476,11 @@ struct TemplateInstantiationArgumentCollecter
476476 Specialized = VTSD->getSpecializedTemplateOrPartial ();
477477 if (auto *VTPSD =
478478 Specialized.dyn_cast <VarTemplatePartialSpecializationDecl *>()) {
479- if (VTPSD->isMemberSpecialization ())
479+ if (VTPSD->hasMemberSpecialization ())
480480 return Done ();
481481 } else {
482482 auto *VTD = Specialized.get <VarTemplateDecl *>();
483- if (VTD->isMemberSpecialization ())
483+ if (VTD->hasMemberSpecialization ())
484484 return Done ();
485485 }
486486 return UseNextDecl (VTSD);
@@ -4115,10 +4115,7 @@ static ActionResult<CXXRecordDecl *> getPatternForClassTemplateSpecialization(
41154115 CXXRecordDecl *Pattern = nullptr ;
41164116 Specialized = ClassTemplateSpec->getSpecializedTemplateOrPartial ();
41174117 if (auto *CTD = Specialized.dyn_cast <ClassTemplateDecl *>()) {
4118- while (true ) {
4119- CTD = CTD->getMostRecentDecl ();
4120- if (CTD->isMemberSpecialization ())
4121- break ;
4118+ while (!CTD->hasMemberSpecialization ()) {
41224119 if (auto *NewCTD = CTD->getInstantiatedFromMemberTemplate ())
41234120 CTD = NewCTD;
41244121 else
@@ -4128,10 +4125,7 @@ static ActionResult<CXXRecordDecl *> getPatternForClassTemplateSpecialization(
41284125 } else if (auto *CTPSD =
41294126 Specialized
41304127 .dyn_cast <ClassTemplatePartialSpecializationDecl *>()) {
4131- while (true ) {
4132- CTPSD = CTPSD->getMostRecentDecl ();
4133- if (CTPSD->isMemberSpecialization ())
4134- break ;
4128+ while (!CTPSD->hasMemberSpecialization ()) {
41354129 if (auto *NewCTPSD = CTPSD->getInstantiatedFromMemberTemplate ())
41364130 CTPSD = NewCTPSD;
41374131 else
0 commit comments