150
|
1 // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s
|
|
2
|
|
3 @interface I {
|
|
4 int Y;
|
|
5 }
|
|
6 @property int X;
|
|
7 @property int Y;
|
|
8 @property int Z;
|
|
9 @end
|
|
10
|
|
11 @implementation I
|
|
12 @dynamic X; // expected-note {{previous declaration is here}}
|
|
13 @dynamic X; // expected-error {{property 'X' is already implemented}}
|
|
14 @synthesize Y; // expected-note {{previous use is here}}
|
|
15 @synthesize Z=Y; // expected-error {{synthesized properties 'Z' and 'Y' both claim instance variable 'Y'}}
|
|
16 @end
|
|
17
|
|
18 // rdar://8703553
|
|
19 @interface IDEPathCell
|
|
20 {
|
|
21 @private
|
|
22 id _gradientStyle;
|
|
23 }
|
|
24
|
|
25 @property (readwrite, assign, nonatomic) id gradientStyle;
|
|
26 @end
|
|
27
|
|
28 @implementation IDEPathCell
|
|
29
|
|
30 @synthesize gradientStyle = _gradientStyle;
|
|
31 - (void)setGradientStyle:(id)value { }
|
|
32
|
|
33 + (id)_componentCellWithRepresentedObject {
|
|
34 return self.gradientStyle;
|
|
35 }
|
|
36 @end
|
|
37
|
|
38 // rdar://11054153
|
|
39 @interface rdar11054153
|
|
40 @property int P; // expected-error {{type of property 'P' ('int') does not match type of accessor 'P' ('void')}}
|
|
41 - (void)P; // expected-note {{declared here}}
|
|
42
|
|
43 @property int P1; // expected-warning {{type of property 'P1' does not match type of accessor 'P1'}}
|
|
44 - (double) P1; // expected-note {{declared here}}
|
|
45
|
|
46 @property int P2; // expected-error {{type of property 'P2' ('int') does not match type of accessor 'P2' ('double *')}}
|
|
47 - (double*)P2; // expected-note {{declared here}}
|
|
48
|
|
49 @end
|