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