reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Declarations

gen/tools/clang/include/clang/AST/DeclNodes.inc
  265 CLASSTEMPLATEPARTIALSPECIALIZATION(ClassTemplatePartialSpecialization, ClassTemplateSpecializationDecl)
tools/clang/include/clang/AST/DeclTemplate.h
   46 class ClassTemplatePartialSpecializationDecl;
tools/clang/include/clang/Sema/Sema.h
   99   class ClassTemplatePartialSpecializationDecl;

References

include/llvm/ADT/FoldingSet.h
  221   static void Profile(const T &X, FoldingSetNodeID &ID) {
  224   static void Profile(T &X, FoldingSetNodeID &ID) {
  232   static inline bool Equals(T &X, const FoldingSetNodeID &ID, unsigned IDHash,
  240   static inline unsigned ComputeHash(T &X, FoldingSetNodeID &TempID);
  250   : public DefaultFoldingSetTrait<T> {};
  369   FoldingSetTrait<T>::Profile(X, TempID);
  375   FoldingSetTrait<T>::Profile(X, TempID);
  410   using iterator = FoldingSetIterator<T>;
  415   using const_iterator = FoldingSetIterator<const T>;
  420   using bucket_iterator = FoldingSetBucketIterator<T>;
  432   bool RemoveNode(T *N) { return FoldingSetBase::RemoveNode(N); }
  437   T *GetOrInsertNode(T *N) {
  437   T *GetOrInsertNode(T *N) {
  444   T *FindNodeOrInsertPos(const FoldingSetNodeID &ID, void *&InsertPos) {
  451   void InsertNode(T *N, void *InsertPos) {
  457   void InsertNode(T *N) {
  473 template <class T> class FoldingSet final : public FoldingSetImpl<T> {
  474   using Super = FoldingSetImpl<T>;
  480     T *TN = static_cast<T *>(N);
  481     FoldingSetTrait<T>::Profile(*TN, ID);
  488     T *TN = static_cast<T *>(N);
  489     return FoldingSetTrait<T>::Equals(*TN, ID, IDHash, TempID);
  495     T *TN = static_cast<T *>(N);
  496     return FoldingSetTrait<T>::ComputeHash(*TN, TempID);
  559   FoldingSet<T> Set;
  581   T *FindNodeOrInsertPos(const FoldingSetNodeID &ID, void *&InsertPos) {
  588   T *GetOrInsertNode(T *N) {
  588   T *GetOrInsertNode(T *N) {
  589     T *Result = Set.GetOrInsertNode(N);
  597   void InsertNode(T *N, void *InsertPos) {
  604   void InsertNode(T *N) {
include/llvm/ADT/STLExtras.h
   75       typename std::add_pointer<typename std::add_const<T>::type>::type;
include/llvm/ADT/iterator.h
   68     : public std::iterator<IteratorCategoryT, T, DifferenceTypeT, PointerT,
  206     : public iterator_facade_base<DerivedT, IteratorCategoryT, T,
  288           pointee_iterator<WrappedIteratorT, T>, WrappedIteratorT,
  290           T> {
  296   T &operator*() const { return **this->I; }
include/llvm/Support/Casting.h
   57   static inline bool doit(const From &Val) {
   58     return To::classof(&Val);
   66   static inline bool doit(const From &) { return true; }
   77     return isa_impl<To, From>::doit(Val);
  104   static inline bool doit(const From *Val) {
  106     return isa_impl<To, From>::doit(*Val);
  106     return isa_impl<To, From>::doit(*Val);
  122     return isa_impl_wrap<To, SimpleFrom,
  132     return isa_impl_cl<To,FromTy>::doit(Val);
  142   return isa_impl_wrap<X, const Y,
  172   using ret_type = To *;       // Pointer arg case, return Ty*
  176   using ret_type = const To *; // Constant pointer arg case, return const Ty*
  198   using ret_type = typename cast_retty<To, SimpleFrom>::ret_type;
  204   using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
  210       To, From, typename simplify_type<From>::SimpleType>::ret_type;
  227   static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
  228     typename cast_retty<To, FromTy>::ret_type Res2
  256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  265   return cast_convert_val<X, Y*,
  265   return cast_convert_val<X, Y*,
  266                           typename simplify_type<Y*>::SimpleType>::doit(Val);
  305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  309   return cast<X>(Val);
  337 LLVM_NODISCARD inline typename cast_retty<X, Y>::ret_type dyn_cast(Y &Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
include/llvm/Support/PointerLikeTypeTraits.h
   56   static inline void *getAsVoidPointer(T *P) { return P; }
   57   static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); }
   59   enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };
tools/clang/include/clang/AST/ASTNodeTraverser.h
  485       const ClassTemplatePartialSpecializationDecl *D) {
tools/clang/include/clang/AST/ASTTypeTraits.h
   65     return ASTNodeKind(KindToKindId<T>::Id);
   65     return ASTNodeKind(KindToKindId<T>::Id);
   65     return ASTNodeKind(KindToKindId<T>::Id);
  251   const T *get() const {
  252     return BaseConverter<T>::get(NodeKind, Storage.buffer);
  394     static const T *get(ASTNodeKind NodeKind, const char Storage[]) {
  395       if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
  399     static const T &getUnchecked(ASTNodeKind NodeKind, const char Storage[]) {
  401       return *cast<T>(static_cast<const BaseT *>(
  469     : public DynCastPtrConverter<T, Decl> {};
tools/clang/include/clang/AST/DeclBase.h
 2491     return To::classofKind(Val.getDeclKind());
 2536   static ::clang::DeclContext *doit(const FromTy *Val) {
 2537     return FromTy::castToDeclContext(Val);
tools/clang/include/clang/AST/DeclTemplate.h
  756     using DeclType = EntryType;
  758     static DeclType *getDecl(EntryType *D) {
  762     static ArrayRef<TemplateArgument> getTemplateArgs(EntryType *D) {
 1648     ClassTemplatePartialSpecializationDecl *PartialSpecialization;
 1783                      ClassTemplatePartialSpecializationDecl *>
 1795                      ClassTemplatePartialSpecializationDecl *>
 1826   void setInstantiationOf(ClassTemplatePartialSpecializationDecl *PartialSpec,
 1918   llvm::PointerIntPair<ClassTemplatePartialSpecializationDecl *, 1, bool>
 1929                                ClassTemplatePartialSpecializationDecl *PrevDecl);
 1941   static ClassTemplatePartialSpecializationDecl *
 1949          ClassTemplatePartialSpecializationDecl *PrevDecl);
 1951   static ClassTemplatePartialSpecializationDecl *
 1954   ClassTemplatePartialSpecializationDecl *getMostRecentDecl() {
 1955     return cast<ClassTemplatePartialSpecializationDecl>(
 2004   ClassTemplatePartialSpecializationDecl *getInstantiatedFromMember() const {
 2005     const auto *First =
 2006         cast<ClassTemplatePartialSpecializationDecl>(getFirstDecl());
 2009   ClassTemplatePartialSpecializationDecl *
 2015                           ClassTemplatePartialSpecializationDecl *PartialSpec) {
 2016     auto *First = cast<ClassTemplatePartialSpecializationDecl>(getFirstDecl());
 2016     auto *First = cast<ClassTemplatePartialSpecializationDecl>(getFirstDecl());
 2037     const auto *First =
 2038         cast<ClassTemplatePartialSpecializationDecl>(getFirstDecl());
 2044     auto *First = cast<ClassTemplatePartialSpecializationDecl>(getFirstDecl());
 2044     auto *First = cast<ClassTemplatePartialSpecializationDecl>(getFirstDecl());
 2080     llvm::FoldingSetVector<ClassTemplatePartialSpecializationDecl>
 2095   llvm::FoldingSetVector<ClassTemplatePartialSpecializationDecl> &
 2182   ClassTemplatePartialSpecializationDecl *
 2187   void AddPartialSpecialization(ClassTemplatePartialSpecializationDecl *D,
 2192           SmallVectorImpl<ClassTemplatePartialSpecializationDecl *> &PS);
 2202   ClassTemplatePartialSpecializationDecl *findPartialSpecialization(QualType T);
 2212   ClassTemplatePartialSpecializationDecl *
 2214                                      ClassTemplatePartialSpecializationDecl *D);
 3090                 isa<ClassTemplatePartialSpecializationDecl>(TD) ||
tools/clang/include/clang/ASTMatchers/ASTMatchers.h
  110   const T *getNodeAs(StringRef ID) const {
  111     return MyBoundNodes.getNodeAs<T>(ID);
  431     Decl, ClassTemplatePartialSpecializationDecl>
tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
  160   const T *getNodeAs(StringRef ID) const {
  165     return It->second.get<T>();
  499   explicit Matcher(MatcherInterface<T> *Implementation)
  520             std::is_same<T, QualType>::value &&
  529     static_assert(std::is_base_of<To, T>::value, "Invalid dynCast call.");
  534   bool matches(const T &Node,
  581     return Other.dynCastTo(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
 1243   operator Matcher<T>() const {
 1245                ast_type_traits::ASTNodeKind::getFromNodeKind<T>())
 1246         .template unconditionalConvertTo<T>();
 1255 class BindableMatcher : public Matcher<T> {
 1257   explicit BindableMatcher(const Matcher<T> &M) : Matcher<T>(M) {}
 1258   explicit BindableMatcher(MatcherInterface<T> *Implementation)
 1265   Matcher<T> bind(StringRef ID) const {
 1370 inline Matcher<T> DynTypedMatcher::unconditionalConvertTo() const {
 1376 BindableMatcher<T> makeAllOfComposite(
 1377     ArrayRef<const Matcher<T> *> InnerMatchers) {
 1388   using PI = llvm::pointee_iterator<const Matcher<T> *const *>;
 1395           ast_type_traits::ASTNodeKind::getFromNodeKind<T>(),
 1397           .template unconditionalConvertTo<T>());
 1408     ArrayRef<const Matcher<InnerT> *> InnerMatchers) {
 1557     : public VariadicFunction<BindableMatcher<SourceT>, Matcher<TargetT>,
 1558                               makeDynCastAllOfComposite<SourceT, TargetT>> {
tools/clang/include/clang/Sema/Sema.h
 6857       ClassTemplatePartialSpecializationDecl *Partial);
 7515   DeduceTemplateArguments(ClassTemplatePartialSpecializationDecl *Partial,
 7644   ClassTemplatePartialSpecializationDecl *
 7646                                   ClassTemplatePartialSpecializationDecl *PS1,
 7647                                   ClassTemplatePartialSpecializationDecl *PS2,
 7650   bool isMoreSpecializedThanPrimary(ClassTemplatePartialSpecializationDecl *T,
 7970                           ClassTemplatePartialSpecializationDecl *PartialSpec,
tools/clang/include/clang/Sema/Template.h
  431                                 ClassTemplatePartialSpecializationDecl *>, 4>
  502       ClassTemplateDecl *, ClassTemplatePartialSpecializationDecl *>>::iterator;
  552     ClassTemplatePartialSpecializationDecl *
  555                            ClassTemplatePartialSpecializationDecl *PartialSpec);
tools/clang/include/clang/Serialization/ASTReader.h
 1887   T *ReadDeclAs(ModuleFile &F, const RecordData &R, unsigned &I) {
 1888     return cast_or_null<T>(GetDecl(ReadDeclID(F, R, I)));
 2541   T *readDeclAs() {
 2542     return Reader->ReadDeclAs<T>(*F, Record, Idx);
tools/clang/lib/AST/ASTContext.cpp
  339                          ClassTemplatePartialSpecializationDecl *>
  344                        PU.get<ClassTemplatePartialSpecializationDecl *>());
 3940   if (isa<ClassTemplatePartialSpecializationDecl>(RD))
tools/clang/lib/AST/ASTImporter.cpp
  217           -> decltype(ToDeclT::Create(std::forward<Args>(args)...)) {
  218         return ToDeclT::Create(std::forward<Args>(args)...);
  229     LLVM_NODISCARD bool GetImportedOrCreateDecl(ToDeclT *&ToD, FromDeclT *FromD,
  247       CallOverloadedCreateFun<NewDeclT> OC;
 5171   ClassTemplatePartialSpecializationDecl *PartialSpec =
 5172             dyn_cast<ClassTemplatePartialSpecializationDecl>(D);
 5239     if (GetImportedOrCreateDecl<ClassTemplatePartialSpecializationDecl>(
 5244             cast_or_null<ClassTemplatePartialSpecializationDecl>(PrevDecl)))
 5252           cast<ClassTemplatePartialSpecializationDecl>(D2), InsertPos);
tools/clang/lib/AST/Comment.cpp
  280     const ClassTemplatePartialSpecializationDecl *CTPSD =
  281         cast<ClassTemplatePartialSpecializationDecl>(CommentDecl);
tools/clang/lib/AST/DeclBase.cpp
 1093   if (isa<ClassTemplatePartialSpecializationDecl>(this))
tools/clang/lib/AST/DeclCXX.cpp
 1740     if (auto *CTPSD =
 1741             From.dyn_cast<ClassTemplatePartialSpecializationDecl *>()) {
 1742       while (auto *NewCTPSD = CTPSD->getInstantiatedFromMember()) {
tools/clang/lib/AST/DeclPrinter.cpp
   88                                      ClassTemplatePartialSpecializationDecl *D);
  960     if (auto S = dyn_cast<ClassTemplatePartialSpecializationDecl>(D))
 1197                                     ClassTemplatePartialSpecializationDecl *D) {
tools/clang/lib/AST/DeclTemplate.cpp
  235 typename RedeclarableTemplateDecl::SpecEntryTraits<EntryType>::DeclType *
  237     llvm::FoldingSetVector<EntryType> &Specs, ArrayRef<TemplateArgument> Args,
  239   using SETraits = SpecEntryTraits<EntryType>;
  242   EntryType::Profile(ID, Args, getASTContext());
  243   EntryType *Entry = Specs.FindNodeOrInsertPos(ID, InsertPos);
  405 llvm::FoldingSetVector<ClassTemplatePartialSpecializationDecl> &
  429 ClassTemplatePartialSpecializationDecl *
  436                                       ClassTemplatePartialSpecializationDecl *D,
  441     ClassTemplatePartialSpecializationDecl *Existing
  452           SmallVectorImpl<ClassTemplatePartialSpecializationDecl *> &PS) {
  453   llvm::FoldingSetVector<ClassTemplatePartialSpecializationDecl> &PartialSpecs
  457   for (ClassTemplatePartialSpecializationDecl &P : PartialSpecs)
  461 ClassTemplatePartialSpecializationDecl *
  464   for (ClassTemplatePartialSpecializationDecl &P :
  473 ClassTemplatePartialSpecializationDecl *
  475                                     ClassTemplatePartialSpecializationDecl *D) {
  477   for (ClassTemplatePartialSpecializationDecl &P : getPartialSpecializations()) {
  792   const auto *PS = dyn_cast<ClassTemplatePartialSpecializationDecl>(this);
  792   const auto *PS = dyn_cast<ClassTemplatePartialSpecializationDecl>(this);
  829     using CTPSDecl = ClassTemplatePartialSpecializationDecl;
  830     auto *ctpsd = const_cast<CTPSDecl *>(cast<CTPSDecl>(this));
  838                        ClassTemplatePartialSpecializationDecl *>
  844     return inst_from.get<ClassTemplatePartialSpecializationDecl *>()
  883                                ClassTemplatePartialSpecializationDecl *PrevDecl)
  893 ClassTemplatePartialSpecializationDecl *
  902        ClassTemplatePartialSpecializationDecl *PrevDecl) {
  906   auto *Result = new (Context, DC)
  907       ClassTemplatePartialSpecializationDecl(Context, TK, DC, StartLoc, IdLoc,
  917 ClassTemplatePartialSpecializationDecl *
  920   auto *Result = new (C, ID) ClassTemplatePartialSpecializationDecl(C);
  920   auto *Result = new (C, ID) ClassTemplatePartialSpecializationDecl(C);
tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp
  576     Decl, ClassTemplatePartialSpecializationDecl>
tools/clang/lib/CodeGen/Address.h
  108 template <class U> inline U cast(CodeGen::Address addr) {
tools/clang/lib/Index/IndexDecl.cpp
  200                        ClassTemplatePartialSpecializationDecl *>
  637                        ClassTemplatePartialSpecializationDecl *>
  642             : Template.get<ClassTemplatePartialSpecializationDecl *>();
tools/clang/lib/Index/IndexSymbol.cpp
  133     if (isa<ClassTemplatePartialSpecializationDecl>(D)) {
tools/clang/lib/Index/USRGeneration.cpp
  517     } else if (const ClassTemplatePartialSpecializationDecl *PartialSpec
  518                 = dyn_cast<ClassTemplatePartialSpecializationDecl>(CXXRecord)) {
tools/clang/lib/Sema/SemaCXXScopeSpec.cpp
  117           if (ClassTemplatePartialSpecializationDecl *PartialSpec
tools/clang/lib/Sema/SemaCodeComplete.cpp
  748       isa<ClassTemplatePartialSpecializationDecl>(ND))
tools/clang/lib/Sema/SemaDecl.cpp
  203           if (const ClassTemplatePartialSpecializationDecl *PS =
 4469       !isa<ClassTemplatePartialSpecializationDecl>(Tag)) {
12716           isa<ClassTemplatePartialSpecializationDecl>(Context) ||
tools/clang/lib/Sema/SemaDeclAttr.cpp
 5976   if (isa<ClassTemplatePartialSpecializationDecl>(D) &&
 6027     if (isa<ClassTemplatePartialSpecializationDecl>(RD)) {
tools/clang/lib/Sema/SemaDeclCXX.cpp
  608           else if (isa<ClassTemplatePartialSpecializationDecl>(Record))
 5869     if (auto *Spec = dyn_cast<ClassTemplatePartialSpecializationDecl>(Class)) {
 5869     if (auto *Spec = dyn_cast<ClassTemplatePartialSpecializationDecl>(Class)) {
 8478   if (auto *PSD = dyn_cast<ClassTemplatePartialSpecializationDecl>(D))
 8478   if (auto *PSD = dyn_cast<ClassTemplatePartialSpecializationDecl>(D))
tools/clang/lib/Sema/SemaOpenMP.cpp
16159       !isa<ClassTemplatePartialSpecializationDecl>(CurLexicalContext) &&
tools/clang/lib/Sema/SemaTemplate.cpp
 2643         if (!isa<ClassTemplatePartialSpecializationDecl>(Spec) &&
 2770       if (ClassTemplatePartialSpecializationDecl *Partial
 2771             = dyn_cast<ClassTemplatePartialSpecializationDecl>(Record)) {
 3325         if (!isa<ClassTemplatePartialSpecializationDecl>(Record) &&
 3722 static void checkMoreSpecializedThanPrimary(Sema &S, PartialSpecDecl *Partial) {
 3770                                                PartialSpecDecl *Partial) {
 3800     ClassTemplatePartialSpecializationDecl *Partial) {
 7871     ClassTemplatePartialSpecializationDecl *PrevPartial
 7872       = cast_or_null<ClassTemplatePartialSpecializationDecl>(PrevDecl);
 7873     ClassTemplatePartialSpecializationDecl *Partial
 7874       = ClassTemplatePartialSpecializationDecl::Create(Context, Kind,
10446     else if (auto *TD =
10447                  From.dyn_cast<ClassTemplatePartialSpecializationDecl *>()) {
10473   void checkTemplate(TemplDecl *TD) {
tools/clang/lib/Sema/SemaTemplateDeduction.cpp
 2599     Sema &S, TemplateDeclT *Template, bool IsDeduced,
 2714 static typename std::enable_if<IsPartialSpecialization<T>::value,
 2717     Sema &S, T *Partial, bool IsPartialOrdering,
 2839 Sema::DeduceTemplateArguments(ClassTemplatePartialSpecializationDecl *Partial,
 5050                                      TemplateLikeDecl *P2,
 5110 ClassTemplatePartialSpecializationDecl *
 5112                                   ClassTemplatePartialSpecializationDecl *PS1,
 5113                                   ClassTemplatePartialSpecializationDecl *PS2,
 5129     ClassTemplatePartialSpecializationDecl *Spec, TemplateDeductionInfo &Info) {
tools/clang/lib/Sema/SemaTemplateInstantiate.cpp
  123           !isa<ClassTemplatePartialSpecializationDecl>(Spec))
  306     ClassTemplatePartialSpecializationDecl *PartialSpec,
  577         } else if (auto *D = dyn_cast<ClassTemplatePartialSpecializationDecl>(
  577         } else if (auto *D = dyn_cast<ClassTemplatePartialSpecializationDecl>(
  624           cast<ClassTemplatePartialSpecializationDecl>(Active->Template)
  643           cast<ClassTemplatePartialSpecializationDecl>(Active->Template)
 2459     ClassTemplatePartialSpecializationDecl *Partial;
 2470   SmallVector<ClassTemplatePartialSpecializationDecl *, 4> PartialSpecs;
 2496                      ClassTemplatePartialSpecializationDecl *>
 2498   if (!Specialized.is<ClassTemplatePartialSpecializationDecl *>()) {
 2512     SmallVector<ClassTemplatePartialSpecializationDecl *, 4> PartialSpecs;
 2516       ClassTemplatePartialSpecializationDecl *Partial = PartialSpecs[I];
 2603   if (auto *PartialSpec =
 2604           Specialized.dyn_cast<ClassTemplatePartialSpecializationDecl *>()) {
tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
 1485     SmallVector<ClassTemplatePartialSpecializationDecl *, 4> PartialSpecs;
 1497                                    ClassTemplatePartialSpecializationDecl *D) {
 1512   if (ClassTemplatePartialSpecializationDecl *Result
 3558 ClassTemplatePartialSpecializationDecl *
 3561                           ClassTemplatePartialSpecializationDecl *PartialSpec) {
 3652   ClassTemplatePartialSpecializationDecl *InstPartialSpec =
 3653       ClassTemplatePartialSpecializationDecl::Create(
 5093 isInstantiationOf(ClassTemplatePartialSpecializationDecl *Pattern,
 5094                   ClassTemplatePartialSpecializationDecl *Instance) {
 5096     = cast<ClassTemplatePartialSpecializationDecl>(Pattern->getCanonicalDecl());
 5098     Instance = cast<ClassTemplatePartialSpecializationDecl>(
 5232   if (auto *PartialSpec =
 5233           dyn_cast<ClassTemplatePartialSpecializationDecl>(Other))
 5234     return isInstantiationOf(cast<ClassTemplatePartialSpecializationDecl>(D),
 5404     else if (ClassTemplatePartialSpecializationDecl *PartialSpec
 5405                = dyn_cast<ClassTemplatePartialSpecializationDecl>(Record))
tools/clang/lib/Serialization/ASTReaderDecl.cpp
  144     T *ReadDeclAs() {
  145       return Record.readDeclAs<T>();
  351                                      ClassTemplatePartialSpecializationDecl *D);
 2110           = cast<ClassTemplatePartialSpecializationDecl>(InstD);
 2128       if (auto *Partial = dyn_cast<ClassTemplatePartialSpecializationDecl>(D)) {
 2128       if (auto *Partial = dyn_cast<ClassTemplatePartialSpecializationDecl>(D)) {
 2166                                     ClassTemplatePartialSpecializationDecl *D) {
 2176       ReadDeclAs<ClassTemplatePartialSpecializationDecl>());
 3736     D = ClassTemplatePartialSpecializationDecl::CreateDeserialized(Context, ID);
 4393           auto *PartialSpec =
 4394               ReadDeclAs<ClassTemplatePartialSpecializationDecl>();
 4403                    .is<ClassTemplatePartialSpecializationDecl *>())
tools/clang/lib/Serialization/ASTWriter.cpp
 5339                 From.dyn_cast<ClassTemplatePartialSpecializationDecl*>()) {
tools/clang/lib/Serialization/ASTWriterDecl.cpp
   78                                      ClassTemplatePartialSpecializationDecl *D);
  188     typename RedeclarableTemplateDecl::SpecEntryTraits<EntryType>::DeclType *
  189     getSpecializationDecl(EntryType &T) {
  190       return RedeclarableTemplateDecl::SpecEntryTraits<EntryType>::getDecl(&T);
  228       for (auto &Entry : getPartialSpecializations(Common))
 1483                      ClassTemplatePartialSpecializationDecl *> InstFrom
 1488     Record.AddDeclRef(InstFrom.get<ClassTemplatePartialSpecializationDecl *>());
 1513                                     ClassTemplatePartialSpecializationDecl *D) {
tools/clang/lib/Tooling/Refactoring/Rename/USRFindingAction.cpp
  100       const ClassTemplatePartialSpecializationDecl *PartialSpec) {
  122     for (const auto *PartialSpec : PartialSpecs) {
  178   std::vector<const ClassTemplatePartialSpecializationDecl *> PartialSpecs;
tools/clang/tools/extra/clang-include-fixer/find-all-symbols/FindAllSymbols.cpp
   40         llvm::isa<ClassTemplatePartialSpecializationDecl>(Node);
tools/clang/tools/extra/clang-tidy/misc/DefinitionsInHeadersCheck.cpp
  118           if (isa<ClassTemplatePartialSpecializationDecl>(RD))
tools/clang/tools/extra/clangd/AST.cpp
   39                  llvm::dyn_cast<ClassTemplatePartialSpecializationDecl>(&ND)) {
tools/clang/tools/libclang/CIndex.cpp
  738                                    ClassTemplatePartialSpecializationDecl *D) {
tools/clang/tools/libclang/CIndexCXX.cpp
   63           = dyn_cast_or_null<ClassTemplatePartialSpecializationDecl>(
   92     if (const ClassTemplatePartialSpecializationDecl *PartialSpec
   93           = dyn_cast<ClassTemplatePartialSpecializationDecl>(CXXRecord))
   98                          ClassTemplatePartialSpecializationDecl *> Result
  103         Template = Result.get<ClassTemplatePartialSpecializationDecl *>();
tools/clang/tools/libclang/CursorVisitor.h
  209                                      ClassTemplatePartialSpecializationDecl *D);
tools/clang/unittests/AST/ASTImporterFixtures.h
  174   template <class DeclT> DeclT *Import(DeclT *From, Language Lang) {
  174   template <class DeclT> DeclT *Import(DeclT *From, Language Lang) {
  175     return cast_or_null<DeclT>(Import(cast<Decl>(From), Lang));
tools/clang/unittests/AST/ASTImporterTest.cpp
 3483   auto *FromSpec =
 3486   auto *ToSpec =
 3490   auto *ImportedSpec = Import(FromSpec, Lang_CXX11);
tools/clang/unittests/AST/DeclMatcher.h
   22   NodeType *Node = nullptr;
   26       Node = const_cast<NodeType *>(Result.Nodes.getNodeAs<NodeType>(""));
   32   NodeType *match(const Decl *D, const MatcherType &AMatcher) {
   47   using UnaryPredicate = std::function<bool(const NodeType *)>;
   51     if (auto N = Result.Nodes.getNodeAs<NodeType>("")) {
usr/include/c++/7.4.0/bits/stl_iterator_base_types.h
  123       typedef _Tp        value_type;
usr/include/c++/7.4.0/type_traits
  215     : public __is_void_helper<typename remove_cv<_Tp>::type>::type
  581     : public __or_<is_lvalue_reference<_Tp>,
  582                    is_rvalue_reference<_Tp>>::type
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  602                           is_void<_Tp>>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
 1554     { typedef _Tp     type; };
 1558     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1580     { typedef _Tp const     type; };
 1629     { typedef _Tp   type; };
 1633     { typedef _Tp   type; };
 1983     { typedef _Up     type; };
 1999     { typedef typename remove_reference<_Tp>::type*     type; };
 2003     : public __add_pointer_helper<_Tp>
utils/unittest/googletest/include/gtest/gtest-printers.h
  407                     T* p, ::std::ostream* os) {
  416     if (IsTrue(ImplicitlyConvertible<T*, const void*>::value)) {