18 #ifndef LLVM_CLANG_AST_DEPENDENTDIAGNOSTIC_H
19 #define LLVM_CLANG_AST_DEPENDENTDIAGNOSTIC_H
50 DD->AccessData.
IsMember = IsMemberAccess;
51 DD->AccessData.
Access = AS;
64 return AccessData.IsMember;
79 return AccessData.TargetDecl;
84 return AccessData.NamingClass;
99 : Diag(PDiag, Storage) {}
103 const PartialDiagnostic &PDiag);
138 assert(Ptr &&
"attempt to increment past end of diag list");
139 Ptr = Ptr->NextDiagnostic;
150 return Ptr == Other.Ptr;
154 return Ptr != Other.Ptr;
158 assert(N >= 0 &&
"cannot rewind a DeclContext::ddiag_iterator");
176 &&
"cannot iterate dependent diagnostics of non-dependent context");
bool operator==(ddiag_iterator Other) const
ddiag_range ddiags() const
static DiagnosticBuilder Diag(DiagnosticsEngine *Diags, const LangOptions &Features, FullSourceLoc TokLoc, const char *TokBegin, const char *TokRangeBegin, const char *TokRangeEnd, unsigned DiagID)
Produce a diagnostic highlighting some portion of a literal.
AccessSpecifier getAccess() const
NamedDecl * getAccessNamingClass() const
bool isDependentContext() const
Determines whether this context is dependent on a template parameter.
bool isAccessToMember() const
StoredDeclsMap * getLookupPtr() const
Retrieve the internal representation of the lookup structure. This may omit some names if we are lazi...
AccessSpecifier
A C++ access specifier (public, private, protected), plus the special value "none" which means differ...
unsigned getRawEncoding() const
When a SourceLocation itself cannot be used, this returns an (opaque) 32-bit integer encoding for it...
void * getAsOpaquePtr() const
ddiag_iterator & operator++()
SourceLocation getAccessLoc() const
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
static SourceLocation getFromRawEncoding(unsigned Encoding)
Turn a raw encoding of a SourceLocation object into a real SourceLocation.
QualType getAccessBaseObjectType() const
DependentDiagnostic * value_type
std::forward_iterator_tag iterator_category
NamedDecl * getAccessTarget() const
ddiag_iterator operator+(difference_type N) const
ddiag_iterator & operator+=(difference_type N)
ddiag_iterator(DependentDiagnostic *Ptr)
Encodes a location in the source. The SourceManager can decode this to get at the full include stack...
reference operator*() const
DependentDiagnostic * reference
static QualType getFromOpaquePtr(const void *Ptr)
ddiag_iterator operator++(int)
const PartialDiagnostic & getDiagnostic() const
llvm::iterator_range< DeclContext::ddiag_iterator > ddiag_range
CXXRecordDecl * NamingClass
bool operator!=(ddiag_iterator Other) const
A dependently-generated diagnostic.
static DependentDiagnostic * Create(ASTContext &Context, DeclContext *Parent, AccessNonce _, SourceLocation Loc, bool IsMemberAccess, AccessSpecifier AS, NamedDecl *TargetDecl, CXXRecordDecl *NamingClass, QualType BaseObjectType, const PartialDiagnostic &PDiag)
An iterator over the dependent diagnostics in a dependent context.
Implements a partial diagnostic that can be emitted anwyhere in a DiagnosticBuilder stream...
Defines the clang::SourceLocation class and associated facilities.
Represents a C++ struct/union/class.
DeclContext * getPrimaryContext()
DependentDiagnostic * pointer