]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/SemaObjC/protocol-lookup.m
Vendor import of clang trunk r130700:
[FreeBSD/FreeBSD.git] / test / SemaObjC / protocol-lookup.m
1 // RUN: %clang_cc1 -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 - dealloc
43 {
44         [_foo release];
45         [_bar release];
46         [super dealloc];
47         return 0;
48 }
49
50 @end
51