150
|
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
|