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