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