12#ifndef ROOT_TClingMemberIter 
   13#define ROOT_TClingMemberIter 
   23#include "clang/AST/DeclBase.h" 
   24#include "clang/AST/DeclCXX.h" 
   26#include "llvm/ADT/SmallVector.h" 
   33class RedeclarableTemplateDecl;
 
   45   llvm::SmallVector<clang::DeclContext *, 2> 
fContexts; 
 
   61   DCIter(clang::DeclContext *DC, cling::Interpreter *interp);
 
   91   const clang::UsingDecl::shadow_iterator &
End()
 const { 
return fUsingIterStack.top().fShadowedEnd; }
 
   95   UsingDeclIter(
const clang::UsingDecl *UD, cling::Interpreter *interp);
 
  163   virtual const clang::Decl *
Get()
 const 
Iteration over collected DeclContexts.
 
llvm::SmallVector< clang::DeclContext *, 2 > fContexts
 
clang::Decl * operator*() const
 
bool AdvanceToFirstValidDecl()
Do not return inline namespaces etc.
 
cling::Interpreter * fInterp
 
bool IterNext()
Increment the iterator, possibly moving to the next context.
 
clang::DeclContext::decl_iterator fDeclIter
 
clang::Decl * operator->() const
 
bool HandleInlineDeclContext()
Return true if fDeclIter has triggered an inline or anonymous namespace / ... to be appended to fCont...
 
std::stack< UsingDeclFrame > fUsingIterStack
Handle nested UsingDecls:
 
const clang::UsingDecl::shadow_iterator & Iter() const
 
const clang::UsingDecl::shadow_iterator & End() const
 
cling::Interpreter * fInterp
 
clang::UsingDecl::shadow_iterator & Iter()
 
clang::Decl * operator->() const
 
clang::Decl * operator*() const
 
Iterate over all DeclT-s (or UsingShadowDecl-s pointing to DeclT-s) of a decl context,...
 
ClingMemberIterInternal::UsingDeclIter fUsingDeclIter
 
TClingMemberIter()=default
 
virtual const clang::Decl * Get() const
 
virtual bool ShouldSkip(const clang::Decl *D) const =0
 
virtual bool ShouldSkip(const clang::UsingShadowDecl *USD) const
 
const clang::Decl * fTemplateSpec
 
const clang::Decl * operator->() const
 
bool Next()
Advance to next non-skipped; return false if no next decl exists.
 
cling::Interpreter * fInterp
 
TClingMemberIter(cling::Interpreter *interp, clang::DeclContext *DC)
 
virtual clang::Decl * AdvanceUnfiltered()
 
const clang::Decl * GetDeclSlow() const
 
cling::Interpreter * GetInterpreter() const
 
virtual bool IsValid() const
 
ClingMemberIterInternal::DCIter fDCIter
 
const clang::Decl * operator*() const
 
virtual const clang::Decl * InstantiateTemplateWithDefaults(const clang::RedeclarableTemplateDecl *TD) const
 
clang::UsingDecl::shadow_iterator fShadowedEnd
 
UsingDeclFrame(const clang::UsingDecl *UD)
 
clang::UsingDecl::shadow_iterator fShadowedIter