Home | History | Annotate | Download | only in SemaObjC
      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