From: Fariborz Jahanian Date: Wed, 30 May 2012 17:33:54 +0000 (+0000) Subject: objective-c: revert r157407. It broke a project X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=59a9881ab252c80735d6440bd9ca0fbac252e6a8;p=clang objective-c: revert r157407. It broke a project and reported as PR12959. // rdar://11499742 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157697 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Sema/SemaExprObjC.cpp b/lib/Sema/SemaExprObjC.cpp index 9ce0fafe3c..c1f7aae0a2 100644 --- a/lib/Sema/SemaExprObjC.cpp +++ b/lib/Sema/SemaExprObjC.cpp @@ -1483,10 +1483,6 @@ HandleExprPropertyRefExpr(const ObjCObjectPointerType *OPT, SelectorTable::constructSetterName(PP.getIdentifierTable(), PP.getSelectorTable(), Member); ObjCMethodDecl *Setter = IFace->lookupInstanceMethod(SetterSel); - if (Setter && Setter->isSynthesized()) - // Check for corner case of: @property int p; ... self.P = 0; - // setter name is synthesized "setP" but there is no property name 'P'. - Setter = 0; // May be founf in property's qualified list. if (!Setter) diff --git a/test/SemaObjC/property-user-setter.m b/test/SemaObjC/property-user-setter.m index b36b027e5e..9ebad6048d 100644 --- a/test/SemaObjC/property-user-setter.m +++ b/test/SemaObjC/property-user-setter.m @@ -124,15 +124,33 @@ int main (void) { @synthesize t, T; @synthesize Pxyz, pxyz; - (id) Meth { - self.P = 0; // expected-error {{property 'P' not found on object of type 'rdar11363363 *'}} - self.q = 0; // expected-error {{property 'q' not found on object of type 'rdar11363363 *'}} + self.P = 0; + self.q = 0; // rdar://11528439 self.t = 0; // expected-error {{synthesized properties 't' and 'T' both claim setter 'setT:'}} self.T = 0; // expected-error {{synthesized properties 'T' and 't' both claim setter 'setT:'}} self.Pxyz = 0; // expected-error {{synthesized properties 'Pxyz' and 'pxyz' both claim setter 'setPxyz:'}} self.pxyz = 0; // expected-error {{synthesized properties 'pxyz' and 'Pxyz' both claim setter 'setPxyz:'}} - self.R = 0; // expected-error {{property 'R' not found on object of type 'rdar11363363 *'; did you mean to access ivar 'R'?}} - return self.R; // expected-error {{property 'R' not found on object of type 'rdar11363363 *'; did you mean to access ivar 'R'?}} + self.R = 0; + return self.R; // expected-error {{expected getter method not found on object of type 'rdar11363363 *'}} +} +@end + +// rdar://11499742 +@class BridgeFormatter; + +@interface FMXBridgeFormatter + +@property(assign, readwrite, getter=formatter, setter=setFormatter:) BridgeFormatter* cppFormatter; + +@end + +@implementation FMXBridgeFormatter +@synthesize cppFormatter; + +- (void) dealloc +{ + self.formatter = 0; } @end