xref: /aosp_15_r20/external/clang/test/Parser/objc-error-qualified-implementation.m (revision 67e74705e28f6214e480b399dd47ea732279e315)
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