c_src: update for kill is
[nit.git] / c_src / simple_misc_analysis.sep.1.c
1 #include "simple_misc_analysis.sep.0.h"
2 /* method simple_misc_analysis#ToolContext#simple_misc_analysis_phase for (self: ToolContext): Phase */
3 val* simple_misc_analysis__ToolContext__simple_misc_analysis_phase(val* self) {
4 val* var /* : Phase */;
5 val* var1 /* : Phase */;
6 var1 = self->attrs[COLOR_simple_misc_analysis__ToolContext___64dsimple_misc_analysis_phase].val; /* @simple_misc_analysis_phase on <self:ToolContext> */
7 if (var1 == NULL) {
8 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @simple_misc_analysis_phase");
9 fprintf(stderr, " (%s:%d)\n", "src/simple_misc_analysis.nit", 29);
10 exit(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method simple_misc_analysis#ToolContext#simple_misc_analysis_phase for (self: Object): Phase */
17 val* VIRTUAL_simple_misc_analysis__ToolContext__simple_misc_analysis_phase(val* self) {
18 val* var /* : Phase */;
19 val* var1 /* : Phase */;
20 var1 = simple_misc_analysis__ToolContext__simple_misc_analysis_phase(self);
21 var = var1;
22 RET_LABEL:;
23 return var;
24 }
25 /* method simple_misc_analysis#ToolContext#simple_misc_analysis_phase= for (self: ToolContext, Phase) */
26 void simple_misc_analysis__ToolContext__simple_misc_analysis_phase_61d(val* self, val* p0) {
27 self->attrs[COLOR_simple_misc_analysis__ToolContext___64dsimple_misc_analysis_phase].val = p0; /* @simple_misc_analysis_phase on <self:ToolContext> */
28 RET_LABEL:;
29 }
30 /* method simple_misc_analysis#ToolContext#simple_misc_analysis_phase= for (self: Object, Phase) */
31 void VIRTUAL_simple_misc_analysis__ToolContext__simple_misc_analysis_phase_61d(val* self, val* p0) {
32 simple_misc_analysis__ToolContext__simple_misc_analysis_phase_61d(self, p0);
33 RET_LABEL:;
34 }
35 /* method simple_misc_analysis#SimpleMiscAnalysisPhase#process_nmodule for (self: SimpleMiscAnalysisPhase, AModule) */
36 void simple_misc_analysis__SimpleMiscAnalysisPhase__process_nmodule(val* self, val* p0) {
37 val* var_nmodule /* var nmodule: AModule */;
38 val* var /* : ToolContext */;
39 var_nmodule = p0;
40 var = ((val* (*)(val*))(self->class->vft[COLOR_phase__Phase__toolcontext]))(self) /* toolcontext on <self:SimpleMiscAnalysisPhase>*/;
41 ((void (*)(val*, val*))(var_nmodule->class->vft[COLOR_simple_misc_analysis__AModule__do_simple_misc_analysis]))(var_nmodule, var) /* do_simple_misc_analysis on <var_nmodule:AModule>*/;
42 RET_LABEL:;
43 }
44 /* method simple_misc_analysis#SimpleMiscAnalysisPhase#process_nmodule for (self: Object, AModule) */
45 void VIRTUAL_simple_misc_analysis__SimpleMiscAnalysisPhase__process_nmodule(val* self, val* p0) {
46 simple_misc_analysis__SimpleMiscAnalysisPhase__process_nmodule(self, p0);
47 RET_LABEL:;
48 }
49 /* method simple_misc_analysis#AModule#do_simple_misc_analysis for (self: AModule, ToolContext) */
50 void simple_misc_analysis__AModule__do_simple_misc_analysis(val* self, val* p0) {
51 val* var_toolcontext /* var toolcontext: ToolContext */;
52 val* var /* : SimpleMiscVisitor */;
53 val* var_v /* var v: SimpleMiscVisitor */;
54 var_toolcontext = p0;
55 var = NEW_simple_misc_analysis__SimpleMiscVisitor(&type_simple_misc_analysis__SimpleMiscVisitor);
56 ((void (*)(val*, val*))(var->class->vft[COLOR_simple_misc_analysis__SimpleMiscVisitor__init]))(var, var_toolcontext) /* init on <var:SimpleMiscVisitor>*/;
57 CHECK_NEW_simple_misc_analysis__SimpleMiscVisitor(var);
58 var_v = var;
59 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, self) /* enter_visit on <var_v:SimpleMiscVisitor>*/;
60 RET_LABEL:;
61 }
62 /* method simple_misc_analysis#AModule#do_simple_misc_analysis for (self: Object, ToolContext) */
63 void VIRTUAL_simple_misc_analysis__AModule__do_simple_misc_analysis(val* self, val* p0) {
64 simple_misc_analysis__AModule__do_simple_misc_analysis(self, p0);
65 RET_LABEL:;
66 }
67 /* method simple_misc_analysis#SimpleMiscVisitor#visit for (self: SimpleMiscVisitor, ANode) */
68 void simple_misc_analysis__SimpleMiscVisitor__visit(val* self, val* p0) {
69 val* var_n /* var n: ANode */;
70 var_n = p0;
71 ((void (*)(val*, val*))(var_n->class->vft[COLOR_simple_misc_analysis__ANode__accept_simple_misc]))(var_n, self) /* accept_simple_misc on <var_n:ANode>*/;
72 RET_LABEL:;
73 }
74 /* method simple_misc_analysis#SimpleMiscVisitor#visit for (self: Object, ANode) */
75 void VIRTUAL_simple_misc_analysis__SimpleMiscVisitor__visit(val* self, val* p0) {
76 simple_misc_analysis__SimpleMiscVisitor__visit(self, p0);
77 RET_LABEL:;
78 }
79 /* method simple_misc_analysis#SimpleMiscVisitor#once_count for (self: SimpleMiscVisitor): Int */
80 long simple_misc_analysis__SimpleMiscVisitor__once_count(val* self) {
81 long var /* : Int */;
82 long var1 /* : Int */;
83 var1 = self->attrs[COLOR_simple_misc_analysis__SimpleMiscVisitor___64donce_count].l; /* @once_count on <self:SimpleMiscVisitor> */
84 var = var1;
85 RET_LABEL:;
86 return var;
87 }
88 /* method simple_misc_analysis#SimpleMiscVisitor#once_count for (self: Object): Int */
89 long VIRTUAL_simple_misc_analysis__SimpleMiscVisitor__once_count(val* self) {
90 long var /* : Int */;
91 long var1 /* : Int */;
92 var1 = simple_misc_analysis__SimpleMiscVisitor__once_count(self);
93 var = var1;
94 RET_LABEL:;
95 return var;
96 }
97 /* method simple_misc_analysis#SimpleMiscVisitor#once_count= for (self: SimpleMiscVisitor, Int) */
98 void simple_misc_analysis__SimpleMiscVisitor__once_count_61d(val* self, long p0) {
99 self->attrs[COLOR_simple_misc_analysis__SimpleMiscVisitor___64donce_count].l = p0; /* @once_count on <self:SimpleMiscVisitor> */
100 RET_LABEL:;
101 }
102 /* method simple_misc_analysis#SimpleMiscVisitor#once_count= for (self: Object, Int) */
103 void VIRTUAL_simple_misc_analysis__SimpleMiscVisitor__once_count_61d(val* self, long p0) {
104 simple_misc_analysis__SimpleMiscVisitor__once_count_61d(self, p0);
105 RET_LABEL:;
106 }
107 /* method simple_misc_analysis#SimpleMiscVisitor#toolcontext for (self: SimpleMiscVisitor): ToolContext */
108 val* simple_misc_analysis__SimpleMiscVisitor__toolcontext(val* self) {
109 val* var /* : ToolContext */;
110 val* var1 /* : ToolContext */;
111 var1 = self->attrs[COLOR_simple_misc_analysis__SimpleMiscVisitor___64dtoolcontext].val; /* @toolcontext on <self:SimpleMiscVisitor> */
112 if (var1 == NULL) {
113 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @toolcontext");
114 fprintf(stderr, " (%s:%d)\n", "src/simple_misc_analysis.nit", 57);
115 exit(1);
116 }
117 var = var1;
118 RET_LABEL:;
119 return var;
120 }
121 /* method simple_misc_analysis#SimpleMiscVisitor#toolcontext for (self: Object): ToolContext */
122 val* VIRTUAL_simple_misc_analysis__SimpleMiscVisitor__toolcontext(val* self) {
123 val* var /* : ToolContext */;
124 val* var1 /* : ToolContext */;
125 var1 = simple_misc_analysis__SimpleMiscVisitor__toolcontext(self);
126 var = var1;
127 RET_LABEL:;
128 return var;
129 }
130 /* method simple_misc_analysis#SimpleMiscVisitor#toolcontext= for (self: SimpleMiscVisitor, ToolContext) */
131 void simple_misc_analysis__SimpleMiscVisitor__toolcontext_61d(val* self, val* p0) {
132 self->attrs[COLOR_simple_misc_analysis__SimpleMiscVisitor___64dtoolcontext].val = p0; /* @toolcontext on <self:SimpleMiscVisitor> */
133 RET_LABEL:;
134 }
135 /* method simple_misc_analysis#SimpleMiscVisitor#toolcontext= for (self: Object, ToolContext) */
136 void VIRTUAL_simple_misc_analysis__SimpleMiscVisitor__toolcontext_61d(val* self, val* p0) {
137 simple_misc_analysis__SimpleMiscVisitor__toolcontext_61d(self, p0);
138 RET_LABEL:;
139 }
140 /* method simple_misc_analysis#SimpleMiscVisitor#warning for (self: SimpleMiscVisitor, ANode, String) */
141 void simple_misc_analysis__SimpleMiscVisitor__warning(val* self, val* p0, val* p1) {
142 val* var_node /* var node: ANode */;
143 val* var_msg /* var msg: String */;
144 val* var /* : ToolContext */;
145 val* var1 /* : Location */;
146 var_node = p0;
147 var_msg = p1;
148 var = ((val* (*)(val*))(self->class->vft[COLOR_simple_misc_analysis__SimpleMiscVisitor__toolcontext]))(self) /* toolcontext on <self:SimpleMiscVisitor>*/;
149 var1 = ((val* (*)(val*))(var_node->class->vft[COLOR_parser_nodes__ANode__hot_location]))(var_node) /* hot_location on <var_node:ANode>*/;
150 ((void (*)(val*, val*, val*))(var->class->vft[COLOR_toolcontext__ToolContext__warning]))(var, var1, var_msg) /* warning on <var:ToolContext>*/;
151 RET_LABEL:;
152 }
153 /* method simple_misc_analysis#SimpleMiscVisitor#warning for (self: Object, ANode, String) */
154 void VIRTUAL_simple_misc_analysis__SimpleMiscVisitor__warning(val* self, val* p0, val* p1) {
155 simple_misc_analysis__SimpleMiscVisitor__warning(self, p0, p1);
156 RET_LABEL:;
157 }
158 /* method simple_misc_analysis#SimpleMiscVisitor#init for (self: SimpleMiscVisitor, ToolContext) */
159 void simple_misc_analysis__SimpleMiscVisitor__init(val* self, val* p0) {
160 val* var_toolcontext /* var toolcontext: ToolContext */;
161 var_toolcontext = p0;
162 ((void (*)(val*))(self->class->vft[COLOR_parser_nodes__Visitor__init]))(self) /* init on <self:SimpleMiscVisitor>*/;
163 ((void (*)(val*, val*))(self->class->vft[COLOR_simple_misc_analysis__SimpleMiscVisitor__toolcontext_61d]))(self, var_toolcontext) /* toolcontext= on <self:SimpleMiscVisitor>*/;
164 RET_LABEL:;
165 }
166 /* method simple_misc_analysis#SimpleMiscVisitor#init for (self: Object, ToolContext) */
167 void VIRTUAL_simple_misc_analysis__SimpleMiscVisitor__init(val* self, val* p0) {
168 simple_misc_analysis__SimpleMiscVisitor__init(self, p0);
169 RET_LABEL:;
170 }
171 /* method simple_misc_analysis#ANode#accept_simple_misc for (self: ANode, SimpleMiscVisitor) */
172 void simple_misc_analysis__ANode__accept_simple_misc(val* self, val* p0) {
173 val* var_v /* var v: SimpleMiscVisitor */;
174 var_v = p0;
175 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__visit_all]))(self, var_v) /* visit_all on <self:ANode>*/;
176 ((void (*)(val*, val*))(self->class->vft[COLOR_simple_misc_analysis__ANode__after_simple_misc]))(self, var_v) /* after_simple_misc on <self:ANode>*/;
177 RET_LABEL:;
178 }
179 /* method simple_misc_analysis#ANode#accept_simple_misc for (self: Object, SimpleMiscVisitor) */
180 void VIRTUAL_simple_misc_analysis__ANode__accept_simple_misc(val* self, val* p0) {
181 simple_misc_analysis__ANode__accept_simple_misc(self, p0);
182 RET_LABEL:;
183 }
184 /* method simple_misc_analysis#ANode#after_simple_misc for (self: ANode, SimpleMiscVisitor) */
185 void simple_misc_analysis__ANode__after_simple_misc(val* self, val* p0) {
186 val* var_v /* var v: SimpleMiscVisitor */;
187 var_v = p0;
188 RET_LABEL:;
189 }
190 /* method simple_misc_analysis#ANode#after_simple_misc for (self: Object, SimpleMiscVisitor) */
191 void VIRTUAL_simple_misc_analysis__ANode__after_simple_misc(val* self, val* p0) {
192 simple_misc_analysis__ANode__after_simple_misc(self, p0);
193 RET_LABEL:;
194 }
195 /* method simple_misc_analysis#ASignature#after_simple_misc for (self: ASignature, SimpleMiscVisitor) */
196 void simple_misc_analysis__ASignature__after_simple_misc(val* self, val* p0) {
197 val* var_v /* var v: SimpleMiscVisitor */;
198 short int var /* : Bool */;
199 val* var1 /* : nullable TOpar */;
200 val* var2 /* : null */;
201 short int var3 /* : Bool */;
202 short int var_ /* var : Bool */;
203 val* var4 /* : ANodes[AParam] */;
204 short int var5 /* : Bool */;
205 static val* varonce;
206 val* var6 /* : String */;
207 char* var7 /* : NativeString */;
208 long var8 /* : Int */;
209 val* var9 /* : String */;
210 var_v = p0;
211 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ASignature__n_opar]))(self) /* n_opar on <self:ASignature>*/;
212 var2 = NULL;
213 if (var1 == NULL) {
214 var3 = 0; /* is null */
215 } else {
216 var3 = 1; /* arg is null and recv is not */
217 }
218 var_ = var3;
219 if (var3){
220 var4 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ASignature__n_params]))(self) /* n_params on <self:ASignature>*/;
221 var5 = ((short int (*)(val*))(var4->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var4) /* is_empty on <var4:ANodes[AParam]>*/;
222 var = var5;
223 } else {
224 var = var_;
225 }
226 if (var){
227 if (varonce) {
228 var6 = varonce;
229 } else {
230 var7 = "Warning: superfluous parentheses.";
231 var8 = 33;
232 var9 = string__NativeString__to_s_with_length(var7, var8);
233 var6 = var9;
234 varonce = var6;
235 }
236 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_simple_misc_analysis__SimpleMiscVisitor__warning]))(var_v, self, var6) /* warning on <var_v:SimpleMiscVisitor>*/;
237 } else {
238 }
239 RET_LABEL:;
240 }
241 /* method simple_misc_analysis#ASignature#after_simple_misc for (self: Object, SimpleMiscVisitor) */
242 void VIRTUAL_simple_misc_analysis__ASignature__after_simple_misc(val* self, val* p0) {
243 simple_misc_analysis__ASignature__after_simple_misc(self, p0);
244 RET_LABEL:;
245 }
246 /* method simple_misc_analysis#AExpr#warn_parentheses for (self: AExpr, SimpleMiscVisitor) */
247 void simple_misc_analysis__AExpr__warn_parentheses(val* self, val* p0) {
248 val* var_v /* var v: SimpleMiscVisitor */;
249 var_v = p0;
250 RET_LABEL:;
251 }
252 /* method simple_misc_analysis#AExpr#warn_parentheses for (self: Object, SimpleMiscVisitor) */
253 void VIRTUAL_simple_misc_analysis__AExpr__warn_parentheses(val* self, val* p0) {
254 simple_misc_analysis__AExpr__warn_parentheses(self, p0);
255 RET_LABEL:;
256 }
257 /* method simple_misc_analysis#AParExpr#warn_parentheses for (self: AParExpr, SimpleMiscVisitor) */
258 void simple_misc_analysis__AParExpr__warn_parentheses(val* self, val* p0) {
259 val* var_v /* var v: SimpleMiscVisitor */;
260 static val* varonce;
261 val* var /* : String */;
262 char* var1 /* : NativeString */;
263 long var2 /* : Int */;
264 val* var3 /* : String */;
265 var_v = p0;
266 if (varonce) {
267 var = varonce;
268 } else {
269 var1 = "Warning: superfluous parentheses.";
270 var2 = 33;
271 var3 = string__NativeString__to_s_with_length(var1, var2);
272 var = var3;
273 varonce = var;
274 }
275 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_simple_misc_analysis__SimpleMiscVisitor__warning]))(var_v, self, var) /* warning on <var_v:SimpleMiscVisitor>*/;
276 RET_LABEL:;
277 }
278 /* method simple_misc_analysis#AParExpr#warn_parentheses for (self: Object, SimpleMiscVisitor) */
279 void VIRTUAL_simple_misc_analysis__AParExpr__warn_parentheses(val* self, val* p0) {
280 simple_misc_analysis__AParExpr__warn_parentheses(self, p0);
281 RET_LABEL:;
282 }
283 /* method simple_misc_analysis#AParExprs#after_simple_misc for (self: AParExprs, SimpleMiscVisitor) */
284 void simple_misc_analysis__AParExprs__after_simple_misc(val* self, val* p0) {
285 val* var_v /* var v: SimpleMiscVisitor */;
286 val* var /* : ANodes[AExpr] */;
287 short int var1 /* : Bool */;
288 static val* varonce;
289 val* var2 /* : String */;
290 char* var3 /* : NativeString */;
291 long var4 /* : Int */;
292 val* var5 /* : String */;
293 var_v = p0;
294 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AExprs__n_exprs]))(self) /* n_exprs on <self:AParExprs>*/;
295 var1 = ((short int (*)(val*))(var->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var) /* is_empty on <var:ANodes[AExpr]>*/;
296 if (var1){
297 if (varonce) {
298 var2 = varonce;
299 } else {
300 var3 = "Warning: superfluous parentheses.";
301 var4 = 33;
302 var5 = string__NativeString__to_s_with_length(var3, var4);
303 var2 = var5;
304 varonce = var2;
305 }
306 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_simple_misc_analysis__SimpleMiscVisitor__warning]))(var_v, self, var2) /* warning on <var_v:SimpleMiscVisitor>*/;
307 } else {
308 }
309 RET_LABEL:;
310 }
311 /* method simple_misc_analysis#AParExprs#after_simple_misc for (self: Object, SimpleMiscVisitor) */
312 void VIRTUAL_simple_misc_analysis__AParExprs__after_simple_misc(val* self, val* p0) {
313 simple_misc_analysis__AParExprs__after_simple_misc(self, p0);
314 RET_LABEL:;
315 }
316 /* method simple_misc_analysis#AReturnExpr#after_simple_misc for (self: AReturnExpr, SimpleMiscVisitor) */
317 void simple_misc_analysis__AReturnExpr__after_simple_misc(val* self, val* p0) {
318 val* var_v /* var v: SimpleMiscVisitor */;
319 val* var /* : nullable AExpr */;
320 val* var_e /* var e: nullable AExpr */;
321 val* var1 /* : null */;
322 short int var2 /* : Bool */;
323 var_v = p0;
324 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AReturnExpr__n_expr]))(self) /* n_expr on <self:AReturnExpr>*/;
325 var_e = var;
326 var1 = NULL;
327 if (var_e == NULL) {
328 var2 = 0; /* is null */
329 } else {
330 var2 = 1; /* arg is null and recv is not */
331 }
332 if (var2){
333 ((void (*)(val*, val*))(var_e->class->vft[COLOR_simple_misc_analysis__AExpr__warn_parentheses]))(var_e, var_v) /* warn_parentheses on <var_e:nullable AExpr(AExpr)>*/;
334 } else {
335 }
336 RET_LABEL:;
337 }
338 /* method simple_misc_analysis#AReturnExpr#after_simple_misc for (self: Object, SimpleMiscVisitor) */
339 void VIRTUAL_simple_misc_analysis__AReturnExpr__after_simple_misc(val* self, val* p0) {
340 simple_misc_analysis__AReturnExpr__after_simple_misc(self, p0);
341 RET_LABEL:;
342 }
343 /* method simple_misc_analysis#AContinueExpr#after_simple_misc for (self: AContinueExpr, SimpleMiscVisitor) */
344 void simple_misc_analysis__AContinueExpr__after_simple_misc(val* self, val* p0) {
345 val* var_v /* var v: SimpleMiscVisitor */;
346 val* var /* : nullable AExpr */;
347 val* var_e /* var e: nullable AExpr */;
348 val* var1 /* : null */;
349 short int var2 /* : Bool */;
350 var_v = p0;
351 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AContinueExpr__n_expr]))(self) /* n_expr on <self:AContinueExpr>*/;
352 var_e = var;
353 var1 = NULL;
354 if (var_e == NULL) {
355 var2 = 0; /* is null */
356 } else {
357 var2 = 1; /* arg is null and recv is not */
358 }
359 if (var2){
360 ((void (*)(val*, val*))(var_e->class->vft[COLOR_simple_misc_analysis__AExpr__warn_parentheses]))(var_e, var_v) /* warn_parentheses on <var_e:nullable AExpr(AExpr)>*/;
361 } else {
362 }
363 RET_LABEL:;
364 }
365 /* method simple_misc_analysis#AContinueExpr#after_simple_misc for (self: Object, SimpleMiscVisitor) */
366 void VIRTUAL_simple_misc_analysis__AContinueExpr__after_simple_misc(val* self, val* p0) {
367 simple_misc_analysis__AContinueExpr__after_simple_misc(self, p0);
368 RET_LABEL:;
369 }
370 /* method simple_misc_analysis#ABreakExpr#after_simple_misc for (self: ABreakExpr, SimpleMiscVisitor) */
371 void simple_misc_analysis__ABreakExpr__after_simple_misc(val* self, val* p0) {
372 val* var_v /* var v: SimpleMiscVisitor */;
373 val* var /* : nullable AExpr */;
374 val* var_e /* var e: nullable AExpr */;
375 val* var1 /* : null */;
376 short int var2 /* : Bool */;
377 var_v = p0;
378 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ABreakExpr__n_expr]))(self) /* n_expr on <self:ABreakExpr>*/;
379 var_e = var;
380 var1 = NULL;
381 if (var_e == NULL) {
382 var2 = 0; /* is null */
383 } else {
384 var2 = 1; /* arg is null and recv is not */
385 }
386 if (var2){
387 ((void (*)(val*, val*))(var_e->class->vft[COLOR_simple_misc_analysis__AExpr__warn_parentheses]))(var_e, var_v) /* warn_parentheses on <var_e:nullable AExpr(AExpr)>*/;
388 } else {
389 }
390 RET_LABEL:;
391 }
392 /* method simple_misc_analysis#ABreakExpr#after_simple_misc for (self: Object, SimpleMiscVisitor) */
393 void VIRTUAL_simple_misc_analysis__ABreakExpr__after_simple_misc(val* self, val* p0) {
394 simple_misc_analysis__ABreakExpr__after_simple_misc(self, p0);
395 RET_LABEL:;
396 }
397 /* method simple_misc_analysis#AWhileExpr#after_simple_misc for (self: AWhileExpr, SimpleMiscVisitor) */
398 void simple_misc_analysis__AWhileExpr__after_simple_misc(val* self, val* p0) {
399 val* var_v /* var v: SimpleMiscVisitor */;
400 val* var /* : AExpr */;
401 short int var1 /* : Bool */;
402 int cltype;
403 int idtype;
404 static val* varonce;
405 val* var2 /* : String */;
406 char* var3 /* : NativeString */;
407 long var4 /* : Int */;
408 val* var5 /* : String */;
409 val* var6 /* : AExpr */;
410 var_v = p0;
411 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AWhileExpr__n_expr]))(self) /* n_expr on <self:AWhileExpr>*/;
412 /* <var:AExpr> isa ATrueExpr */
413 cltype = type_parser_nodes__ATrueExpr.color;
414 idtype = type_parser_nodes__ATrueExpr.id;
415 if(cltype >= var->type->table_size) {
416 var1 = 0;
417 } else {
418 var1 = var->type->type_table[cltype] == idtype;
419 }
420 if (var1){
421 if (varonce) {
422 var2 = varonce;
423 } else {
424 var3 = "Warning: use \'loop\' instead of \'while true do\'.";
425 var4 = 47;
426 var5 = string__NativeString__to_s_with_length(var3, var4);
427 var2 = var5;
428 varonce = var2;
429 }
430 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_simple_misc_analysis__SimpleMiscVisitor__warning]))(var_v, self, var2) /* warning on <var_v:SimpleMiscVisitor>*/;
431 } else {
432 var6 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AWhileExpr__n_expr]))(self) /* n_expr on <self:AWhileExpr>*/;
433 ((void (*)(val*, val*))(var6->class->vft[COLOR_simple_misc_analysis__AExpr__warn_parentheses]))(var6, var_v) /* warn_parentheses on <var6:AExpr>*/;
434 }
435 RET_LABEL:;
436 }
437 /* method simple_misc_analysis#AWhileExpr#after_simple_misc for (self: Object, SimpleMiscVisitor) */
438 void VIRTUAL_simple_misc_analysis__AWhileExpr__after_simple_misc(val* self, val* p0) {
439 simple_misc_analysis__AWhileExpr__after_simple_misc(self, p0);
440 RET_LABEL:;
441 }
442 /* method simple_misc_analysis#AForExpr#after_simple_misc for (self: AForExpr, SimpleMiscVisitor) */
443 void simple_misc_analysis__AForExpr__after_simple_misc(val* self, val* p0) {
444 val* var_v /* var v: SimpleMiscVisitor */;
445 val* var /* : AExpr */;
446 var_v = p0;
447 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AForExpr__n_expr]))(self) /* n_expr on <self:AForExpr>*/;
448 ((void (*)(val*, val*))(var->class->vft[COLOR_simple_misc_analysis__AExpr__warn_parentheses]))(var, var_v) /* warn_parentheses on <var:AExpr>*/;
449 RET_LABEL:;
450 }
451 /* method simple_misc_analysis#AForExpr#after_simple_misc for (self: Object, SimpleMiscVisitor) */
452 void VIRTUAL_simple_misc_analysis__AForExpr__after_simple_misc(val* self, val* p0) {
453 simple_misc_analysis__AForExpr__after_simple_misc(self, p0);
454 RET_LABEL:;
455 }
456 /* method simple_misc_analysis#AIfExpr#after_simple_misc for (self: AIfExpr, SimpleMiscVisitor) */
457 void simple_misc_analysis__AIfExpr__after_simple_misc(val* self, val* p0) {
458 val* var_v /* var v: SimpleMiscVisitor */;
459 val* var /* : AExpr */;
460 var_v = p0;
461 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AIfExpr__n_expr]))(self) /* n_expr on <self:AIfExpr>*/;
462 ((void (*)(val*, val*))(var->class->vft[COLOR_simple_misc_analysis__AExpr__warn_parentheses]))(var, var_v) /* warn_parentheses on <var:AExpr>*/;
463 RET_LABEL:;
464 }
465 /* method simple_misc_analysis#AIfExpr#after_simple_misc for (self: Object, SimpleMiscVisitor) */
466 void VIRTUAL_simple_misc_analysis__AIfExpr__after_simple_misc(val* self, val* p0) {
467 simple_misc_analysis__AIfExpr__after_simple_misc(self, p0);
468 RET_LABEL:;
469 }
470 /* method simple_misc_analysis#AIfexprExpr#after_simple_misc for (self: AIfexprExpr, SimpleMiscVisitor) */
471 void simple_misc_analysis__AIfexprExpr__after_simple_misc(val* self, val* p0) {
472 val* var_v /* var v: SimpleMiscVisitor */;
473 val* var /* : AExpr */;
474 var_v = p0;
475 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AIfexprExpr__n_expr]))(self) /* n_expr on <self:AIfexprExpr>*/;
476 ((void (*)(val*, val*))(var->class->vft[COLOR_simple_misc_analysis__AExpr__warn_parentheses]))(var, var_v) /* warn_parentheses on <var:AExpr>*/;
477 RET_LABEL:;
478 }
479 /* method simple_misc_analysis#AIfexprExpr#after_simple_misc for (self: Object, SimpleMiscVisitor) */
480 void VIRTUAL_simple_misc_analysis__AIfexprExpr__after_simple_misc(val* self, val* p0) {
481 simple_misc_analysis__AIfexprExpr__after_simple_misc(self, p0);
482 RET_LABEL:;
483 }
484 /* method simple_misc_analysis#AOnceExpr#accept_simple_misc for (self: AOnceExpr, SimpleMiscVisitor) */
485 void simple_misc_analysis__AOnceExpr__accept_simple_misc(val* self, val* p0) {
486 val* var_v /* var v: SimpleMiscVisitor */;
487 long var /* : Int */;
488 long var1 /* : Int */;
489 short int var2 /* : Bool */;
490 short int var4 /* : Bool */;
491 int cltype;
492 int idtype;
493 const char* var_class_name;
494 short int var5 /* : Bool */;
495 static val* varonce;
496 val* var6 /* : String */;
497 char* var7 /* : NativeString */;
498 long var8 /* : Int */;
499 val* var9 /* : String */;
500 long var10 /* : Int */;
501 long var11 /* : Int */;
502 long var12 /* : Int */;
503 long var14 /* : Int */;
504 long var15 /* : Int */;
505 long var16 /* : Int */;
506 long var17 /* : Int */;
507 long var19 /* : Int */;
508 var_v = p0;
509 var = ((long (*)(val*))(var_v->class->vft[COLOR_simple_misc_analysis__SimpleMiscVisitor__once_count]))(var_v) /* once_count on <var_v:SimpleMiscVisitor>*/;
510 var1 = 0;
511 { /* Inline kernel#Int#> (var,var1) */
512 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
513 /* <var1:Int> isa OTHER */
514 var4 = 1; /* easy <var1:Int> isa OTHER*/
515 if (!var4) {
516 var_class_name = type_kernel__Int.name;
517 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
518 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
519 exit(1);
520 }
521 var5 = var > var1;
522 var2 = var5;
523 goto RET_LABEL3;
524 RET_LABEL3:(void)0;
525 }
526 if (var2){
527 if (varonce) {
528 var6 = varonce;
529 } else {
530 var7 = "Useless once in a once expression.";
531 var8 = 34;
532 var9 = string__NativeString__to_s_with_length(var7, var8);
533 var6 = var9;
534 varonce = var6;
535 }
536 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_simple_misc_analysis__SimpleMiscVisitor__warning]))(var_v, self, var6) /* warning on <var_v:SimpleMiscVisitor>*/;
537 } else {
538 }
539 var10 = ((long (*)(val*))(var_v->class->vft[COLOR_simple_misc_analysis__SimpleMiscVisitor__once_count]))(var_v) /* once_count on <var_v:SimpleMiscVisitor>*/;
540 var11 = 1;
541 { /* Inline kernel#Int#+ (var10,var11) */
542 var14 = var10 + var11;
543 var12 = var14;
544 goto RET_LABEL13;
545 RET_LABEL13:(void)0;
546 }
547 ((void (*)(val*, long))(var_v->class->vft[COLOR_simple_misc_analysis__SimpleMiscVisitor__once_count_61d]))(var_v, var12) /* once_count= on <var_v:SimpleMiscVisitor>*/;
548 ((void (*)(val*, val*))(self->class->vft[COLOR_simple_misc_analysis__AOnceExpr__accept_simple_misc]))(self, p0) /* accept_simple_misc on <self:AOnceExpr>*/;
549 var15 = ((long (*)(val*))(var_v->class->vft[COLOR_simple_misc_analysis__SimpleMiscVisitor__once_count]))(var_v) /* once_count on <var_v:SimpleMiscVisitor>*/;
550 var16 = 1;
551 { /* Inline kernel#Int#- (var15,var16) */
552 var19 = var15 - var16;
553 var17 = var19;
554 goto RET_LABEL18;
555 RET_LABEL18:(void)0;
556 }
557 ((void (*)(val*, long))(var_v->class->vft[COLOR_simple_misc_analysis__SimpleMiscVisitor__once_count_61d]))(var_v, var17) /* once_count= on <var_v:SimpleMiscVisitor>*/;
558 RET_LABEL:;
559 }
560 /* method simple_misc_analysis#AOnceExpr#accept_simple_misc for (self: Object, SimpleMiscVisitor) */
561 void VIRTUAL_simple_misc_analysis__AOnceExpr__accept_simple_misc(val* self, val* p0) {
562 simple_misc_analysis__AOnceExpr__accept_simple_misc(self, p0);
563 RET_LABEL:;
564 }