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

Derived Classes

tools/clang/include/clang/AST/DeclTemplate.h
 2746 class VarTemplatePartialSpecializationDecl

Declarations

gen/tools/clang/include/clang/AST/DeclNodes.inc
  475 VARTEMPLATESPECIALIZATION(VarTemplateSpecialization, VarDecl)
tools/clang/include/clang/AST/ASTMutationListener.h
   41   class VarTemplateSpecializationDecl;
tools/clang/include/clang/Sema/Sema.h
  199   class VarTemplateSpecializationDecl;

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);
  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
  305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  306 cast_or_null(Y *Val) {
  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;
tools/clang/include/clang/AST/ASTMutationListener.h
   68                                  const VarTemplateSpecializationDecl *D) {}
tools/clang/include/clang/AST/ASTNodeTraverser.h
  429   void dumpTemplateDeclSpecialization(const SpecializationDecl *D) {
  434       auto *Redecl = dyn_cast<SpecializationDecl>(RedeclWithBadType);
  453     for (const auto *Child : D->specializations())
  502   VisitVarTemplateSpecializationDecl(const VarTemplateSpecializationDecl *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
 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) {
  771             SpecIterator<EntryType, SETraits, DeclType>,
  771             SpecIterator<EntryType, SETraits, DeclType>,
  772             typename llvm::FoldingSetVector<EntryType>::iterator,
  774                 EntryType>::iterator>::iterator_category,
  775             DeclType *, ptrdiff_t, DeclType *, DeclType *> {
  775             DeclType *, ptrdiff_t, DeclType *, DeclType *> {
  775             DeclType *, ptrdiff_t, DeclType *, DeclType *> {
  778         typename llvm::FoldingSetVector<EntryType>::iterator SetIter)
  781     DeclType *operator*() const {
  785     DeclType *operator->() const { return **this; }
  789   static SpecIterator<EntryType>
  790   makeSpecIterator(llvm::FoldingSetVector<EntryType> &Specs, bool isEnd) {
 2555   static VarTemplateSpecializationDecl *
 2560   static VarTemplateSpecializationDecl *CreateDeserialized(ASTContext &C,
 2566   VarTemplateSpecializationDecl *getMostRecentDecl() {
 2568     return cast<VarTemplateSpecializationDecl>(Recent);
 2747     : public VarTemplateSpecializationDecl {
 2898     llvm::FoldingSetVector<VarTemplateSpecializationDecl> Specializations;
 2909   llvm::FoldingSetVector<VarTemplateSpecializationDecl> &
 2959   VarTemplateSpecializationDecl *
 2964   void AddSpecialization(VarTemplateSpecializationDecl *D, void *InsertPos);
 3025   using spec_iterator = SpecIterator<VarTemplateSpecializationDecl>;
tools/clang/include/clang/AST/JSONNodeDumper.h
  347   void writeTemplateDeclSpecialization(const SpecializationDecl *SD,
  355       const auto *Redecl = dyn_cast<SpecializationDecl>(RedeclWithBadType);
  355       const auto *Redecl = dyn_cast<SpecializationDecl>(RedeclWithBadType);
  401     for (const auto *Child : TD->specializations())
tools/clang/include/clang/AST/RecursiveASTVisitor.h
 1690   for (auto *SD : D->specializations()) {
 1693           cast<VarTemplateSpecializationDecl>(RD)->getSpecializationKind()) {
tools/clang/include/clang/ASTMatchers/ASTMatchers.h
  110   const T *getNodeAs(StringRef ID) const {
  111     return MyBoundNodes.getNodeAs<T>(ID);
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)
  507           typename std::enable_if<std::is_base_of<From, T>::value &&
  508                                !std::is_same<From, T>::value>::type * = nullptr)
  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 {
 1335   template <typename T> operator Matcher<T>() const {
 1337                Op, ast_type_traits::ASTNodeKind::getFromNodeKind<T>(),
 1338                getMatchers<T>(std::index_sequence_for<Ps...>()))
 1339         .template unconditionalConvertTo<T>();
 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
 8461   VarTemplateSpecializationDecl *BuildVarTemplateInstantiation(
 8469   VarTemplateSpecializationDecl *CompleteVarTemplateSpecializationDecl(
 8470       VarTemplateSpecializationDecl *VarSpec, VarDecl *PatternDecl,
 8479                              VarTemplateSpecializationDecl *PrevVTSD = nullptr);
tools/clang/include/clang/Sema/Template.h
  549         VarTemplateSpecializationDecl *PrevDecl = nullptr);
tools/clang/include/clang/Serialization/ASTWriter.h
  721       const VarTemplateSpecializationDecl *D) override;
tools/clang/lib/AST/ASTDumper.cpp
   85 void ASTDumper::dumpTemplateDeclSpecialization(const SpecializationDecl *D,
   93     auto *Redecl = dyn_cast<SpecializationDecl>(RedeclWithBadType);
  132   for (const auto *Child : D->specializations())
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,
  229     LLVM_NODISCARD bool GetImportedOrCreateDecl(ToDeclT *&ToD, FromDeclT *FromD,
  234       CallOverloadedCreateFun<ToDeclT> OC;
  256     GetImportedOrCreateSpecialDecl(ToDeclT *&ToD, CreateFunT CreateFun,
  257                                    FromDeclT *FromD, Args &&... args) {
  262       ToD = cast_or_null<ToDeclT>(Importer.GetAlreadyImportedOrNull(FromD));
  502     ExpectedDecl VisitVarTemplateSpecializationDecl(VarTemplateSpecializationDecl *D);
 5411     VarTemplateSpecializationDecl *D) {
 5449   VarTemplateSpecializationDecl *D2 = VarTemplate->findSpecialization(
tools/clang/lib/AST/Decl.cpp
  483                                  const VarTemplateSpecializationDecl *spec,
  507                                       const VarTemplateSpecializationDecl *spec,
  656         !isa<VarTemplateSpecializationDecl>(Var) &&
  801     if (const auto *spec = dyn_cast<VarTemplateSpecializationDecl>(Var)) {
  801     if (const auto *spec = dyn_cast<VarTemplateSpecializationDecl>(Var)) {
 1006     if (const auto *spec = dyn_cast<VarTemplateSpecializationDecl>(VD))
 1006     if (const auto *spec = dyn_cast<VarTemplateSpecializationDecl>(VD))
 1145     if (const auto *VTSD = dyn_cast<VarTemplateSpecializationDecl>(Var))
 1145     if (const auto *VTSD = dyn_cast<VarTemplateSpecializationDecl>(Var))
 2132   if (auto *VTSD = dyn_cast<VarTemplateSpecializationDecl>(this)) {
 2484   if (auto *VDTemplSpec = dyn_cast<VarTemplateSpecializationDecl>(VD)) {
 2535   if (const auto *Spec = dyn_cast<VarTemplateSpecializationDecl>(this))
 2535   if (const auto *Spec = dyn_cast<VarTemplateSpecializationDecl>(this))
 2549   if (const auto *Spec = dyn_cast<VarTemplateSpecializationDecl>(this))
 2549   if (const auto *Spec = dyn_cast<VarTemplateSpecializationDecl>(this))
 2556   if (const auto *Spec = dyn_cast<VarTemplateSpecializationDecl>(this))
 2556   if (const auto *Spec = dyn_cast<VarTemplateSpecializationDecl>(this))
 2624   if (VarTemplateSpecializationDecl *Spec =
 2625           dyn_cast<VarTemplateSpecializationDecl>(this)) {
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);
  249     llvm::FoldingSetVector<EntryType> &Specializations, EntryType *Entry,
  249     llvm::FoldingSetVector<EntryType> &Specializations, EntryType *Entry,
  251   using SETraits = SpecEntryTraits<EntryType>;
  264     EntryType *Existing = Specializations.GetOrInsertNode(Entry);
 1016 llvm::FoldingSetVector<VarTemplateSpecializationDecl> &
 1035 VarTemplateSpecializationDecl *
 1041 void VarTemplateDecl::AddSpecialization(VarTemplateSpecializationDecl *D,
 1109 VarTemplateSpecializationDecl *VarTemplateSpecializationDecl::Create(
 1113   return new (Context, DC) VarTemplateSpecializationDecl(
 1118 VarTemplateSpecializationDecl *
 1121       VarTemplateSpecializationDecl(VarTemplateSpecialization, C);
tools/clang/lib/AST/ExternalASTMerger.cpp
  456   for (auto *Spec : D->specializations()) {
tools/clang/lib/AST/ItaniumMangle.cpp
  623         !isa<VarTemplateSpecializationDecl>(D))
  807   if (const VarTemplateSpecializationDecl *Spec =
  808           dyn_cast<VarTemplateSpecializationDecl>(ND)) {
tools/clang/lib/AST/Linkage.h
  120                        const VarTemplateSpecializationDecl *spec,
tools/clang/lib/AST/MicrosoftMangle.cpp
  470         !isa<VarTemplateSpecializationDecl>(D) &&
  777   if (const VarTemplateSpecializationDecl *Spec =
  778           dyn_cast<VarTemplateSpecializationDecl>(ND)) {
tools/clang/lib/CodeGen/Address.h
  108 template <class U> inline U cast(CodeGen::Address addr) {
tools/clang/lib/CodeGen/CGDebugInfo.cpp
 1431             isa<VarTemplateSpecializationDecl>(V))
 1873   auto *TS = dyn_cast<VarTemplateSpecializationDecl>(VL);
 1961   if (const auto *VTpl = dyn_cast<VarTemplateSpecializationDecl>(VD)) {
 1961   if (const auto *VTpl = dyn_cast<VarTemplateSpecializationDecl>(VD)) {
 3295   if (isa<VarTemplateSpecializationDecl>(VD)) {
 4521   if (isa<VarTemplateSpecializationDecl>(VD))
tools/clang/lib/Index/IndexSymbol.cpp
  157     } else if (isa<VarTemplateSpecializationDecl>(D)) {
tools/clang/lib/Index/USRGeneration.cpp
  332   if (const VarTemplateSpecializationDecl *Spec
  333                               = dyn_cast<VarTemplateSpecializationDecl>(D)) {
tools/clang/lib/Sema/Sema.cpp
  618       for (const auto *Spec : Template->specializations())
tools/clang/lib/Sema/SemaExpr.cpp
16714   VarTemplateSpecializationDecl *VarSpec =
16715       dyn_cast<VarTemplateSpecializationDecl>(Var);
16723       !isa<VarTemplateSpecializationDecl>(Var))
16765                    isa<VarTemplateSpecializationDecl>(Var)) {
tools/clang/lib/Sema/SemaLambda.cpp
  306       else if (auto *VTS = dyn_cast<VarTemplateSpecializationDecl>(Var)) {
  306       else if (auto *VTS = dyn_cast<VarTemplateSpecializationDecl>(Var)) {
tools/clang/lib/Sema/SemaTemplate.cpp
  801       if (isa<VarTemplateSpecializationDecl>(Instantiation)) {
 3137       if (const auto *IV = dyn_cast<VarTemplateSpecializationDecl>(VD)) {
 3137       if (const auto *IV = dyn_cast<VarTemplateSpecializationDecl>(VD)) {
 3914   VarTemplateSpecializationDecl *PrevDecl = nullptr;
 3922   VarTemplateSpecializationDecl *Specialization = nullptr;
 3962     Specialization = VarTemplateSpecializationDecl::Create(
 4052   if (VarTemplateSpecializationDecl *Spec = Template->findSpecialization(
 4160   VarTemplateSpecializationDecl *Decl = BuildVarTemplateInstantiation(
10455     auto *SD = dyn_cast<VarTemplateSpecializationDecl>(RD);
10455     auto *SD = dyn_cast<VarTemplateSpecializationDecl>(RD);
tools/clang/lib/Sema/SemaTemplateInstantiate.cpp
   73     VarTemplateSpecializationDecl *Spec =
   74         dyn_cast<VarTemplateSpecializationDecl>(D);
  571                      isa<VarTemplateSpecializationDecl>(Active->Entity);
 2714       if (isa<VarTemplateSpecializationDecl>(Var))
tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
 3378     VarTemplateSpecializationDecl *D) {
 3408   VarTemplateSpecializationDecl *PrevDecl =
 3428     VarTemplateSpecializationDecl *PrevDecl) {
 3444   VarTemplateSpecializationDecl *Var = VarTemplateSpecializationDecl::Create(
 3444   VarTemplateSpecializationDecl *Var = VarTemplateSpecializationDecl::Create(
 3728   VarTemplateSpecializationDecl *PrevDecl =
 4405 VarTemplateSpecializationDecl *Sema::BuildVarTemplateInstantiation(
 4447   return cast_or_null<VarTemplateSpecializationDecl>(
 4454 VarTemplateSpecializationDecl *Sema::CompleteVarTemplateSpecializationDecl(
 4455     VarTemplateSpecializationDecl *VarSpec, VarDecl *PatternDecl,
 4488     VarTemplateSpecializationDecl *PrevDeclForVarTemplateSpecialization) {
 4497       isa<VarTemplateSpecializationDecl>(NewVar) &&
 4544   } else if (!isa<VarTemplateSpecializationDecl>(NewVar) &&
 4576   if (VarTemplateSpecializationDecl *OldVTSD =
 4577           dyn_cast<VarTemplateSpecializationDecl>(OldVar)) {
 4580       cast<VarTemplateSpecializationDecl>(NewVar)->setSpecializationKind(
 4714   VarTemplateSpecializationDecl *VarSpec =
 4715       dyn_cast<VarTemplateSpecializationDecl>(Var);
 4885         cast<VarTemplateSpecializationDecl>(Var)->setInstantiationOf(
 5526       if (auto *VTSD = dyn_cast<VarTemplateSpecializationDecl>(D)) {
 5526       if (auto *VTSD = dyn_cast<VarTemplateSpecializationDecl>(D)) {
tools/clang/lib/Serialization/ASTReader.cpp
 7646   if (auto *VTSD = dyn_cast<VarTemplateSpecializationDecl>(D))
tools/clang/lib/Serialization/ASTReaderDecl.cpp
  355     VisitVarTemplateSpecializationDeclImpl(VarTemplateSpecializationDecl *D);
  357     void VisitVarTemplateSpecializationDecl(VarTemplateSpecializationDecl *D) {
 1418         !isa<VarTemplateSpecializationDecl>(VD))
 2207     VarTemplateSpecializationDecl *D) {
 2221           VarTemplateSpecializationDecl::SpecializedPartialSpecialization();
 2232         new (C) VarTemplateSpecializationDecl::ExplicitSpecializationInfo;
 3742     D = VarTemplateSpecializationDecl::CreateDeserialized(Context, ID);
 4293       if (auto *VTSD = dyn_cast<VarTemplateSpecializationDecl>(D)) {
 4293       if (auto *VTSD = dyn_cast<VarTemplateSpecializationDecl>(D)) {
tools/clang/lib/Serialization/ASTWriter.cpp
 6590     const VarTemplateDecl *TD, const VarTemplateSpecializationDecl *D) {
tools/clang/lib/Serialization/ASTWriterDecl.cpp
   79     void VisitVarTemplateSpecializationDecl(VarTemplateSpecializationDecl *D);
  188     typename RedeclarableTemplateDecl::SpecEntryTraits<EntryType>::DeclType *
  189     getSpecializationDecl(EntryType &T) {
  190       return RedeclarableTemplateDecl::SpecEntryTraits<EntryType>::getDecl(&T);
  226       for (auto &Entry : Common->Specializations)
  995         !isa<VarTemplateSpecializationDecl>(D)) {
 1537     VarTemplateSpecializationDecl *D) {
tools/clang/tools/extra/clangd/AST.cpp
   46   } else if (auto *Var = llvm::dyn_cast<VarTemplateSpecializationDecl>(&ND))
tools/clang/tools/extra/clangd/FindSymbols.cpp
  250     if (auto *TemplSpec = llvm::dyn_cast<VarTemplateSpecializationDecl>(D)) {
  250     if (auto *TemplSpec = llvm::dyn_cast<VarTemplateSpecializationDecl>(D)) {
tools/clang/unittests/AST/ASTImporterODRStrategiesTest.cpp
  207     Decl, VarTemplateSpecializationDecl>
  211   using DeclTy = VarTemplateSpecializationDecl;
  253     auto *ToD = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
  256     auto *FromD = FirstDeclMatcher<DeclTy>().match(FromTU, getPattern());
tools/clang/unittests/AST/ASTImporterTest.cpp
  819 const internal::VariadicDynCastAllOfMatcher<Decl, VarTemplateSpecializationDecl>
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>