// RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s
@protocolP@property(readonly)int X;// expected-note {{property declared here}}
@end@protocolP1<P>@property(copy)id ID;@end@interfaceI@end@interfaceI(Cat)<P>@propertyfloat X;// expected-warning {{property type 'float' is incompatible with type 'int' inherited from 'P'}}
@end@interfaceI(Cat2)<P1>@property(retain)id ID;// expected-warning {{'copy' attribute on property 'ID' does not match the property inherited from 'P1'}}
@end@interfaceA@property(assign)int categoryProperty;@end// Don't issue warning on unimplemented setter/getter
// because property is @dynamic.
@implementationA@dynamic categoryProperty;@end