Patrick Beard | b2f6820 | 2012-04-06 18:12:22 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s |
Erik Verbruggen | 90ec96f | 2011-12-08 09:58:43 +0000 | [diff] [blame] | 2 | |
| 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}} |
| 9 | |
| 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}} |
| 16 | |
| 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}} |
| 21 | |
| 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}} |
| 26 | |
| 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}} |
| 31 | |
| 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 |
| 39 | |
| 40 | @interface I2 {} |
| 41 | @protocol P2; // expected-error {{illegal interface qualifier}} |
| 42 | @class C2; // expected-error {{illegal interface qualifier}} |
| 43 | @end |
| 44 | |
| 45 | @interface I3 |
| 46 | @end |
| 47 | @implementation I3 |
| 48 | - Meth {} |
| 49 | + Cls {} |
| 50 | @protocol P3; |
| 51 | @end |