Home | History | Annotate | Download | only in AST

Lines Matching refs:DeclarationName

1 //===-- DeclarationName.h - Representation of declaration names -*- C++ -*-===//
10 // This file declares the DeclarationName and DeclarationNameTable classes.
36 /// DeclarationName - The name of a declaration. In the common case,
42 class DeclarationName {
130 DeclarationName(CXXSpecialName *Name)
138 DeclarationName(CXXOperatorIdName *Name)
144 DeclarationName(CXXLiteralOperatorIdName *Name)
151 DeclarationName(uintptr_t Ptr) : Ptr(Ptr) { }
161 /// DeclarationName - Used to create an empty selector.
162 DeclarationName() : Ptr(0) { }
165 DeclarationName(const IdentifierInfo *II)
171 DeclarationName(Selector Sel);
174 static DeclarationName getUsingDirectiveName();
226 static DeclarationName getFromOpaquePtr(void *P) {
227 DeclarationName N;
232 static DeclarationName getFromOpaqueInteger(uintptr_t P) {
233 DeclarationName N;
266 friend bool operator==(DeclarationName LHS, DeclarationName RHS) {
271 friend bool operator!=(DeclarationName LHS, DeclarationName RHS) {
275 static DeclarationName getEmptyMarker() {
276 return DeclarationName(uintptr_t(-1));
279 static DeclarationName getTombstoneMarker() {
280 return DeclarationName(uintptr_t(-2));
283 static int compare(DeclarationName LHS, DeclarationName RHS);
290 inline bool operator<(DeclarationName LHS, DeclarationName RHS) {
291 return DeclarationName::compare(LHS, RHS) < 0;
296 inline bool operator>(DeclarationName LHS, DeclarationName RHS) {
297 return DeclarationName::compare(LHS, RHS) > 0;
302 inline bool operator<=(DeclarationName LHS, DeclarationName RHS) {
303 return DeclarationName::compare(LHS, RHS) <= 0;
308 inline bool operator>=(DeclarationName LHS, DeclarationName RHS) {
309 return DeclarationName::compare(LHS, RHS) >= 0;
312 /// DeclarationNameTable - Used to store and retrieve DeclarationName
333 DeclarationName getIdentifier(const IdentifierInfo *ID) {
334 return DeclarationName(ID);
339 DeclarationName getCXXConstructorName(CanQualType Ty) {
340 return getCXXSpecialName(DeclarationName::CXXConstructorName,
346 DeclarationName getCXXDestructorName(CanQualType Ty) {
347 return getCXXSpecialName(DeclarationName::CXXDestructorName,
353 DeclarationName getCXXConversionFunctionName(CanQualType Ty) {
354 return getCXXSpecialName(DeclarationName::CXXConversionFunctionName, Ty);
360 DeclarationName getCXXSpecialName(DeclarationName::NameKind Kind,
365 DeclarationName getCXXOperatorName(OverloadedOperatorKind Op);
369 DeclarationName getCXXLiteralOperatorName(IdentifierInfo *II);
373 /// for a declaration name. Needs a DeclarationName in order
404 DeclarationNameLoc(DeclarationName Name);
411 /// a DeclarationName and the correspnding source/type location info.
415 DeclarationName Name;
425 DeclarationNameInfo(DeclarationName Name, SourceLocation NameLoc)
428 DeclarationNameInfo(DeclarationName Name, SourceLocation NameLoc,
433 DeclarationName getName() const { return Name; }
435 void setName(DeclarationName N) { Name = N; }
449 assert(Name.getNameKind() == DeclarationName
450 Name.getNameKind() == DeclarationName::CXXDestructorName ||
451 Name.getNameKind() == DeclarationName::CXXConversionFunctionName);
457 assert(Name.getNameKind() == DeclarationName::CXXConstructorName ||
458 Name.getNameKind() == DeclarationName::CXXDestructorName ||
459 Name.getNameKind() == DeclarationName::CXXConversionFunctionName);
466 assert(Name.getNameKind() == DeclarationName::CXXOperatorName);
475 assert(Name.getNameKind() == DeclarationName::CXXOperatorName);
484 assert(Name.getNameKind() == DeclarationName::CXXLiteralOperatorName);
492 assert(Name.getNameKind() == DeclarationName::CXXLiteralOperatorName);
528 /// Insertion operator for diagnostics. This allows sending DeclarationName's
531 DeclarationName N) {
538 /// DeclarationName's into a partial diagnostic with <<.
540 DeclarationName N) {
558 struct DenseMapInfo<clang::DeclarationName> {
559 static inline clang::DeclarationName getEmptyKey() {
560 return clang::DeclarationName::getEmptyMarker();
563 static inline clang::DeclarationName getTombstoneKey() {
564 return clang::DeclarationName::getTombstoneMarker();
567 static unsigned getHashValue(clang::DeclarationName);
570 isEqual(clang::DeclarationName LHS, clang::DeclarationName RHS) {
576 struct isPodLike<clang::DeclarationName> { static const bool value = true; };