clang  6.0.0svn
Public Types | Public Member Functions | Static Public Attributes | List of all members
clang::NSAPI Class Reference

#include "clang/AST/NSAPI.h"

Collaboration diagram for clang::NSAPI:
Collaboration graph
[legend]

Public Types

enum  NSClassIdKindKind {
  ClassId_NSObject, ClassId_NSString, ClassId_NSArray, ClassId_NSMutableArray,
  ClassId_NSDictionary, ClassId_NSMutableDictionary, ClassId_NSNumber, ClassId_NSMutableSet,
  ClassId_NSMutableOrderedSet, ClassId_NSValue
}
 
enum  NSStringMethodKind {
  NSStr_stringWithString, NSStr_stringWithUTF8String, NSStr_stringWithCStringEncoding, NSStr_stringWithCString,
  NSStr_initWithString, NSStr_initWithUTF8String
}
 
enum  NSArrayMethodKind {
  NSArr_array, NSArr_arrayWithArray, NSArr_arrayWithObject, NSArr_arrayWithObjects,
  NSArr_arrayWithObjectsCount, NSArr_initWithArray, NSArr_initWithObjects, NSArr_objectAtIndex,
  NSMutableArr_replaceObjectAtIndex, NSMutableArr_addObject, NSMutableArr_insertObjectAtIndex, NSMutableArr_setObjectAtIndexedSubscript
}
 Enumerates the NSArray/NSMutableArray methods used to generate literals and to apply some checks. More...
 
enum  NSDictionaryMethodKind {
  NSDict_dictionary, NSDict_dictionaryWithDictionary, NSDict_dictionaryWithObjectForKey, NSDict_dictionaryWithObjectsForKeys,
  NSDict_dictionaryWithObjectsForKeysCount, NSDict_dictionaryWithObjectsAndKeys, NSDict_initWithDictionary, NSDict_initWithObjectsAndKeys,
  NSDict_initWithObjectsForKeys, NSDict_objectForKey, NSMutableDict_setObjectForKey, NSMutableDict_setObjectForKeyedSubscript,
  NSMutableDict_setValueForKey
}
 Enumerates the NSDictionary/NSMutableDictionary methods used to generate literals and to apply some checks. More...
 
enum  NSSetMethodKind {
  NSMutableSet_addObject, NSOrderedSet_insertObjectAtIndex, NSOrderedSet_setObjectAtIndex, NSOrderedSet_setObjectAtIndexedSubscript,
  NSOrderedSet_replaceObjectAtIndexWithObject
}
 Enumerates the NSMutableSet/NSOrderedSet methods used to apply some checks. More...
 
enum  NSNumberLiteralMethodKind {
  NSNumberWithChar, NSNumberWithUnsignedChar, NSNumberWithShort, NSNumberWithUnsignedShort,
  NSNumberWithInt, NSNumberWithUnsignedInt, NSNumberWithLong, NSNumberWithUnsignedLong,
  NSNumberWithLongLong, NSNumberWithUnsignedLongLong, NSNumberWithFloat, NSNumberWithDouble,
  NSNumberWithBool, NSNumberWithInteger, NSNumberWithUnsignedInteger
}
 Enumerates the NSNumber methods used to generate literals. More...
 

Public Member Functions

 NSAPI (ASTContext &Ctx)
 
ASTContextgetASTContext () const
 
IdentifierInfogetNSClassId (NSClassIdKindKind K) const
 
Selector getNSStringSelector (NSStringMethodKind MK) const
 The Objective-C NSString selectors. More...
 
Optional< NSStringMethodKindgetNSStringMethodKind (Selector Sel) const
 Return NSStringMethodKind if. More...
 
bool isNSUTF8StringEncodingConstant (const Expr *E) const
 Returns true if the expression. More...
 
bool isNSASCIIStringEncodingConstant (const Expr *E) const
 Returns true if the expression. More...
 
Selector getNSArraySelector (NSArrayMethodKind MK) const
 The Objective-C NSArray selectors. More...
 
