зеркало из https://github.com/microsoft/clang-1.git
No need to default synthesize property if implementation
has its own getter and setter methods declared. Fixed 8349319 (nonfragile-abi2). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112003 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
0554e0e30d
Коммит
95f1b86b73
|
@ -953,6 +953,12 @@ void Sema::DefaultSynthesizeProperties (Scope *S, ObjCImplDecl* IMPDecl,
|
|||
// Property may have been synthesized by user.
|
||||
if (IMPDecl->FindPropertyImplDecl(Prop->getIdentifier()))
|
||||
continue;
|
||||
if (IMPDecl->getInstanceMethod(Prop->getGetterName())) {
|
||||
if (Prop->getPropertyAttributes() & ObjCPropertyDecl::OBJC_PR_readonly)
|
||||
continue;
|
||||
if (IMPDecl->getInstanceMethod(Prop->getSetterName()))
|
||||
continue;
|
||||
}
|
||||
|
||||
ActOnPropertyImplDecl(S, IMPDecl->getLocation(), IMPDecl->getLocation(),
|
||||
true, IMPDecl,
|
||||
|
|
|
@ -85,4 +85,32 @@
|
|||
}
|
||||
@end
|
||||
|
||||
// rdar://8349319
|
||||
// No default synthesis if implementation has getter (readonly) and setter(readwrite) methods.
|
||||
@interface DSATextSearchResult
|
||||
@property(assign,readonly) float relevance;
|
||||
@property(assign,readonly) char isTitleMatch;
|
||||
@end
|
||||
|
||||
@interface DSANodeSearchResult : DSATextSearchResult {}
|
||||
@end
|
||||
|
||||
|
||||
@implementation DSATextSearchResult
|
||||
-(char)isTitleMatch {
|
||||
return (char)0;
|
||||
}
|
||||
|
||||
-(float)relevance {
|
||||
return 0.0;
|
||||
}
|
||||
@end
|
||||
|
||||
@implementation DSANodeSearchResult
|
||||
-(id)initWithNode:(id )node relevance:(float)relevance isTitleMatch:(char)isTitleMatch {
|
||||
relevance = 0.0;
|
||||
isTitleMatch = 'a';
|
||||
return self;
|
||||
}
|
||||
@end
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче