Patch to refactor setter/getter names of property attributes into Selector
(was IdentifierInfo * before). This will make method declartations whole
lot easier.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50747 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Parse/ParseObjc.cpp b/lib/Parse/ParseObjc.cpp
index 8d404a9..1ff5877 100644
--- a/lib/Parse/ParseObjc.cpp
+++ b/lib/Parse/ParseObjc.cpp
@@ -270,8 +270,13 @@
for (unsigned i = 0, e = FieldDeclarators.size(); i != e; ++i) {
FieldDeclarator &FD = FieldDeclarators[i];
// Install the property declarator into interfaceDecl.
+ Selector GetterSel =
+ PP.getSelectorTable().getNullarySelector(OCDS.getGetterName());
+ Selector SetterSel =
+ PP.getSelectorTable().getNullarySelector(OCDS.getSetterName());
DeclTy *Property = Actions.ActOnProperty(CurScope,
DS.getSourceRange().getBegin(), FD, OCDS,
+ GetterSel, SetterSel,
MethodImplKind);
allProperties.push_back(Property);
}
diff --git a/lib/Sema/Sema.h b/lib/Sema/Sema.h
index 5541808..27eca89 100644
--- a/lib/Sema/Sema.h
+++ b/lib/Sema/Sema.h
@@ -677,6 +677,7 @@
virtual DeclTy *ActOnProperty(Scope *S, SourceLocation AtLoc,
FieldDeclarator &FD, ObjCDeclSpec &ODS,
+ Selector GetterSel, Selector SetterSel,
tok::ObjCKeywordKind MethodImplKind);
virtual DeclTy *ActOnPropertyImplDecl(SourceLocation AtLoc,
diff --git a/lib/Sema/SemaDeclObjC.cpp b/lib/Sema/SemaDeclObjC.cpp
index 3b48810..f9e4f5b 100644
--- a/lib/Sema/SemaDeclObjC.cpp
+++ b/lib/Sema/SemaDeclObjC.cpp
@@ -1023,6 +1023,8 @@
Sema::DeclTy *Sema::ActOnProperty(Scope *S, SourceLocation AtLoc,
FieldDeclarator &FD,
ObjCDeclSpec &ODS,
+ Selector GetterSel,
+ Selector SetterSel,
tok::ObjCKeywordKind MethodImplKind) {
QualType T = GetTypeForDeclarator(FD.D, S);
ObjCPropertyDecl *PDecl = ObjCPropertyDecl::Create(Context, AtLoc,
@@ -1033,12 +1035,12 @@
if (ODS.getPropertyAttributes() & ObjCDeclSpec::DQ_PR_getter) {
PDecl->setPropertyAttributes(ObjCPropertyDecl::OBJC_PR_getter);
- PDecl->setGetterName(ODS.getGetterName());
+ PDecl->setGetterName(GetterSel);
}
if (ODS.getPropertyAttributes() & ObjCDeclSpec::DQ_PR_setter) {
PDecl->setPropertyAttributes(ObjCPropertyDecl::OBJC_PR_setter);
- PDecl->setSetterName(ODS.getSetterName());
+ PDecl->setSetterName(SetterSel);
}
if (ODS.getPropertyAttributes() & ObjCDeclSpec::DQ_PR_assign)