forked from OSchip/llvm-project
Objective-C ARC. Adding declarations for Objective-C's
new APIs for literals. nfc. wip. rdar://17554063 llvm-svn: 214993
This commit is contained in:
parent
cd47959eb6
commit
501e71c86b
|
@ -76,9 +76,10 @@ public:
|
|||
NSArr_initWithArray,
|
||||
NSArr_initWithObjects,
|
||||
NSArr_objectAtIndex,
|
||||
NSMutableArr_replaceObjectAtIndex
|
||||
NSMutableArr_replaceObjectAtIndex,
|
||||
NSArr_initWithObjectsCount
|
||||
};
|
||||
static const unsigned NumNSArrayMethods = 9;
|
||||
static const unsigned NumNSArrayMethods = 10;
|
||||
|
||||
/// \brief The Objective-C NSArray selectors.
|
||||
Selector getNSArraySelector(NSArrayMethodKind MK) const;
|
||||
|
@ -98,9 +99,10 @@ public:
|
|||
NSDict_initWithObjectsAndKeys,
|
||||
NSDict_initWithObjectsForKeys,
|
||||
NSDict_objectForKey,
|
||||
NSMutableDict_setObjectForKey
|
||||
NSMutableDict_setObjectForKey,
|
||||
NSDict_initWithObjectsForKeysCount
|
||||
};
|
||||
static const unsigned NumNSDictionaryMethods = 11;
|
||||
static const unsigned NumNSDictionaryMethods = 12;
|
||||
|
||||
/// \brief The Objective-C NSDictionary selectors.
|
||||
Selector getNSDictionarySelector(NSDictionaryMethodKind MK) const;
|
||||
|
|
|
@ -673,12 +673,21 @@ public:
|
|||
/// \brief The declaration of the arrayWithObjects:count: method.
|
||||
ObjCMethodDecl *ArrayWithObjectsMethod;
|
||||
|
||||
/// \brief The declaration of the initWithObjects:count: method.
|
||||
ObjCMethodDecl *InitArrayWithObjectsMethod;
|
||||
|
||||
/// \brief The declaration of the Objective-C NSDictionary class.
|
||||
ObjCInterfaceDecl *NSDictionaryDecl;
|
||||
|
||||
/// \brief The declaration of the dictionaryWithObjects:forKeys:count: method.
|
||||
ObjCMethodDecl *DictionaryWithObjectsMethod;
|
||||
|
||||
/// \brief The declaration of the initWithObjects:forKeys:count: method.
|
||||
ObjCMethodDecl *InitDictionaryWithObjectsMethod;
|
||||
|
||||
/// \brief The declaration for + (id) alloc method.
|
||||
ObjCMethodDecl *AllocObjectsMethod;
|
||||
|
||||
/// \brief id<NSCopying> type.
|
||||
QualType QIDNSCopying;
|
||||
|
||||
|
|
|
@ -119,6 +119,14 @@ Selector NSAPI::getNSArraySelector(NSArrayMethodKind MK) const {
|
|||
Sel = Ctx.Selectors.getSelector(2, KeyIdents);
|
||||
break;
|
||||
}
|
||||
case NSArr_initWithObjectsCount: {
|
||||
IdentifierInfo *KeyIdents[] = {
|
||||
&Ctx.Idents.get("initWithObjects"),
|
||||
&Ctx.Idents.get("count")
|
||||
};
|
||||
Sel = Ctx.Selectors.getSelector(2, KeyIdents);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return (NSArraySelectors[MK] = Sel);
|
||||
}
|
||||
|
@ -204,6 +212,15 @@ Selector NSAPI::getNSDictionarySelector(
|
|||
Sel = Ctx.Selectors.getSelector(2, KeyIdents);
|
||||
break;
|
||||
}
|
||||
case NSDict_initWithObjectsForKeysCount: {
|
||||
IdentifierInfo *KeyIdents[] = {
|
||||
&Ctx.Idents.get("initWithObjects"),
|
||||
&Ctx.Idents.get("forKeys"),
|
||||
&Ctx.Idents.get("count")
|
||||
};
|
||||
Sel = Ctx.Selectors.getSelector(3, KeyIdents);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return (NSDictionarySelectors[MK] = Sel);
|
||||
}
|
||||
|
|
|
@ -95,7 +95,10 @@ Sema::Sema(Preprocessor &pp, ASTContext &ctxt, ASTConsumer &consumer,
|
|||
NSNumberDecl(nullptr),
|
||||
NSStringDecl(nullptr), StringWithUTF8StringMethod(nullptr),
|
||||
NSArrayDecl(nullptr), ArrayWithObjectsMethod(nullptr),
|
||||
InitArrayWithObjectsMethod(nullptr),
|
||||
NSDictionaryDecl(nullptr), DictionaryWithObjectsMethod(nullptr),
|
||||
InitDictionaryWithObjectsMethod(nullptr),
|
||||
AllocObjectsMethod(nullptr),
|
||||
GlobalNewDeleteDeclared(false),
|
||||
TUKind(TUKind),
|
||||
NumSFINAEErrors(0),
|
||||
|
|
Loading…
Reference in New Issue