• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// RUN: %clang_cc1  -fsyntax-only -verify -Wno-objc-root-class -disable-objc-default-synthesize-properties %s
2
3@protocol PROTOCOL0
4@required
5@property float MyProperty0; // expected-note 2 {{property declared}}
6@end
7
8@protocol PROTOCOL<PROTOCOL0>
9@required
10@property float MyProperty; // expected-note 2 {{property declared}}
11@optional
12@property float OptMyProperty;
13@end
14
15@interface I <PROTOCOL>
16@end
17
18@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}}
22
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
40