1 // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s 2 3 @protocol P 4 @property(readonly) int X; // expected-note {{property declared here}} 5 @end 6 7 @protocol P1<P> 8 @property (copy) id ID; 9 @end 10 11 @interface I 12 @end 13 14 @interface I (Cat) <P> 15 @property float X; // expected-warning {{property type 'float' is incompatible with type 'int' inherited from 'P'}} 16 @end 17 18 @interface I (Cat2) <P1> 19 @property (retain) id ID; // expected-warning {{'copy' attribute on property 'ID' does not match the property inherited from 'P1'}} 20 @end 21 22 23 @interface A 24 @property(assign) int categoryProperty; 25 @end 26 27 // Don't issue warning on unimplemented setter/getter 28 // because property is @dynamic. 29 @implementation A 30 @dynamic categoryProperty; 31 @end 32