1 | // RUN: %clang_cc1 -triple x86_64-apple-darwin9 -fsyntax-only -verify -Wno-objc-root-class %s |
2 | |
3 | @interface I |
4 | - Meth; // expected-note 2 {{method 'Meth' declared here}} |
5 | - unavailableMeth __attribute__((availability(macosx,unavailable))); |
6 | - unavailableMeth2 __attribute__((unavailable)); |
7 | @end |
8 | |
9 | @implementation I // expected-warning {{method definition for 'Meth' not found}} |
10 | @end |
11 | |
12 | @implementation I(CAT) |
13 | - Meth {return 0;} // expected-warning {{category is implementing a method which will also be implemented by its primary class}} |
14 | @end |
15 | |
16 | // rdar://40634455 |
17 | @interface MyClass |
18 | -(void)mymeth __attribute__((availability(macos, introduced=100))); // expected-note{{here}} |
19 | @end |
20 | @implementation MyClass // expected-warning{{'mymeth' not found}} |
21 | @end |
22 | |
23 | #pragma GCC diagnostic ignored "-Wincomplete-implementation" |
24 | @interface I2 |
25 | - Meth; // expected-note{{method 'Meth' declared here}} |
26 | @end |
27 | |
28 | @implementation I2 |
29 | @end |
30 | |
31 | @implementation I2(CAT) |
32 | - Meth {return 0;} // expected-warning {{category is implementing a method which will also be implemented by its primary class}} |
33 | @end |
34 | |
35 | @interface Q |
36 | @end |
37 | |
38 | // rdar://10336158 |
39 | @implementation Q |
40 | |
41 | __attribute__((visibility("default"))) |
42 | @interface QN // expected-error {{Objective-C declarations may only appear in global scope}} |
43 | { |
44 | } |
45 | @end |
46 | |
47 | @end |
48 | |
49 | // rdar://15580969 |
50 | typedef char BOOL; |
51 | |
52 | @protocol NSObject |
53 | - (BOOL)isEqual:(id)object; |
54 | @end |
55 | |
56 | @interface NSObject <NSObject> |
57 | @end |
58 | |
59 | @protocol NSApplicationDelegate <NSObject> |
60 | - (void)ImpleThisMethod; // expected-note {{method 'ImpleThisMethod' declared here}} |
61 | @end |
62 | |
63 | @interface AppDelegate : NSObject <NSApplicationDelegate> |
64 | @end |
65 | |
66 | @implementation AppDelegate (MRRCategory) |
67 | |
68 | - (BOOL)isEqual:(id)object |
69 | { |
70 | return __objc_no; |
71 | } |
72 | |
73 | - (void)ImpleThisMethod {} // expected-warning {{category is implementing a method which will also be implemented by its primary class}} |
74 | @end |
75 | |