[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / Parser / missing-end-4.m
blob84c3967d9973728277b8362a3bff6b0d8ef984ac
1 // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s
3 @interface X1
4 @end
5 @implementation X1 // expected-note {{implementation started here}}
6 @interface Y1 // expected-error {{missing '@end'}}
7 @end
8 @end // expected-error {{'@end' must appear in an Objective-C context}}
10 @interface X2
11 @end
12 @implementation X2 // expected-note {{implementation started here}}
13 @protocol Y2 // expected-error {{missing '@end'}}
14 @end
15 @end // expected-error {{'@end' must appear in an Objective-C context}}
17 @interface X6 // expected-note {{class started here}}
18 @interface X7 // expected-error {{missing '@end'}}
19 @end
20 @end // expected-error {{'@end' must appear in an Objective-C context}}
22 @protocol P1 // expected-note {{protocol started here}}
23 @interface P2 // expected-error {{missing '@end'}}
24 @end
25 @end // expected-error {{'@end' must appear in an Objective-C context}}
27 @interface X4 // expected-note {{class started here}}
28 @implementation X4 // expected-error {{missing '@end'}}
29 @end
30 @end // expected-error {{'@end' must appear in an Objective-C context}}
32 @interface I
33 @end
34 @implementation I
35 @protocol P; // forward declarations of protocols in @implementations is allowed
36 @class C; // forward declarations of classes in @implementations is allowed
37 - (C<P>*) MyMeth {}
38 @end
40 @interface I2 {} // expected-note {{class started here}}
41 @protocol P2; // expected-error {{missing '@end'}}
42 @class C2;
43 @end // expected-error {{'@end' must appear in an Objective-C context}}
45 @interface I3
46 @end
47 @implementation I3
48 - Meth {}
49 + Cls {}
50 @protocol P3;
51 @end