blob: 84dc3ad7f7259f662c5df1be82fb4d668d38bb24 [file] [log] [blame]
Nuno Lopes9c08f272008-12-27 23:47:34 +00001// RUN: clang -fsyntax-only -verify %s
2
Fariborz Jahanian1ac2bc42008-12-06 23:03:39 +00003@protocol P
4 @property(readonly) int X;
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' does not match property type inherited from 'P'}}
16@end
17
18@interface I (Cat2) <P1>
19@property (retain) id ID; // expected-warning {{property 'ID' 'copy' attribute does not match the property inherited from 'P1'}}
20@end
21
22
Fariborz Jahanian804058e2008-12-22 19:05:31 +000023@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