[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / clang / test / SemaObjC / property-category-impl.m
blobb914862cd9228763da07618769b05ee5143981f2
1 // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s
2 // expected-no-diagnostics
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 */
8 @interface MyClass 
10     int        _foo;
12 @property(readonly)    int        foo;
13 @end
15 @implementation MyClass
16 - (int) foo        { return _foo; }
17 @end
19 @interface MyClass (private)
20 @property(readwrite)    int        foo;
21 @end
23 @implementation MyClass (private)
24 - (void) setFoo:(int)foo    { _foo = foo; }
25 @end
27 @interface MyClass (public)
28 @property(readwrite)    int        foo; 
29 @end
31 @implementation MyClass (public)
32 @end 
34 // No warn of unimplemented property of protocols in category,
35 // when those properties will be implemented in category's primary
36 // class or one of its super classes.
37 @interface HBSuperclass
38 @property (nonatomic) char myProperty;
39 @property (nonatomic) char myProperty2;
40 @end
42 @interface HBClass : HBSuperclass
43 @end
45 @protocol HBProtocol
46 @property (nonatomic) char myProperty;
47 @property (nonatomic) char myProperty2;
48 @end
50 @interface HBSuperclass (HBSCategory)<HBProtocol>
51 @end
53 @implementation HBSuperclass (HBSCategory)
54 @end
56 @interface HBClass (HBCategory)<HBProtocol>
57 @end
59 @implementation HBClass (HBCategory)
60 @end