blob: 1438cf595d1fb24b45617e3d31ce7a34c96ed6b7 [file] [log] [blame]
Patrick Beardb2f68202012-04-06 18:12:22 +00001// RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s
Fariborz Jahanian3ac1eda2010-01-20 01:51:55 +00002
3@protocol PROTOCOL0
4@required
Fariborz Jahanianb8607392011-08-27 21:55:47 +00005@property float MyProperty0; // expected-note 2 {{property declared}}
Fariborz Jahanian3ac1eda2010-01-20 01:51:55 +00006@end
7
8@protocol PROTOCOL<PROTOCOL0>
9@required
Fariborz Jahanianb8607392011-08-27 21:55:47 +000010@property float MyProperty; // expected-note 2 {{property declared}}
Fariborz Jahanian3ac1eda2010-01-20 01:51:55 +000011@optional
12@property float OptMyProperty;
13@end
14
15@interface I <PROTOCOL>
16@end
17
Fariborz Jahanianb8607392011-08-27 21:55:47 +000018@implementation I @end // expected-warning {{property 'MyProperty0' requires method 'MyProperty0' to be defined}} \
19 // expected-warning {{property 'MyProperty0' requires method 'setMyProperty0:' to be defined}}\
20 // expected-warning {{property 'MyProperty' requires method 'MyProperty' to be defined}} \
21 // expected-warning {{property 'MyProperty' requires method 'setMyProperty:' to be defined}}
Fariborz Jahaniana929ec72011-09-27 00:23:52 +000022
23// rdar://10120691
24// property is implemented in super class. No warning
25
26@protocol PROTOCOL1
27@property int MyProp;
28@end
29
30@interface superclass
31@property int MyProp;
32@end
33
34@interface childclass : superclass <PROTOCOL1>
35@end
36
37@implementation childclass
38@end
39