Optional< NSArrayMethodKindgetNSArrayMethodKind (Selector Sel)
 Return NSArrayMethodKind if Sel is such a selector. More...
 
Selector getNSDictionarySelector (NSDictionaryMethodKind MK) const
 The Objective-C NSDictionary selectors. More...
 
Optional< NSDictionaryMethodKindgetNSDictionaryMethodKind (Selector Sel)
 Return NSDictionaryMethodKind if Sel is such a selector. More...
 
Selector getNSSetSelector (NSSetMethodKind MK) const
 The Objective-C NSSet selectors. More...
 
Optional< NSSetMethodKindgetNSSetMethodKind (Selector Sel)
 Return NSSetMethodKind if Sel is such a selector. More...
 
Selector getObjectForKeyedSubscriptSelector () const
 Returns selector for "objectForKeyedSubscript:". More...
 
Selector getObjectAtIndexedSubscriptSelector () const
 Returns selector for "objectAtIndexedSubscript:". More...
 
Selector getSetObjectForKeyedSubscriptSelector () const
 Returns selector for "setObject:forKeyedSubscript". More...
 
Selector getSetObjectAtIndexedSubscriptSelector () const
 Returns selector for "setObject:atIndexedSubscript". More...
 
Selector getIsEqualSelector () const
 Returns selector for "isEqual:". More...
 
Selector getNSNumberLiteralSelector (NSNumberLiteralMethodKind MK, bool Instance) const
 The Objective-C NSNumber selectors used to create NSNumber literals. More...
 
bool isNSNumberLiteralSelector (NSNumberLiteralMethodKind MK, Selector Sel) const
 
Optional< NSNumberLiteralMethodKindgetNSNumberLiteralMethodKind (Selector Sel) const
 Return NSNumberLiteralMethodKind if Sel is such a selector. More...
 
Optional< NSNumberLiteralMethodKindgetNSNumberFactoryMethodKind (QualType T) const
 Determine the appropriate NSNumber factory method kind for a literal of the given type. More...
 
bool isObjCBOOLType (QualType T) const
 Returns true if. More...
 
bool isObjCNSIntegerType (QualType T) const
 Returns true if. More...
 
bool isObjCNSUIntegerType (QualType T) const
 Returns true if. More...
 
StringRef GetNSIntegralKind (QualType T) const
 Returns one of NSIntegral typedef names if. More...
 
bool isMacroDefined (StringRef Id) const
 Returns true if Id is currently defined as a macro. More...
 
bool isSubclassOfNSClass (ObjCInterfaceDecl *InterfaceDecl, NSClassIdKindKind NSClassKind) const
 Returns true if InterfaceDecl is subclass of NSClassKind. More...
 

Static Public Attributes

static const unsigned NumClassIds = 10
 
static const unsigned NumNSStringMethods = 6
 
static const unsigned NumNSArrayMethods = 12
 
static const unsigned NumNSDictionaryMethods = 13
 
static const unsigned NumNSSetMethods = 5
 
static const unsigned NumNSNumberLiteralMethods = 15
 

Detailed Description

Definition at line 24 of file NSAPI.h.

Member Enumeration Documentation

◆ NSArrayMethodKind

Enumerates the NSArray/NSMutableArray methods used to generate literals and to apply some checks.

Enumerator
NSArr_array 
NSArr_arrayWithArray 
NSArr_arrayWithObject 
NSArr_arrayWithObjects 
NSArr_arrayWithObjectsCount 
NSArr_initWithArray 
NSArr_initWithObjects 
NSArr_objectAtIndex 
NSMutableArr_replaceObjectAtIndex 
NSMutableArr_addObject 
NSMutableArr_insertObjectAtIndex 
NSMutableArr_setObjectAtIndexedSubscript 

Definition at line 76 of file NSAPI.h.

◆ NSClassIdKindKind

