Steve Naroff | d8df682 | 2008-12-18 15:50:41 +0000 | [diff] [blame^] | 1 | // 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 |