diff options
author | Steve Naroff <snaroff@apple.com> | 2008-12-08 16:43:47 +0000 |
---|---|---|
committer | Steve Naroff <snaroff@apple.com> | 2008-12-08 16:43:47 +0000 |
commit | 8599e7a394e7ed44a32dfe64733125e095e3f28c (patch) | |
tree | e9eacb7b5358240db17fe8778a2a3b998aef0c3d /test/Rewriter | |
parent | 377fa5d532e6eaa93fd0d08441f01945fb051a0c (diff) | |
download | clang-8599e7a394e7ed44a32dfe64733125e095e3f28c.tar.gz |
Handle chained/nested property 'getters' (obj.p1.p2.p3).
This is a follow-up to fixing <rdar://problem/6213955> clang ObjC rewriter: rewriter doesn't appear to support @property and @synthesize.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60700 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Rewriter')
-rw-r--r-- | test/Rewriter/properties.m | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/test/Rewriter/properties.m b/test/Rewriter/properties.m new file mode 100644 index 0000000000..38ba086aa7 --- /dev/null +++ b/test/Rewriter/properties.m @@ -0,0 +1,53 @@ +// RUN: clang -rewrite-objc %s -o - + +@interface Foo { + int i; + int rrrr; + Foo *o; +} +@property int i; +@property(readonly) int rrrr; +@property int d; +@property(retain) Foo *o; + +- (void)foo; +@end + +@implementation Foo +@synthesize i; +@synthesize rrrr; +@synthesize o; + +@dynamic d; + +- (void)foo { + i = 99; +} + +- (int)bar { + return i; +} +@end + +@interface Bar { +} +@end + +@implementation Bar + +static int func(int i); + +- (void)baz { + Foo *obj1, *obj2; + int i; + if (obj1.i == obj2.rrrr) + obj1.i = 33; + obj1.i = func(obj2.rrrr); + obj1.i = obj2.rrrr; + obj1.i = (obj2.rrrr); + [obj1 setI:[obj2 rrrr]]; + obj1.i = [obj2 rrrr]; + i = obj1.o.i; + obj1.o.i = 77; +} +@end |