1*67e74705SXin Li// RUN: %clang_cc1 -fsyntax-only -Wno-objc-root-class -verify %s 2*67e74705SXin Li// rdar://12233858 3*67e74705SXin Li 4*67e74705SXin Li@protocol P 5*67e74705SXin Li@end 6*67e74705SXin Li 7*67e74705SXin Li@interface I @end 8*67e74705SXin Li 9*67e74705SXin Li@implementation I<P> @end // expected-error {{@implementation declaration cannot be protocol qualified}} 10*67e74705SXin Li 11*67e74705SXin Li@interface J < P,P > 12*67e74705SXin Li@end 13*67e74705SXin Li 14*67e74705SXin Li 15*67e74705SXin Li@implementation J < P,P > // expected-error {{@implementation declaration cannot be protocol qualified}} 16*67e74705SXin Li@end 17*67e74705SXin Li 18*67e74705SXin Li@interface K @end 19*67e74705SXin Li 20*67e74705SXin Li@implementation K <P // expected-error {{@implementation declaration cannot be protocol qualified}} expected-note{{to match this '<'}} 21*67e74705SXin Li@end // expected-error {{expected '>'}} 22*67e74705SXin Li 23*67e74705SXin Li// rdar://13920026 24*67e74705SXin Li@implementation I (Cat) <P> // expected-error {{@implementation declaration cannot be protocol qualified}} 25*67e74705SXin Li- (void) Meth {} 26*67e74705SXin Li@end 27*67e74705SXin Li 28*67e74705SXin Li@implementation I (Cat1) <P // expected-error {{@implementation declaration cannot be protocol qualified}} 29*67e74705SXin Li@end // expected-error {{expected '>'}} 30