// RUN: %clang_cc1 -verify %s @protocol P1 @end @protocol P2 @end @protocol P3 @end @interface NSData @end @interface MutableNSData : NSData @end @interface Base : NSData <P1> @property(readonly) id ref; @property(readonly) Base *p_base; @property(readonly) NSData *nsdata; @property(readonly) NSData * m_nsdata; @end @interface Data : Base <P1, P2> @property(readonly) NSData *ref; @property(readonly) Data *p_base; @property(readonly) MutableNSData * m_nsdata; @end @interface MutedData: Data @property(readonly) id p_base; @end @interface ConstData : Data <P1, P2, P3> @property(readonly) ConstData *p_base; @end void foo(Base *b, id x) { [ b setRef: x ]; // expected-warning {{method '-setRef:' not found}} }