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