1 | // RUN: %clang_cc1 -verify %s |
2 | |
3 | @protocol P1 @end |
4 | @protocol P2 @end |
5 | @protocol P3 @end |
6 | |
7 | @interface NSData @end |
8 | |
9 | @interface MutableNSData : NSData @end |
10 | |
11 | @interface Base : NSData <P1> // expected-note {{receiver is instance of class declared here}} |
12 | @property(readonly) id ref; |
13 | @property(readonly) Base *p_base; |
14 | @property(readonly) NSData *nsdata; |
15 | @property(readonly) NSData * m_nsdata; |
16 | @end |
17 | |
18 | @interface Data : Base <P1, P2> |
19 | @property(readonly) NSData *ref; |
20 | @property(readonly) Data *p_base; |
21 | @property(readonly) MutableNSData * m_nsdata; |
22 | @end |
23 | |
24 | @interface MutedData: Data |
25 | @property(readonly) id p_base; |
26 | @end |
27 | |
28 | @interface ConstData : Data <P1, P2, P3> |
29 | @property(readonly) ConstData *p_base; |
30 | @end |
31 | |
32 | void foo(Base *b, id x) { |
33 | [ b setRef: x ]; // expected-warning {{method '-setRef:' not found}} |
34 | } |
35 | |