Enumerator
ClassId_NSObject 
ClassId_NSString 
ClassId_NSArray 
ClassId_NSMutableArray 
ClassId_NSDictionary 
ClassId_NSMutableDictionary 
ClassId_NSNumber 
ClassId_NSMutableSet 
ClassId_NSMutableOrderedSet 
ClassId_NSValue 

Definition at line 30 of file NSAPI.h.

◆ NSDictionaryMethodKind

Enumerates the NSDictionary/NSMutableDictionary methods used to generate literals and to apply some checks.

Enumerator
NSDict_dictionary 
NSDict_dictionaryWithDictionary 
NSDict_dictionaryWithObjectForKey 
NSDict_dictionaryWithObjectsForKeys 
NSDict_dictionaryWithObjectsForKeysCount 
NSDict_dictionaryWithObjectsAndKeys 
NSDict_initWithDictionary 
NSDict_initWithObjectsAndKeys 
NSDict_initWithObjectsForKeys 
NSDict_objectForKey 
NSMutableDict_setObjectForKey 
NSMutableDict_setObjectForKeyedSubscript 
NSMutableDict_setValueForKey 

Definition at line 100 of file NSAPI.h.

◆ NSNumberLiteralMethodKind

Enumerates the NSNumber methods used to generate literals.

Enumerator
NSNumberWithChar 
NSNumberWithUnsignedChar 
NSNumberWithShort 
NSNumberWithUnsignedShort 
NSNumberWithInt 
NSNumberWithUnsignedInt 
NSNumberWithLong 
NSNumberWithUnsignedLong 
NSNumberWithLongLong 
NSNumberWithUnsignedLongLong 
NSNumberWithFloat 
NSNumberWithDouble 
NSNumberWithBool 
NSNumberWithInteger 
NSNumberWithUnsignedInteger 

Definition at line 170 of file NSAPI.h.

◆ NSSetMethodKind

Enumerates the NSMutableSet/NSOrderedSet methods used to apply some checks.

Enumerator
NSMutableSet_addObject 
NSOrderedSet_insertObjectAtIndex 
NSOrderedSet_setObjectAtIndex 
NSOrderedSet_setObjectAtIndexedSubscript 
NSOrderedSet_replaceObjectAtIndexWithObject 

Definition at line 125 of file NSAPI.h.

◆ NSStringMethodKind

Enumerator
NSStr_stringWithString 
NSStr_stringWithUTF8String 
NSStr_stringWithCStringEncoding 
NSStr_stringWithCString 
NSStr_initWithString 
NSStr_initWithUTF8String 

Definition at line 44 of file NSAPI.h.

Constructor & Destructor Documentation

◆ NSAPI()

NSAPI::NSAPI ( ASTContext Ctx)
explicit

Definition at line 18 of file NSAPI.cpp.

Member Function Documentation

◆ getASTContext()

ASTContext& clang::NSAPI::getASTContext ( ) const
inline

◆ getIsEqualSelector()

Selector clang::NSAPI::getIsEqualSelector ( ) const
inline

Returns selector for "isEqual:".

Definition at line 165 of file NSAPI.h.

◆ getNSArrayMethodKind()

Optional< NSAPI::NSArrayMethodKind > NSAPI::getNSArrayMethodKind ( Selector  Sel)

Return NSArrayMethodKind if Sel is such a selector.

Definition at line 157 of file NSAPI.cpp.

References getNSArraySelector(), clang::None, and NumNSArrayMethods.

◆ getNSArraySelector()

Selector NSAPI::getNSArraySelector ( NSArrayMethodKind  MK) const

◆ getNSClassId()

IdentifierInfo * NSAPI::getNSClassId ( NSClassIdKindKind  K) const

◆ getNSDictionaryMethodKind()

Optional< NSAPI::NSDictionaryMethodKind > NSAPI::getNSDictionaryMethodKind ( Selector  Sel)

Return NSDictionaryMethodKind if Sel is such a selector.

Definition at line 259 of file NSAPI.cpp.

References getNSDictionarySelector(), clang::None, and NumNSDictionaryMethods.

◆ getNSDictionarySelector()

