From 8599e7a394e7ed44a32dfe64733125e095e3f28c Mon Sep 17 00:00:00 2001 From: Steve Naroff Date: Mon, 8 Dec 2008 16:43:47 +0000 Subject: Handle chained/nested property 'getters' (obj.p1.p2.p3). This is a follow-up to fixing 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 --- test/Rewriter/properties.m | 53 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 test/Rewriter/properties.m (limited to 'test/Rewriter') 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 -- cgit v1.2.1