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