Selector NSAPI::getNSDictionarySelector ( NSDictionaryMethodKind  MK) const

◆ GetNSIntegralKind()

StringRef NSAPI::GetNSIntegralKind ( QualType  T) const

Returns one of NSIntegral typedef names if.

Parameters
Tis a typedef of that name in objective-c.

Definition at line 486 of file NSAPI.cpp.

References clang::Type::getAs(), clang::ASTContext::getLangOpts(), and clang::QualType::isNull().

Referenced by isNSNumberLiteralSelector().

◆ getNSNumberFactoryMethodKind()

Optional< NSAPI::NSNumberLiteralMethodKind > NSAPI::getNSNumberFactoryMethodKind ( QualType  T) const

◆ getNSNumberLiteralMethodKind()

Optional< NSAPI::NSNumberLiteralMethodKind > NSAPI::getNSNumberLiteralMethodKind ( Selector  Sel) const

Return NSNumberLiteralMethodKind if Sel is such a selector.

Definition at line 379 of file NSAPI.cpp.

References isNSNumberLiteralSelector(), clang::None, and NumNSNumberLiteralMethods.

Referenced by isNSNumberLiteralSelector(), rewriteToNumberLiteral(), and rewriteToNumericBoxedExpression().

◆ getNSNumberLiteralSelector()

Selector NSAPI::getNSNumberLiteralSelector ( NSNumberLiteralMethodKind  MK,
bool  Instance 
) const

The Objective-C NSNumber selectors used to create NSNumber literals.

Parameters
Instanceif true it will return the selector for the init* method otherwise it will return the selector for the number* method.

Definition at line 326 of file NSAPI.cpp.

References clang::IdentifierTable::get(), clang::SelectorTable::getUnarySelector(), clang::ASTContext::Idents, NumNSNumberLiteralMethods, and clang::ASTContext::Selectors.

Referenced by isNSNumberLiteralSelector().

◆ getNSSetMethodKind()

Optional< NSAPI::NSSetMethodKind > NSAPI::getNSSetMethodKind ( Selector  Sel)

Return NSSetMethodKind if Sel is such a selector.

Definition at line 316 of file NSAPI.cpp.

References getNSSetSelector(), clang::None, and NumNSSetMethods.

◆ getNSSetSelector()

Selector NSAPI::getNSSetSelector ( NSSetMethodKind  MK) const

◆ getNSStringMethodKind()

Optional< NSAPI::NSStringMethodKind > NSAPI::getNSStringMethodKind ( Selector  Sel) const

Return NSStringMethodKind if.

Parameters
Selis such a selector.

Definition at line 80 of file NSAPI.cpp.

References getNSStringSelector(), clang::None, and NumNSStringMethods.

◆ getNSStringSelector()

Selector NSAPI::getNSStringSelector ( NSStringMethodKind  MK) const

◆ getObjectAtIndexedSubscriptSelector()

Selector clang::NSAPI::getObjectAtIndexedSubscriptSelector ( ) const
inline

Returns selector for "objectAtIndexedSubscript:".

Definition at line 147 of file NSAPI.h.

Referenced by rewriteToArraySubscriptGet().

◆ getObjectForKeyedSubscriptSelector()

Selector clang::NSAPI::getObjectForKeyedSubscriptSelector ( ) const
inline

Returns selector for "objectForKeyedSubscript:".

Definition at line 141 of file NSAPI.h.

Referenced by rewriteToDictionarySubscriptGet().

◆ getSetObjectAtIndexedSubscriptSelector()

Selector clang::NSAPI::getSetObjectAtIndexedSubscriptSelector ( ) const
inline

Returns selector for "setObject:atIndexedSubscript".

Definition at line 159 of file NSAPI.h.

Referenced by rewriteToArraySubscriptSet().

◆ getSetObjectForKeyedSubscriptSelector()

Selector clang::NSAPI::getSetObjectForKeyedSubscriptSelector ( ) const
inline

Returns selector for "setObject:forKeyedSubscript".

