]> granicus.if.org Git - clang/commitdiff
objective-c: revert r157407. It broke a project
authorFariborz Jahanian <fjahanian@apple.com>
Wed, 30 May 2012 17:33:54 +0000 (17:33 +0000)
committerFariborz Jahanian <fjahanian@apple.com>
Wed, 30 May 2012 17:33:54 +0000 (17:33 +0000)
and reported as PR12959. // rdar://11499742

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157697 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaExprObjC.cpp
test/SemaObjC/property-user-setter.m

index 9ce0fafe3c1e24c7e253b2f81edbaac70db74b29..c1f7aae0a25590e0a54ea7e66359eb47c6db11f7 100644 (file)
@@ -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)
index b36b027e5ef7bbab59a520f315e54260b616e1cd..9ebad6048df87715828d183952411af95741da80 100644 (file)
@@ -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