summaryrefslogtreecommitdiffstats
path: root/test/SemaObjC/default-synthesize.m
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2010-02-09 21:49:50 +0000
committerFariborz Jahanian <fjahanian@apple.com>2010-02-09 21:49:50 +0000
commit77e2dde750c271155f35949a6d3c22f8e7d287f8 (patch)
tree8e9985acea46b71687523c21c109d9482e1dc2a8 /test/SemaObjC/default-synthesize.m
parentb9576d9623411946cad8b62f5b3c0f1502b75244 (diff)
Finish implementing property synthesis by default.
(radar 7381956). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95695 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/SemaObjC/default-synthesize.m')
-rw-r--r--test/SemaObjC/default-synthesize.m81
1 files changed, 81 insertions, 0 deletions
diff --git a/test/SemaObjC/default-synthesize.m b/test/SemaObjC/default-synthesize.m
new file mode 100644
index 0000000000..be2397bd20
--- /dev/null
+++ b/test/SemaObjC/default-synthesize.m
@@ -0,0 +1,81 @@
+// RUN: %clang_cc1 -fsyntax-only -fobjc-nonfragile-abi2 -verify %s
+
+@interface NSString @end
+
+@interface NSObject @end
+
+@interface SynthItAll
+@property int howMany;
+@property (retain) NSString* what;
+@end
+
+@implementation SynthItAll
+//@synthesize howMany, what;
+@end
+
+
+@interface SynthSetter : NSObject
+@property (nonatomic) int howMany; // REM: nonatomic to avoid warnings about only implementing one of the pair
+@property (nonatomic, retain) NSString* what;
+@end
+
+@implementation SynthSetter
+//@synthesize howMany, what;
+
+- (int) howMany {
+ return howMany;
+}
+// - (void) setHowMany: (int) value
+
+- (NSString*) what {
+ return what;
+}
+// - (void) setWhat: (NSString*) value
+@end
+
+
+@interface SynthGetter : NSObject
+@property (nonatomic) int howMany; // REM: nonatomic to avoid warnings about only implementing one of the pair
+@property (nonatomic, retain) NSString* what;
+@end
+
+@implementation SynthGetter
+//@synthesize howMany, what;
+
+// - (int) howMany
+- (void) setHowMany: (int) value {
+ howMany = value;
+}
+
+// - (NSString*) what
+- (void) setWhat: (NSString*) value {
+ if (what != value) {
+ }
+}
+@end
+
+
+@interface SynthNone : NSObject
+@property int howMany;
+@property (retain) NSString* what;
+@end
+
+@implementation SynthNone
+//@synthesize howMany, what; // REM: Redundant anyway
+
+- (int) howMany {
+ return howMany;
+}
+- (void) setHowMany: (int) value {
+ howMany = value;
+}
+
+- (NSString*) what {
+ return what;
+}
+- (void) setWhat: (NSString*) value {
+ if (what != value) {
+ }
+}
+@end
+