clang  3.9.0
Public Types | Public Member Functions | Static Public Member Functions | List of all members
clang::MultiKeywordSelector Class Reference

MultiKeywordSelector - One of these variable length records is kept for each selector containing more than one keyword. More...

Inheritance diagram for clang::MultiKeywordSelector:
[legend]
Collaboration diagram for clang::MultiKeywordSelector:
[legend]

Public Types

typedef IdentifierInfo *const * keyword_iterator
 
- Public Types inherited from clang::DeclarationNameExtra
enum  ExtraKind {
  CXXConstructor = 0, CXXDestructor, CXXConversionFunction, CXXLiteralOperator,
  CXXUsingDirective, NUM_EXTRA_KINDS
}
 ExtraKind - The kind of "extra" information stored in the DeclarationName. More...
 

Public Member Functions

 MultiKeywordSelector (unsigned nKeys, IdentifierInfo **IIV)
 
std::string getName () const
 
unsigned getNumArgs () const
 
keyword_iterator keyword_begin () const
 
keyword_iterator keyword_end () const
 
IdentifierInfogetIdentifierInfoForSlot (unsigned i) const
 
void Profile (llvm::FoldingSetNodeID &ID)
 

Static Public Member Functions

static void Profile (llvm::FoldingSetNodeID &ID, keyword_iterator ArgTys, unsigned NumArgs)
 

Additional Inherited Members

- Public Attributes inherited from clang::DeclarationNameExtra
unsigned ExtraKindOrNumArgs
 ExtraKindOrNumArgs - Either the kind of C++ special name or operator-id (if the value is one of the CXX* enumerators of ExtraKind), in which case the DeclarationNameExtra is also a CXXSpecialName, (for CXXConstructor, CXXDestructor, or CXXConversionFunction) CXXOperatorIdName, or CXXLiteralOperatorName, it may be also name common to C++ using-directives (CXXUsingDirective), otherwise it is NUM_EXTRA_KINDS+NumArgs, where NumArgs is the number of arguments in the Objective-C selector, in which case the DeclarationNameExtra is also a MultiKeywordSelector. More...
 

Detailed Description

MultiKeywordSelector - One of these variable length records is kept for each selector containing more than one keyword.

We use a folding set to unique aggregate names (keyword selectors in ObjC parlance). Access to this class is provided strictly through Selector.

Definition at line 354 of file IdentifierTable.cpp.

Member Typedef Documentation

Definition at line 376 of file IdentifierTable.cpp.

Constructor & Destructor Documentation

clang::MultiKeywordSelector::MultiKeywordSelector ( unsigned  nKeys,
IdentifierInfo **  IIV 
)
inline

Member Function Documentation

IdentifierInfo* clang::MultiKeywordSelector::getIdentifierInfoForSlot ( unsigned  i) const
inline

Definition at line 383 of file IdentifierTable.cpp.

References getNumArgs(), and keyword_begin().

Referenced by clang::Selector::getIdentifierInfoForSlot().

std::string MultiKeywordSelector::getName ( ) const

Definition at line 425 of file IdentifierTable.cpp.

References E, I, keyword_begin(), and keyword_end().

Referenced by clang::Selector::getAsString().

unsigned clang::MultiKeywordSelector::getNumArgs ( ) const
inline
keyword_iterator clang::MultiKeywordSelector::keyword_begin ( ) const
inline

Definition at line 377 of file IdentifierTable.cpp.

Referenced by getIdentifierInfoForSlot(), getName(), keyword_end(), and Profile().

keyword_iterator clang::MultiKeywordSelector::keyword_end ( ) const
inline

Definition at line 380 of file IdentifierTable.cpp.

References getNumArgs(), and keyword_begin().

Referenced by getName().

static void clang::MultiKeywordSelector::Profile ( llvm::FoldingSetNodeID &  ID,
keyword_iterator  ArgTys,
unsigned  NumArgs 
)
inlinestatic

Definition at line 387 of file IdentifierTable.cpp.

References clang::NumArgs.

Referenced by clang::SelectorTable::getSelector(), and Profile().

void clang::MultiKeywordSelector::Profile ( llvm::FoldingSetNodeID &  ID)
inline

Definition at line 393 of file IdentifierTable.cpp.

References getNumArgs(), keyword_begin(), and Profile().


The documentation for this class was generated from the following file: