blob: ec02c2ba7db9786f97ef1586ec6ac3c1e3a18526 [file] [log] [blame]
Steve Naroffd8df6822008-12-18 15:50:41 +00001// RUN: clang -fsyntax-only -verify %s
2@protocol NSObject
3- retain;
4- release;
5@end
6
7@interface NSObject
8- init;
9- dealloc;
10@end
11
12@protocol Foo <NSObject>
13@end
14
15@protocol Bar <Foo>
16@end
17
18@interface Baz : NSObject {
19 id <Foo> _foo;
20 id <Bar> _bar;
21}
22- (id)initWithFoo:(id <Foo>)foo bar:(id <Bar>)bar;
23@end
24
25@implementation Baz
26
27- (id)init
28{
29 return [self initWithFoo:0 bar:0];
30}
31
32- (id)initWithFoo:(id <Foo>)foo bar:(id <Bar>)bar
33{
34 self = [super init];
35 if (self != 0) {
36 _foo = [foo retain];
37 _bar = [bar retain];
38 }
39 return self;
40}
41
42- (void)dealloc
43{
44 [_foo release];
45 [_bar release];
46 [super dealloc];
47}
48
49@end
50