1 // RUN: %clang_cc1 -fsyntax-only -verify %s 2 // expected-no-diagnostics 3 4 @protocol P0 5 -bar; 6 @end 7 8 @interface A <P0> 9 @end 10 11 // Interface conforms to inherited protocol 12 13 @interface B0 : A <P0> 14 @end 15 16 @implementation B0 17 @end 18 19 // Interface conforms to a protocol which extends another. The other 20 // protocol is inherited, and extended methods are implemented. 21 22 @protocol P1 <P0> 23 -foo; 24 @end 25 26 @interface B1 : A <P1> 27 @end 28 29 @implementation B1 30 -foo { return 0; }; 31 @end 32 33 // Interface conforms to a protocol whose methods are provided by an 34 // alternate inherited protocol. 35 36 @protocol P2 37 -bar; 38 @end 39 40 @interface B2 : A <P2> 41 @end 42 43 @implementation B2 44 @end 45 46 // Interface conforms to a protocol whose methods are provided by a base class. 47 48 @interface A1 49 -bar; 50 @end 51 52 @interface B3 : A1 <P2> 53 @end 54 55 @implementation B3 56 @end 57 58