Definition at line 153 of file NSAPI.h.

Referenced by rewriteToDictionarySubscriptSet().

◆ isMacroDefined()

bool NSAPI::isMacroDefined ( StringRef  Id) const

Returns true if Id is currently defined as a macro.

Definition at line 512 of file NSAPI.cpp.

References clang::IdentifierTable::get(), clang::IdentifierInfo::hasMacroDefinition(), and clang::ASTContext::Idents.

Referenced by isNSNumberLiteralSelector(), and rewriteToObjCProperty().

◆ isNSASCIIStringEncodingConstant()

bool clang::NSAPI::isNSASCIIStringEncodingConstant ( const Expr E) const
inline

Returns true if the expression.

Parameters
Eis a reference of "NSASCIIStringEncoding" enum constant.

Definition at line 70 of file NSAPI.h.

Referenced by rewriteToStringBoxedExpression().

◆ isNSNumberLiteralSelector()

bool clang::NSAPI::isNSNumberLiteralSelector ( NSNumberLiteralMethodKind  MK,
Selector  Sel 
) const
inline

◆ isNSUTF8StringEncodingConstant()

bool clang::NSAPI::isNSUTF8StringEncodingConstant ( const Expr E) const
inline

Returns true if the expression.

Parameters
Eis a reference of "NSUTF8StringEncoding" enum constant.

Definition at line 64 of file NSAPI.h.

Referenced by rewriteToStringBoxedExpression().

◆ isObjCBOOLType()

bool NSAPI::isObjCBOOLType ( QualType  T) const

Returns true if.

Parameters
Tis a typedef of "BOOL" in objective-c.

Definition at line 474 of file NSAPI.cpp.

Referenced by getNSNumberFactoryMethodKind(), and isNSNumberLiteralSelector().

◆ isObjCNSIntegerType()

bool NSAPI::isObjCNSIntegerType ( QualType  T) const

Returns true if.

Parameters
Tis a typedef of "NSInteger" in objective-c.

Definition at line 478 of file NSAPI.cpp.

Referenced by getNSNumberFactoryMethodKind(), and isNSNumberLiteralSelector().

◆ isObjCNSUIntegerType()

bool NSAPI::isObjCNSUIntegerType ( QualType  T) const

Returns true if.

Parameters
Tis a typedef of "NSUInteger" in objective-c.

Definition at line 482 of file NSAPI.cpp.

Referenced by getNSNumberFactoryMethodKind(), and isNSNumberLiteralSelector().

◆ isSubclassOfNSClass()

bool NSAPI::isSubclassOfNSClass ( ObjCInterfaceDecl InterfaceDecl,
NSClassIdKindKind  NSClassKind 
) const

Member Data Documentation

◆ NumClassIds

const unsigned clang::NSAPI::NumClassIds = 10
static

Definition at line 42 of file NSAPI.h.

Referenced by getNSClassId().

◆ NumNSArrayMethods

const unsigned clang::NSAPI::NumNSArrayMethods = 12
static

Definition at line 90 of file NSAPI.h.

Referenced by getNSArrayMethodKind().

◆ NumNSDictionaryMethods

const unsigned clang::NSAPI::NumNSDictionaryMethods = 13
static

Definition at line 115 of file NSAPI.h.

Referenced by getNSDictionaryMethodKind().

◆ NumNSNumberLiteralMethods

const unsigned clang::NSAPI::NumNSNumberLiteralMethods = 15
static

Definition at line 187 of file NSAPI.h.

Referenced by getNSNumberLiteralMethodKind(), and getNSNumberLiteralSelector().

◆ NumNSSetMethods

const unsigned clang::NSAPI::NumNSSetMethods = 5
static

Definition at line 132 of file NSAPI.h.

Referenced by getNSSetMethodKind().

◆ NumNSStringMethods

const unsigned clang::NSAPI::NumNSStringMethods = 6
static

Definition at line 52 of file NSAPI.h.

Referenced by getNSStringMethodKind().


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