// RUN: %clang_cc1 -fsyntax-only -verify %s | |
@protocol P0 | |
-bar; | |
@end | |
@interface A <P0> | |
@end | |
// Interface conforms to inherited protocol | |
@interface B0 : A <P0> | |
@end | |
@implementation B0 | |
@end | |
// Interface conforms to a protocol which extends another. The other | |
// protocol is inherited, and extended methods are implemented. | |
@protocol P1 <P0> | |
-foo; | |
@end | |
@interface B1 : A <P1> | |
@end | |
@implementation B1 | |
-foo { return 0; }; | |
@end | |
// Interface conforms to a protocol whose methods are provided by an | |
// alternate inherited protocol. | |
@protocol P2 | |
-bar; | |
@end | |
@interface B2 : A <P2> | |
@end | |
@implementation B2 | |
@end | |
// Interface conforms to a protocol whose methods are provided by a base class. | |
@interface A1 | |
-bar; | |
@end | |
@interface B3 : A1 <P2> | |
@end | |
@implementation B3 | |
@end | |