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_initWithArray,
|
||||||
NSArr_initWithObjects,
|
NSArr_initWithObjects,
|
||||||
NSArr_objectAtIndex,
|
NSArr_objectAtIndex,
|
||||||
NSMutableArr_replaceObjectAtIndex
|
NSMutableArr_replaceObjectAtIndex,
|
||||||
|
NSArr_initWithObjectsCount
|
||||||
};
|
};
|
||||||
static const unsigned NumNSArrayMethods = 9;
|
static const unsigned NumNSArrayMethods = 10;
|
||||||
|
|
||||||
/// \brief The Objective-C NSArray selectors.
|
/// \brief The Objective-C NSArray selectors.
|
||||||
Selector getNSArraySelector(NSArrayMethodKind MK) const;
|
Selector getNSArraySelector(NSArrayMethodKind MK) const;
|
||||||
|
@ -98,9 +99,10 @@ public:
|
||||||
NSDict_initWithObjectsAndKeys,
|
NSDict_initWithObjectsAndKeys,
|
||||||
NSDict_initWithObjectsForKeys,
|
NSDict_initWithObjectsForKeys,
|
||||||
NSDict_objectForKey,
|
NSDict_objectForKey,
|
||||||
NSMutableDict_setObjectForKey
|
NSMutableDict_setObjectForKey,
|
||||||
|
NSDict_initWithObjectsForKeysCount
|
||||||
};
|
};
|
||||||
static const unsigned NumNSDictionaryMethods = 11;
|
static const unsigned NumNSDictionaryMethods = 12;
|
||||||
|
|
||||||
/// \brief The Objective-C NSDictionary selectors.
|
/// \brief The Objective-C NSDictionary selectors.
|
||||||
Selector getNSDictionarySelector(NSDictionaryMethodKind MK) const;
|
Selector getNSDictionarySelector(NSDictionaryMethodKind MK) const;
|
||||||
|
|
|
@ -672,12 +672,21 @@ public:
|
||||||
|
|
||||||
/// \brief The declaration of the arrayWithObjects:count: method.
|
/// \brief The declaration of the arrayWithObjects:count: method.
|
||||||
ObjCMethodDecl *ArrayWithObjectsMethod;
|
ObjCMethodDecl *ArrayWithObjectsMethod;
|
||||||
|
|
||||||
|
/// \brief The declaration of the initWithObjects:count: method.
|
||||||
|
ObjCMethodDecl *InitArrayWithObjectsMethod;
|
||||||
|
|
||||||
/// \brief The declaration of the Objective-C NSDictionary class.
|
/// \brief The declaration of the Objective-C NSDictionary class.
|
||||||
ObjCInterfaceDecl *NSDictionaryDecl;
|
ObjCInterfaceDecl *NSDictionaryDecl;
|
||||||
|
|
||||||
/// \brief The declaration of the dictionaryWithObjects:forKeys:count: method.
|
/// \brief The declaration of the dictionaryWithObjects:forKeys:count: method.
|
||||||
ObjCMethodDecl *DictionaryWithObjectsMethod;
|
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.
|
/// \brief id<NSCopying> type.
|
||||||
QualType QIDNSCopying;
|
QualType QIDNSCopying;
|
||||||
|
|
|
@ -119,6 +119,14 @@ Selector NSAPI::getNSArraySelector(NSArrayMethodKind MK) const {
|
||||||
Sel = Ctx.Selectors.getSelector(2, KeyIdents);
|
Sel = Ctx.Selectors.getSelector(2, KeyIdents);
|
||||||
break;
|
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);
|
return (NSArraySelectors[MK] = Sel);
|
||||||
}
|
}
|
||||||
|
@ -204,6 +212,15 @@ Selector NSAPI::getNSDictionarySelector(
|
||||||
Sel = Ctx.Selectors.getSelector(2, KeyIdents);
|
Sel = Ctx.Selectors.getSelector(2, KeyIdents);
|
||||||
break;
|
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);
|
return (NSDictionarySelectors[MK] = Sel);
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,7 +95,10 @@ Sema::Sema(Preprocessor &pp, ASTContext &ctxt, ASTConsumer &consumer,
|
||||||
NSNumberDecl(nullptr),
|
NSNumberDecl(nullptr),
|
||||||
NSStringDecl(nullptr), StringWithUTF8StringMethod(nullptr),
|
NSStringDecl(nullptr), StringWithUTF8StringMethod(nullptr),
|
||||||
NSArrayDecl(nullptr), ArrayWithObjectsMethod(nullptr),
|
NSArrayDecl(nullptr), ArrayWithObjectsMethod(nullptr),
|
||||||
|
InitArrayWithObjectsMethod(nullptr),
|
||||||
NSDictionaryDecl(nullptr), DictionaryWithObjectsMethod(nullptr),
|
NSDictionaryDecl(nullptr), DictionaryWithObjectsMethod(nullptr),
|
||||||
|
InitDictionaryWithObjectsMethod(nullptr),
|
||||||
|
AllocObjectsMethod(nullptr),
|
||||||
GlobalNewDeleteDeclared(false),
|
GlobalNewDeleteDeclared(false),
|
||||||
TUKind(TUKind),
|
TUKind(TUKind),
|
||||||
NumSFINAEErrors(0),
|
NumSFINAEErrors(0),
|
||||||
|
|
Loading…
Reference in New Issue