1 | // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s |
2 | // expected-no-diagnostics |
3 | |
4 | /* This test is for categories which don't implement the accessors but some accessors are |
5 | implemented in their base class implementation. In this case,no warning must be issued. |
6 | */ |
7 | |
8 | @interface MyClass |
9 | { |
10 | int _foo; |
11 | } |
12 | @property(readonly) int foo; |
13 | @end |
14 | |
15 | @implementation MyClass |
16 | - (int) foo { return _foo; } |
17 | @end |
18 | |
19 | @interface MyClass (private) |
20 | @property(readwrite) int foo; |
21 | @end |
22 | |
23 | @implementation MyClass (private) |
24 | - (void) setFoo:(int)foo { _foo = foo; } |
25 | @end |
26 | |
27 | @interface MyClass (public) |
28 | @property(readwrite) int foo; |
29 | @end |
30 | |
31 | @implementation MyClass (public) |
32 | @end |
33 | |
34 | // rdar://12568064 |
35 | // No warn of unimplemented property of protocols in category, |
36 | // when those properties will be implemented in category's primary |
37 | // class or one of its super classes. |
38 | @interface HBSuperclass |
39 | @property (nonatomic) char myProperty; |
40 | @property (nonatomic) char myProperty2; |
41 | @end |
42 | |
43 | @interface HBClass : HBSuperclass |
44 | @end |
45 | |
46 | @protocol HBProtocol |
47 | @property (nonatomic) char myProperty; |
48 | @property (nonatomic) char myProperty2; |
49 | @end |
50 | |
51 | @interface HBSuperclass (HBSCategory)<HBProtocol> |
52 | @end |
53 | |
54 | @implementation HBSuperclass (HBSCategory) |
55 | @end |
56 | |
57 | @interface HBClass (HBCategory)<HBProtocol> |
58 | @end |
59 | |
60 | @implementation HBClass (HBCategory) |
61 | @end |
62 | |