annotate clang/test/FixIt/typo.m @ 266:00f31e85ec16 default tip

Added tag current for changeset 31d058e83c98
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 14 Oct 2023 10:13:55 +0900
parents c4bab56944e8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: %clang_cc1 -fsyntax-only -triple x86_64-apple-darwin10 -DNON_FIXITS -verify -Wno-objc-root-class %s
anatofuz
parents:
diff changeset
2 // RUN: cp %s %t
anatofuz
parents:
diff changeset
3 // RUN: not %clang_cc1 -x objective-c -fsyntax-only -triple x86_64-apple-darwin10 -fixit -Wno-objc-root-class %t
anatofuz
parents:
diff changeset
4 // RUN: %clang_cc1 -x objective-c -fsyntax-only -triple x86_64-apple-darwin10 -pedantic -Werror -Wno-objc-root-class %t
anatofuz
parents:
diff changeset
5 // RUN: grep "@implementation Sub3" %t
anatofuz
parents:
diff changeset
6
anatofuz
parents:
diff changeset
7 @interface NSString // expected-note 2{{'NSString' declared here}}
anatofuz
parents:
diff changeset
8 + (int)method:(int)x;
anatofuz
parents:
diff changeset
9 @end
anatofuz
parents:
diff changeset
10
236
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
11 void test(void) {
150
anatofuz
parents:
diff changeset
12 NSstring *str = @"A string"; // expected-error{{unknown type name 'NSstring'; did you mean 'NSString'?}}
anatofuz
parents:
diff changeset
13 }
anatofuz
parents:
diff changeset
14
anatofuz
parents:
diff changeset
15 @protocol P1
anatofuz
parents:
diff changeset
16 @optional
anatofuz
parents:
diff changeset
17 @property int *sprop; // expected-note{{'sprop' declared here}}
anatofuz
parents:
diff changeset
18 @end
anatofuz
parents:
diff changeset
19
anatofuz
parents:
diff changeset
20 @interface A
anatofuz
parents:
diff changeset
21 {
anatofuz
parents:
diff changeset
22 int his_ivar; // expected-note 2{{'his_ivar' declared here}}
anatofuz
parents:
diff changeset
23 float wibble;
anatofuz
parents:
diff changeset
24 }
anatofuz
parents:
diff changeset
25 - (void)methodA;
anatofuz
parents:
diff changeset
26 + (void)methodA;
anatofuz
parents:
diff changeset
27 @property int his_prop; // expected-note{{'his_prop' declared here}}
anatofuz
parents:
diff changeset
28 @end
anatofuz
parents:
diff changeset
29
anatofuz
parents:
diff changeset
30 @interface B : A <P1>
anatofuz
parents:
diff changeset
31 {
anatofuz
parents:
diff changeset
32 int her_ivar; // expected-note 2{{'her_ivar' declared here}}
anatofuz
parents:
diff changeset
33 }
anatofuz
parents:
diff changeset
34
anatofuz
parents:
diff changeset
35 @property int her_prop; // expected-note{{'her_prop' declared here}}
anatofuz
parents:
diff changeset
36 - (void)inst_method1:(int)a;
anatofuz
parents:
diff changeset
37 + (void)class_method1;
anatofuz
parents:
diff changeset
38 @end
anatofuz
parents:
diff changeset
39
anatofuz
parents:
diff changeset
40 @implementation A
anatofuz
parents:
diff changeset
41 @synthesize his_prop = his_ivar;
anatofuz
parents:
diff changeset
42 - (void)methodA { }
anatofuz
parents:
diff changeset
43 + (void)methodA { }
anatofuz
parents:
diff changeset
44 @end
anatofuz
parents:
diff changeset
45
anatofuz
parents:
diff changeset
46 @implementation B
anatofuz
parents:
diff changeset
47 @synthesize her_prop = her_ivar;
anatofuz
parents:
diff changeset
48
anatofuz
parents:
diff changeset
49 -(void)inst_method1:(int)a {
anatofuz
parents:
diff changeset
50 herivar = a; // expected-error{{use of undeclared identifier 'herivar'; did you mean 'her_ivar'?}}
anatofuz
parents:
diff changeset
51 hisivar = a; // expected-error{{use of undeclared identifier 'hisivar'; did you mean 'his_ivar'?}}
anatofuz
parents:
diff changeset
52 self->herivar = a; // expected-error{{'B' does not have a member named 'herivar'; did you mean 'her_ivar'?}}
anatofuz
parents:
diff changeset
53 self->hisivar = a; // expected-error{{'B' does not have a member named 'hisivar'; did you mean 'his_ivar'?}}
anatofuz
parents:
diff changeset
54 self.hisprop = 0; // expected-error{{property 'hisprop' not found on object of type 'B *'; did you mean 'his_prop'?}}
anatofuz
parents:
diff changeset
55 self.herprop = 0; // expected-error{{property 'herprop' not found on object of type 'B *'; did you mean 'her_prop'?}}
anatofuz
parents:
diff changeset
56 self.s_prop = 0; // expected-error{{property 's_prop' not found on object of type 'B *'; did you mean 'sprop'?}}
anatofuz
parents:
diff changeset
57 }
anatofuz
parents:
diff changeset
58
anatofuz
parents:
diff changeset
59 +(void)class_method1 {
anatofuz
parents:
diff changeset
60 }
anatofuz
parents:
diff changeset
61 @end
anatofuz
parents:
diff changeset
62
anatofuz
parents:
diff changeset
63 void test_message_send(B* b) {
anatofuz
parents:
diff changeset
64 [NSstring method:17]; // expected-error{{unknown receiver 'NSstring'; did you mean 'NSString'?}}
anatofuz
parents:
diff changeset
65 }
anatofuz
parents:
diff changeset
66
anatofuz
parents:
diff changeset
67 @interface Collide // expected-note{{'Collide' declared here}}
anatofuz
parents:
diff changeset
68 {
anatofuz
parents:
diff changeset
69 @public
anatofuz
parents:
diff changeset
70 int value; // expected-note{{'value' declared here}}
anatofuz
parents:
diff changeset
71 }
anatofuz
parents:
diff changeset
72
anatofuz
parents:
diff changeset
73 @property int value; // expected-note{{'value' declared here}}
anatofuz
parents:
diff changeset
74 @end
anatofuz
parents:
diff changeset
75
anatofuz
parents:
diff changeset
76 @implementation Collide
anatofuz
parents:
diff changeset
77 @synthesize value = value;
anatofuz
parents:
diff changeset
78 @end
anatofuz
parents:
diff changeset
79
anatofuz
parents:
diff changeset
80 void test2(Collide *a) {
anatofuz
parents:
diff changeset
81 a.valu = 17; // expected-error{{property 'valu' not found on object of type 'Collide *'; did you mean 'value'?}}
anatofuz
parents:
diff changeset
82 a->vale = 17; // expected-error{{'Collide' does not have a member named 'vale'; did you mean 'value'?}}
anatofuz
parents:
diff changeset
83 }
anatofuz
parents:
diff changeset
84
anatofuz
parents:
diff changeset
85 #ifdef NON_FIXITS
anatofuz
parents:
diff changeset
86 @interface Derived : Collid // expected-error{{cannot find interface declaration for 'Collid', superclass of 'Derived'; did you mean 'Collide'?}}
anatofuz
parents:
diff changeset
87 @end
anatofuz
parents:
diff changeset
88 #endif
anatofuz
parents:
diff changeset
89
anatofuz
parents:
diff changeset
90 #ifdef NON_FIXITS
anatofuz
parents:
diff changeset
91 @protocol NetworkSocket // expected-note{{'NetworkSocket' declared here}}
anatofuz
parents:
diff changeset
92 - (int)send:(void*)buffer bytes:(int)bytes;
anatofuz
parents:
diff changeset
93 @end
anatofuz
parents:
diff changeset
94
anatofuz
parents:
diff changeset
95 @interface IPv6 <Network_Socket> // expected-error{{cannot find protocol declaration for 'Network_Socket'; did you mean 'NetworkSocket'?}}
anatofuz
parents:
diff changeset
96 @end
anatofuz
parents:
diff changeset
97 #endif
anatofuz
parents:
diff changeset
98
anatofuz
parents:
diff changeset
99 @interface Super
anatofuz
parents:
diff changeset
100 - (int)method; // expected-note{{using}}
anatofuz
parents:
diff changeset
101 - (int)method2;
anatofuz
parents:
diff changeset
102 - (int)method3:(id)x;
anatofuz
parents:
diff changeset
103 @end
anatofuz
parents:
diff changeset
104
anatofuz
parents:
diff changeset
105 @interface Sub : Super
anatofuz
parents:
diff changeset
106 - (int)method; // expected-note{{also found}}
anatofuz
parents:
diff changeset
107 @end
anatofuz
parents:
diff changeset
108
anatofuz
parents:
diff changeset
109 @implementation Sub
anatofuz
parents:
diff changeset
110 - (int)method {
anatofuz
parents:
diff changeset
111 return [supper method]; // expected-error{{unknown receiver 'supper'; did you mean 'super'?}}
anatofuz
parents:
diff changeset
112 }
anatofuz
parents:
diff changeset
113
anatofuz
parents:
diff changeset
114 @end
anatofuz
parents:
diff changeset
115
anatofuz
parents:
diff changeset
116 @interface Sub2 : Super
anatofuz
parents:
diff changeset
117 - (int)method2;
anatofuz
parents:
diff changeset
118 @end
anatofuz
parents:
diff changeset
119
anatofuz
parents:
diff changeset
120 @implementation Sub2
anatofuz
parents:
diff changeset
121 - (int)method2 {
anatofuz
parents:
diff changeset
122 return [supper method2]; // expected-error{{unknown receiver 'supper'; did you mean 'super'?}}
anatofuz
parents:
diff changeset
123 }
anatofuz
parents:
diff changeset
124 @end
anatofuz
parents:
diff changeset
125
anatofuz
parents:
diff changeset
126 @interface Ivar
anatofuz
parents:
diff changeset
127 @end
anatofuz
parents:
diff changeset
128
anatofuz
parents:
diff changeset
129 @protocol Proto
anatofuz
parents:
diff changeset
130 @property (retain) id ivar;
anatofuz
parents:
diff changeset
131 @end
anatofuz
parents:
diff changeset
132
anatofuz
parents:
diff changeset
133 #ifdef NON_FIXITS
anatofuz
parents:
diff changeset
134 @interface User <Proto>
anatofuz
parents:
diff changeset
135 - (void)method; // expected-note{{also found}}
anatofuz
parents:
diff changeset
136 @end
anatofuz
parents:
diff changeset
137
anatofuz
parents:
diff changeset
138 @implementation User
anatofuz
parents:
diff changeset
139 @synthesize ivar;
anatofuz
parents:
diff changeset
140
anatofuz
parents:
diff changeset
141 - (void)method {
anatofuz
parents:
diff changeset
142 // Test that we don't correct 'ivar' to 'Ivar' e
anatofuz
parents:
diff changeset
143 [ivar method]; // expected-warning{{multiple methods named 'method' found}}
anatofuz
parents:
diff changeset
144 }
anatofuz
parents:
diff changeset
145 @end
anatofuz
parents:
diff changeset
146 #endif
anatofuz
parents:
diff changeset
147
anatofuz
parents:
diff changeset
148 void f(A *a) {
anatofuz
parents:
diff changeset
149 f(a) // expected-error{{expected ';' after expression}}
anatofuz
parents:
diff changeset
150 [a methodA] // expected-error{{expected ';' after expression}}
anatofuz
parents:
diff changeset
151 [A methodA] // expected-error{{expected ';' after expression}}
anatofuz
parents:
diff changeset
152 }
anatofuz
parents:
diff changeset
153
anatofuz
parents:
diff changeset
154 #ifdef NON_FIXITS
anatofuz
parents:
diff changeset
155 @interface Sub3 : Super
anatofuz
parents:
diff changeset
156 - (int)method3;
anatofuz
parents:
diff changeset
157 @end
anatofuz
parents:
diff changeset
158
anatofuz
parents:
diff changeset
159 @implementation Sub3
anatofuz
parents:
diff changeset
160 - (int)method3 {
anatofuz
parents:
diff changeset
161 int x = super; // expected-error{{use of undeclared identifier 'super'}}
anatofuz
parents:
diff changeset
162 return 0;
anatofuz
parents:
diff changeset
163 }
anatofuz
parents:
diff changeset
164 @end
anatofuz
parents:
diff changeset
165 #endif