forked from OSchip/llvm-project
ObjectiveC migrator. delegate property must be
inferred as 'assign', not 'assign' and 'strong'. // rdar://15509831 llvm-svn: 195368
This commit is contained in:
parent
cf4143b55e
commit
d9aef7883d
|
@ -343,12 +343,9 @@ static void rewriteToObjCProperty(const ObjCMethodDecl *Getter,
|
|||
PropertyString += PropertyNameString;
|
||||
}
|
||||
// Property with no setter may be suggested as a 'readonly' property.
|
||||
if (!Setter) {
|
||||
if (!Setter)
|
||||
append_attr(PropertyString, "readonly", LParenAdded);
|
||||
QualType ResType = Context.getCanonicalType(Getter->getResultType());
|
||||
if (const char *MemoryManagementAttr = PropertyMemoryAttribute(Context, ResType))
|
||||
append_attr(PropertyString, MemoryManagementAttr, LParenAdded);
|
||||
}
|
||||
|
||||
|
||||
// Short circuit 'delegate' properties that contain the name "delegate" or
|
||||
// "dataSource", or have exact name "target" to have 'assign' attribute.
|
||||
|
@ -358,8 +355,11 @@ static void rewriteToObjCProperty(const ObjCMethodDecl *Getter,
|
|||
QualType QT = Getter->getResultType();
|
||||
if (!QT->isRealType())
|
||||
append_attr(PropertyString, "assign", LParenAdded);
|
||||
}
|
||||
else if (Setter) {
|
||||
} else if (!Setter) {
|
||||
QualType ResType = Context.getCanonicalType(Getter->getResultType());
|
||||
if (const char *MemoryManagementAttr = PropertyMemoryAttribute(Context, ResType))
|
||||
append_attr(PropertyString, MemoryManagementAttr, LParenAdded);
|
||||
} else {
|
||||
const ParmVarDecl *argDecl = *Setter->param_begin();
|
||||
QualType ArgType = Context.getCanonicalType(argDecl->getType());
|
||||
if (const char *MemoryManagementAttr = PropertyMemoryAttribute(Context, ArgType))
|
||||
|
|
|
@ -70,6 +70,9 @@ typedef char BOOL;
|
|||
|
||||
- (id) dataSource;
|
||||
|
||||
// rdar://15509831
|
||||
- (id)delegate;
|
||||
|
||||
- (id)xxxdelegateYYY;
|
||||
- (void)setXxxdelegateYYY:(id)delegate;
|
||||
|
||||
|
|
|
@ -61,6 +61,9 @@ typedef char BOOL;
|
|||
|
||||
@property (nonatomic, assign) id dataSource;
|
||||
|
||||
// rdar://15509831
|
||||
@property (nonatomic, readonly, assign) id delegate;
|
||||
|
||||
@property (nonatomic, assign) id xxxdelegateYYY;
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue