1 #include "modelize_class.sep.0.h"
2 /* method modelize_class#ToolContext#modelize_class_phase for (self: ToolContext): Phase */
3 val
* modelize_class__ToolContext__modelize_class_phase(val
* self
) {
4 val
* var
/* : Phase */;
5 val
* var1
/* : Phase */;
6 var1
= self
->attrs
[COLOR_modelize_class__ToolContext___modelize_class_phase
].val
; /* _modelize_class_phase on <self:ToolContext> */
7 if (unlikely(var1
== NULL
)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelize_class_phase");
9 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 23);
16 /* method modelize_class#ToolContext#modelize_class_phase for (self: Object): Phase */
17 val
* VIRTUAL_modelize_class__ToolContext__modelize_class_phase(val
* self
) {
18 val
* var
/* : Phase */;
19 val
* var1
/* : Phase */;
20 val
* var3
/* : Phase */;
21 { /* Inline modelize_class#ToolContext#modelize_class_phase (self) on <self:Object(ToolContext)> */
22 var3
= self
->attrs
[COLOR_modelize_class__ToolContext___modelize_class_phase
].val
; /* _modelize_class_phase on <self:Object(ToolContext)> */
23 if (unlikely(var3
== NULL
)) {
24 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelize_class_phase");
25 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 23);
35 /* method modelize_class#ModelizeClassPhase#process_nmodule for (self: ModelizeClassPhase, AModule) */
36 void modelize_class__ModelizeClassPhase__process_nmodule(val
* self
, val
* p0
) {
37 val
* var_nmodule
/* var nmodule: AModule */;
38 val
* var
/* : ToolContext */;
39 val
* var2
/* : ToolContext */;
40 val
* var3
/* : ModelBuilder */;
43 { /* Inline phase#Phase#toolcontext (self) on <self:ModelizeClassPhase> */
44 var2
= self
->attrs
[COLOR_phase__Phase___toolcontext
].val
; /* _toolcontext on <self:ModelizeClassPhase> */
45 if (unlikely(var2
== NULL
)) {
46 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
47 PRINT_ERROR(" (%s:%d)\n", "phase.nit", 162);
55 var3
= modelbuilder__ToolContext__modelbuilder(var
);
58 modelize_class__ModelBuilder__build_classes(var3
, var_nmodule
); /* Direct call modelize_class#ModelBuilder#build_classes on <var3:ModelBuilder>*/
62 /* method modelize_class#ModelizeClassPhase#process_nmodule for (self: Object, AModule) */
63 void VIRTUAL_modelize_class__ModelizeClassPhase__process_nmodule(val
* self
, val
* p0
) {
64 modelize_class__ModelizeClassPhase__process_nmodule(self
, p0
); /* Direct call modelize_class#ModelizeClassPhase#process_nmodule on <self:Object(ModelizeClassPhase)>*/
67 /* method modelize_class#ModelBuilder#build_a_mclass for (self: ModelBuilder, AModule, AClassdef) */
68 void modelize_class__ModelBuilder__build_a_mclass(val
* self
, val
* p0
, val
* p1
) {
69 val
* var_nmodule
/* var nmodule: AModule */;
70 val
* var_nclassdef
/* var nclassdef: AClassdef */;
71 val
* var
/* : nullable MModule */;
72 val
* var2
/* : nullable MModule */;
73 val
* var_mmodule
/* var mmodule: MModule */;
74 long var3
/* : Int */;
75 long var_arity
/* var arity: Int */;
76 val
* var4
/* : Array[String] */;
77 val
* var_names
/* var names: Array[String] */;
78 short int var5
/* : Bool */;
81 val
* var6
/* : nullable TClassid */;
82 val
* var8
/* : nullable TClassid */;
83 val
* var9
/* : String */;
84 val
* var_name
/* var name: String */;
85 val
* var10
/* : AClasskind */;
86 val
* var12
/* : AClasskind */;
87 val
* var_nkind
/* var nkind: nullable AClasskind */;
88 val
* var13
/* : MClassKind */;
89 val
* var_mkind
/* var mkind: MClassKind */;
90 val
* var14
/* : AVisibility */;
91 val
* var16
/* : AVisibility */;
92 val
* var_nvisibility
/* var nvisibility: nullable AVisibility */;
93 val
* var17
/* : MVisibility */;
94 val
* var_mvisibility
/* var mvisibility: nullable MVisibility */;
95 val
* var18
/* : ANodes[AFormaldef] */;
96 val
* var20
/* : ANodes[AFormaldef] */;
97 long var21
/* : Int */;
98 val
* var22
/* : MVisibility */;
99 short int var23
/* : Bool */;
100 short int var24
/* : Bool */;
101 val
* var_other
/* var other: nullable Object */;
102 short int var26
/* : Bool */;
103 short int var28
/* : Bool */;
105 val
* var29
/* : String */;
106 char* var30
/* : NativeString */;
107 long var31
/* : Int */;
108 val
* var32
/* : FlatString */;
109 val
* var33
/* : MVisibility */;
110 short int var34
/* : Bool */;
111 short int var35
/* : Bool */;
112 short int var37
/* : Bool */;
113 short int var39
/* : Bool */;
114 static val
* varonce40
;
115 val
* var41
/* : String */;
116 char* var42
/* : NativeString */;
117 long var43
/* : Int */;
118 val
* var44
/* : FlatString */;
119 long var45
/* : Int */;
120 long var_i
/* var i: Int */;
121 long var_
/* var : Int */;
122 short int var46
/* : Bool */;
123 short int var48
/* : Bool */;
126 const char* var_class_name
;
127 short int var51
/* : Bool */;
128 val
* var52
/* : ANodes[AFormaldef] */;
129 val
* var54
/* : ANodes[AFormaldef] */;
130 val
* var55
/* : ANode */;
131 val
* var_nfd
/* var nfd: AFormaldef */;
132 val
* var56
/* : TClassid */;
133 val
* var58
/* : TClassid */;
134 val
* var59
/* : String */;
135 val
* var_ptname
/* var ptname: String */;
136 short int var60
/* : Bool */;
137 static val
* varonce61
;
138 val
* var62
/* : String */;
139 char* var63
/* : NativeString */;
140 long var64
/* : Int */;
141 val
* var65
/* : FlatString */;
142 static val
* varonce66
;
143 val
* var67
/* : String */;
144 char* var68
/* : NativeString */;
145 long var69
/* : Int */;
146 val
* var70
/* : FlatString */;
147 val
* var71
/* : Array[Object] */;
148 long var72
/* : Int */;
149 val
* var73
/* : NativeArray[Object] */;
150 val
* var74
/* : String */;
151 val
* var75
/* : SequenceRead[Char] */;
152 val
* var77
/* : SequenceRead[Char] */;
153 val
* var_78
/* var : SequenceRead[Char] */;
154 val
* var79
/* : Iterator[nullable Object] */;
155 val
* var_80
/* var : IndexedIterator[Char] */;
156 short int var81
/* : Bool */;
157 val
* var82
/* : nullable Object */;
158 char var83
/* : Char */;
159 char var_c
/* var c: Char */;
160 short int var84
/* : Bool */;
161 char var85
/* : Char */;
162 short int var86
/* : Bool */;
163 short int var88
/* : Bool */;
166 const char* var_class_name91
;
167 short int var92
/* : Bool */;
168 short int var_93
/* var : Bool */;
169 char var94
/* : Char */;
170 short int var95
/* : Bool */;
171 short int var97
/* : Bool */;
174 const char* var_class_name100
;
175 short int var101
/* : Bool */;
176 static val
* varonce102
;
177 val
* var103
/* : String */;
178 char* var104
/* : NativeString */;
179 long var105
/* : Int */;
180 val
* var106
/* : FlatString */;
181 static val
* varonce107
;
182 val
* var108
/* : String */;
183 char* var109
/* : NativeString */;
184 long var110
/* : Int */;
185 val
* var111
/* : FlatString */;
186 val
* var112
/* : Array[Object] */;
187 long var113
/* : Int */;
188 val
* var114
/* : NativeArray[Object] */;
189 val
* var115
/* : String */;
190 long var117
/* : Int */;
191 long var118
/* : Int */;
192 short int var120
/* : Bool */;
195 static val
* varonce123
;
196 val
* var124
/* : String */;
197 char* var125
/* : NativeString */;
198 long var126
/* : Int */;
199 val
* var127
/* : FlatString */;
200 val
* var128
/* : null */;
201 val
* var129
/* : MClassKind */;
202 val
* var130
/* : null */;
203 val
* var131
/* : MVisibility */;
204 short int var132
/* : Bool */;
207 static val
* varonce135
;
208 val
* var136
/* : String */;
209 char* var137
/* : NativeString */;
210 long var138
/* : Int */;
211 val
* var139
/* : FlatString */;
212 val
* var140
/* : null */;
213 val
* var141
/* : MClassKind */;
214 val
* var142
/* : null */;
215 val
* var143
/* : MVisibility */;
216 val
* var144
/* : nullable MClass */;
217 val
* var_mclass
/* var mclass: nullable MClass */;
218 val
* var145
/* : null */;
219 short int var146
/* : Bool */;
220 short int var147
/* : Bool */;
221 short int var149
/* : Bool */;
222 short int var151
/* : Bool */;
223 short int var152
/* : Bool */;
224 short int var153
/* : Bool */;
227 short int var_156
/* var : Bool */;
228 val
* var157
/* : nullable TKwredef */;
229 val
* var159
/* : nullable TKwredef */;
230 val
* var160
/* : null */;
231 short int var161
/* : Bool */;
232 short int var162
/* : Bool */;
233 val
* var_other164
/* var other: nullable Object */;
234 short int var165
/* : Bool */;
235 short int var166
/* : Bool */;
236 short int var167
/* : Bool */;
237 static val
* varonce168
;
238 val
* var169
/* : String */;
239 char* var170
/* : NativeString */;
240 long var171
/* : Int */;
241 val
* var172
/* : FlatString */;
242 static val
* varonce173
;
243 val
* var174
/* : String */;
244 char* var175
/* : NativeString */;
245 long var176
/* : Int */;
246 val
* var177
/* : FlatString */;
247 val
* var178
/* : Array[Object] */;
248 long var179
/* : Int */;
249 val
* var180
/* : NativeArray[Object] */;
250 val
* var181
/* : String */;
251 val
* var182
/* : MClass */;
252 short int var183
/* : Bool */;
253 short int var184
/* : Bool */;
256 short int var_187
/* var : Bool */;
257 val
* var188
/* : Map[MClass, AClassdef] */;
258 val
* var190
/* : Map[MClass, AClassdef] */;
259 short int var191
/* : Bool */;
260 static val
* varonce192
;
261 val
* var193
/* : String */;
262 char* var194
/* : NativeString */;
263 long var195
/* : Int */;
264 val
* var196
/* : FlatString */;
265 static val
* varonce197
;
266 val
* var198
/* : String */;
267 char* var199
/* : NativeString */;
268 long var200
/* : Int */;
269 val
* var201
/* : FlatString */;
270 val
* var202
/* : Map[MClass, AClassdef] */;
271 val
* var204
/* : Map[MClass, AClassdef] */;
272 val
* var205
/* : nullable Object */;
273 val
* var206
/* : Location */;
274 val
* var208
/* : Location */;
275 long var209
/* : Int */;
276 long var211
/* : Int */;
277 static val
* varonce212
;
278 val
* var213
/* : String */;
279 char* var214
/* : NativeString */;
280 long var215
/* : Int */;
281 val
* var216
/* : FlatString */;
282 val
* var217
/* : Array[Object] */;
283 long var218
/* : Int */;
284 val
* var219
/* : NativeArray[Object] */;
285 val
* var220
/* : Object */;
286 val
* var221
/* : String */;
287 short int var222
/* : Bool */;
288 short int var223
/* : Bool */;
291 short int var_226
/* var : Bool */;
292 val
* var227
/* : nullable TKwredef */;
293 val
* var229
/* : nullable TKwredef */;
294 val
* var230
/* : null */;
295 short int var231
/* : Bool */;
296 short int var232
/* : Bool */;
297 short int var234
/* : Bool */;
298 short int var236
/* : Bool */;
299 static val
* varonce237
;
300 val
* var238
/* : String */;
301 char* var239
/* : NativeString */;
302 long var240
/* : Int */;
303 val
* var241
/* : FlatString */;
304 static val
* varonce242
;
305 val
* var243
/* : String */;
306 char* var244
/* : NativeString */;
307 long var245
/* : Int */;
308 val
* var246
/* : FlatString */;
309 val
* var247
/* : Array[Object] */;
310 long var248
/* : Int */;
311 val
* var249
/* : NativeArray[Object] */;
312 val
* var250
/* : String */;
313 short int var251
/* : Bool */;
314 long var252
/* : Int */;
315 short int var253
/* : Bool */;
316 short int var254
/* : Bool */;
317 short int var256
/* : Bool */;
318 short int var257
/* : Bool */;
319 short int var_258
/* var : Bool */;
320 long var259
/* : Int */;
321 long var261
/* : Int */;
322 short int var262
/* : Bool */;
323 short int var263
/* : Bool */;
324 short int var265
/* : Bool */;
325 short int var266
/* : Bool */;
326 static val
* varonce267
;
327 val
* var268
/* : String */;
328 char* var269
/* : NativeString */;
329 long var270
/* : Int */;
330 val
* var271
/* : FlatString */;
331 static val
* varonce272
;
332 val
* var273
/* : String */;
333 char* var274
/* : NativeString */;
334 long var275
/* : Int */;
335 val
* var276
/* : FlatString */;
336 long var277
/* : Int */;
337 long var279
/* : Int */;
338 static val
* varonce280
;
339 val
* var281
/* : String */;
340 char* var282
/* : NativeString */;
341 long var283
/* : Int */;
342 val
* var284
/* : FlatString */;
343 val
* var285
/* : Array[Object] */;
344 long var286
/* : Int */;
345 val
* var287
/* : NativeArray[Object] */;
346 val
* var288
/* : Object */;
347 val
* var289
/* : Object */;
348 val
* var290
/* : String */;
349 short int var291
/* : Bool */;
350 short int var292
/* : Bool */;
351 val
* var293
/* : null */;
352 short int var294
/* : Bool */;
353 short int var295
/* : Bool */;
354 short int var297
/* : Bool */;
355 short int var298
/* : Bool */;
356 short int var299
/* : Bool */;
357 short int var_300
/* var : Bool */;
358 val
* var301
/* : MClassKind */;
359 short int var302
/* : Bool */;
360 short int var303
/* : Bool */;
361 short int var305
/* : Bool */;
362 short int var306
/* : Bool */;
363 short int var307
/* : Bool */;
364 short int var_308
/* var : Bool */;
365 val
* var309
/* : MClassKind */;
366 val
* var311
/* : MClassKind */;
367 short int var312
/* : Bool */;
368 short int var313
/* : Bool */;
369 short int var315
/* : Bool */;
370 short int var316
/* : Bool */;
371 short int var317
/* : Bool */;
372 static val
* varonce318
;
373 val
* var319
/* : String */;
374 char* var320
/* : NativeString */;
375 long var321
/* : Int */;
376 val
* var322
/* : FlatString */;
377 val
* var323
/* : MClassKind */;
378 val
* var325
/* : MClassKind */;
379 static val
* varonce326
;
380 val
* var327
/* : String */;
381 char* var328
/* : NativeString */;
382 long var329
/* : Int */;
383 val
* var330
/* : FlatString */;
384 val
* var331
/* : Array[Object] */;
385 long var332
/* : Int */;
386 val
* var333
/* : NativeArray[Object] */;
387 val
* var334
/* : String */;
388 short int var335
/* : Bool */;
389 short int var336
/* : Bool */;
390 val
* var337
/* : null */;
391 short int var338
/* : Bool */;
392 short int var339
/* : Bool */;
393 short int var341
/* : Bool */;
394 short int var342
/* : Bool */;
395 short int var343
/* : Bool */;
396 short int var_344
/* var : Bool */;
397 val
* var345
/* : MVisibility */;
398 short int var346
/* : Bool */;
399 short int var347
/* : Bool */;
400 short int var349
/* : Bool */;
401 short int var350
/* : Bool */;
402 short int var351
/* : Bool */;
403 short int var_352
/* var : Bool */;
404 val
* var353
/* : MVisibility */;
405 val
* var355
/* : MVisibility */;
406 short int var356
/* : Bool */;
407 short int var357
/* : Bool */;
408 short int var359
/* : Bool */;
409 short int var360
/* : Bool */;
410 short int var361
/* : Bool */;
411 static val
* varonce362
;
412 val
* var363
/* : String */;
413 char* var364
/* : NativeString */;
414 long var365
/* : Int */;
415 val
* var366
/* : FlatString */;
416 val
* var367
/* : MVisibility */;
417 val
* var369
/* : MVisibility */;
418 static val
* varonce370
;
419 val
* var371
/* : String */;
420 char* var372
/* : NativeString */;
421 long var373
/* : Int */;
422 val
* var374
/* : FlatString */;
423 val
* var375
/* : Array[Object] */;
424 long var376
/* : Int */;
425 val
* var377
/* : NativeArray[Object] */;
426 val
* var378
/* : String */;
427 val
* var380
/* : Map[MClass, AClassdef] */;
428 val
* var382
/* : Map[MClass, AClassdef] */;
429 short int var383
/* : Bool */;
430 short int var384
/* : Bool */;
431 val
* var385
/* : Map[MClass, AClassdef] */;
432 val
* var387
/* : Map[MClass, AClassdef] */;
433 val
* var388
/* : Array[AClassdef] */;
434 long var389
/* : Int */;
435 val
* var_390
/* var : Array[AClassdef] */;
436 val
* var392
/* : Map[MClass, AClassdef] */;
437 val
* var394
/* : Map[MClass, AClassdef] */;
438 val
* var395
/* : nullable Object */;
439 val
* var396
/* : nullable Array[AClassdef] */;
440 val
* var398
/* : nullable Array[AClassdef] */;
444 { /* Inline modelbuilder#AModule#mmodule (var_nmodule) on <var_nmodule:AModule> */
445 var2
= var_nmodule
->attrs
[COLOR_modelbuilder__AModule___mmodule
].val
; /* _mmodule on <var_nmodule:AModule> */
450 if (unlikely(var
== NULL
)) {
451 PRINT_ERROR("Runtime error: %s", "Cast failed");
452 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 39);
458 var4
= NEW_array__Array(&type_array__Arraystring__String
);
460 ((void (*)(val
*))(var4
->class->vft
[COLOR_kernel__Object__init
]))(var4
) /* init on <var4:Array[String]>*/;
463 /* <var_nclassdef:AClassdef> isa AStdClassdef */
464 cltype
= type_parser_nodes__AStdClassdef
.color
;
465 idtype
= type_parser_nodes__AStdClassdef
.id
;
466 if(cltype
>= var_nclassdef
->type
->table_size
) {
469 var5
= var_nclassdef
->type
->type_table
[cltype
] == idtype
;
473 { /* Inline parser_nodes#AStdClassdef#n_id (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
474 var8
= var_nclassdef
->attrs
[COLOR_parser_nodes__AStdClassdef___n_id
].val
; /* _n_id on <var_nclassdef:AClassdef(AStdClassdef)> */
480 PRINT_ERROR("Runtime error: %s", "Receiver is null");
481 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 49);
484 var9
= lexer_work__Token__text(var6
);
488 { /* Inline parser_nodes#AStdClassdef#n_classkind (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
489 var12
= var_nclassdef
->attrs
[COLOR_parser_nodes__AStdClassdef___n_classkind
].val
; /* _n_classkind on <var_nclassdef:AClassdef(AStdClassdef)> */
490 if (unlikely(var12
== NULL
)) {
491 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_classkind");
492 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 938);
501 var13
= ((val
* (*)(val
*))(var_nkind
->class->vft
[COLOR_modelize_class__AClasskind__mkind
]))(var_nkind
) /* mkind on <var_nkind:nullable AClasskind(AClasskind)>*/;
505 { /* Inline parser_nodes#AStdClassdef#n_visibility (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
506 var16
= var_nclassdef
->attrs
[COLOR_parser_nodes__AStdClassdef___n_visibility
].val
; /* _n_visibility on <var_nclassdef:AClassdef(AStdClassdef)> */
507 if (unlikely(var16
== NULL
)) {
508 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_visibility");
509 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 937);
516 var_nvisibility
= var14
;
518 var17
= ((val
* (*)(val
*))(var_nvisibility
->class->vft
[COLOR_modelbuilder__AVisibility__mvisibility
]))(var_nvisibility
) /* mvisibility on <var_nvisibility:nullable AVisibility(AVisibility)>*/;
520 var_mvisibility
= var17
;
522 { /* Inline parser_nodes#AStdClassdef#n_formaldefs (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
523 var20
= var_nclassdef
->attrs
[COLOR_parser_nodes__AStdClassdef___n_formaldefs
].val
; /* _n_formaldefs on <var_nclassdef:AClassdef(AStdClassdef)> */
524 if (unlikely(var20
== NULL
)) {
525 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_formaldefs");
526 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 940);
534 var21
= parser_nodes__ANodes__length(var18
);
538 var22
= model_base__Object__protected_visibility(self
);
541 { /* Inline kernel#Object#== (var_mvisibility,var22) on <var_mvisibility:nullable MVisibility(MVisibility)> */
544 { /* Inline kernel#Object#is_same_instance (var_mvisibility,var_other) on <var_mvisibility:nullable MVisibility(MVisibility)> */
545 var28
= var_mvisibility
== var_other
;
561 var30
= "Error: only properties can be protected.";
563 var32
= string__NativeString__to_s_with_length(var30
, var31
);
568 modelbuilder__ModelBuilder__error(self
, var_nvisibility
, var29
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
573 var33
= model_base__Object__intrude_visibility(self
);
576 { /* Inline kernel#Object#== (var_mvisibility,var33) on <var_mvisibility:nullable MVisibility(MVisibility)> */
579 { /* Inline kernel#Object#is_same_instance (var_mvisibility,var_other) on <var_mvisibility:nullable MVisibility(MVisibility)> */
580 var39
= var_mvisibility
== var_other
;
596 var42
= "Error: intrude is not a legal visibility for classes.";
598 var44
= string__NativeString__to_s_with_length(var42
, var43
);
603 modelbuilder__ModelBuilder__error(self
, var_nvisibility
, var41
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
614 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
615 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
616 /* <var_:Int> isa OTHER */
617 var48
= 1; /* easy <var_:Int> isa OTHER*/
618 if (unlikely(!var48
)) {
619 var_class_name
= type_kernel__Int
.name
;
620 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
621 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
624 var51
= var_i
< var_
;
632 { /* Inline parser_nodes#AStdClassdef#n_formaldefs (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
633 var54
= var_nclassdef
->attrs
[COLOR_parser_nodes__AStdClassdef___n_formaldefs
].val
; /* _n_formaldefs on <var_nclassdef:AClassdef(AStdClassdef)> */
634 if (unlikely(var54
== NULL
)) {
635 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_formaldefs");
636 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 940);
644 var55
= parser_nodes__ANodes___91d_93d(var52
, var_i
);
648 { /* Inline parser_nodes#AFormaldef#n_id (var_nfd) on <var_nfd:AFormaldef> */
649 var58
= var_nfd
->attrs
[COLOR_parser_nodes__AFormaldef___n_id
].val
; /* _n_id on <var_nfd:AFormaldef> */
650 if (unlikely(var58
== NULL
)) {
651 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
652 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 997);
660 var59
= lexer_work__Token__text(var56
);
664 var60
= array__AbstractArrayRead__has(var_names
, var_ptname
);
670 var63
= "Error: A formal parameter type `";
672 var65
= string__NativeString__to_s_with_length(var63
, var64
);
679 var68
= "\' already exists";
681 var70
= string__NativeString__to_s_with_length(var68
, var69
);
685 var71
= NEW_array__Array(&type_array__Arraykernel__Object
);
686 { /* var71 = array_instance Array[Object] */
688 var73
= NEW_array__NativeArray(var72
, &type_array__NativeArraykernel__Object
);
689 ((struct instance_array__NativeArray
*)var73
)->values
[0] = (val
*) var62
;
690 ((struct instance_array__NativeArray
*)var73
)->values
[1] = (val
*) var_ptname
;
691 ((struct instance_array__NativeArray
*)var73
)->values
[2] = (val
*) var67
;
693 ((void (*)(val
*, val
*, long))(var71
->class->vft
[COLOR_array__Array__with_native
]))(var71
, var73
, var72
) /* with_native on <var71:Array[Object]>*/;
697 var74
= ((val
* (*)(val
*))(var71
->class->vft
[COLOR_string__Object__to_s
]))(var71
) /* to_s on <var71:Array[Object]>*/;
700 modelbuilder__ModelBuilder__error(self
, var_nfd
, var74
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
706 { /* Inline string#FlatString#chars (var_ptname) on <var_ptname:String> */
707 var77
= var_ptname
->attrs
[COLOR_string__FlatString___chars
].val
; /* _chars on <var_ptname:String> */
708 if (unlikely(var77
== NULL
)) {
709 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
710 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 939);
719 var79
= ((val
* (*)(val
*))(var_78
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_78
) /* iterator on <var_78:SequenceRead[Char]>*/;
724 var81
= ((short int (*)(val
*))(var_80
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_80
) /* is_ok on <var_80:IndexedIterator[Char]>*/;
728 var82
= ((val
* (*)(val
*))(var_80
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_80
) /* item on <var_80:IndexedIterator[Char]>*/;
730 var83
= ((struct instance_kernel__Char
*)var82
)->value
; /* autounbox from nullable Object to Char */;
734 { /* Inline kernel#Char#>= (var_c,var85) on <var_c:Char> */
735 /* Covariant cast for argument 0 (i) <var85:Char> isa OTHER */
736 /* <var85:Char> isa OTHER */
737 var88
= 1; /* easy <var85:Char> isa OTHER*/
738 if (unlikely(!var88
)) {
739 var_class_name91
= type_kernel__Char
.name
;
740 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name91
);
741 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 547);
744 var92
= var_c
>= var85
;
754 { /* Inline kernel#Char#<= (var_c,var94) on <var_c:Char> */
755 /* Covariant cast for argument 0 (i) <var94:Char> isa OTHER */
756 /* <var94:Char> isa OTHER */
757 var97
= 1; /* easy <var94:Char> isa OTHER*/
758 if (unlikely(!var97
)) {
759 var_class_name100
= type_kernel__Char
.name
;
760 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name100
);
761 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 545);
764 var101
= var_c
<= var94
;
778 var104
= "formal-type-name";
780 var106
= string__NativeString__to_s_with_length(var104
, var105
);
787 var109
= "Warning: lowercase in the formal parameter type ";
789 var111
= string__NativeString__to_s_with_length(var109
, var110
);
793 var112
= NEW_array__Array(&type_array__Arraykernel__Object
);
794 { /* var112 = array_instance Array[Object] */
796 var114
= NEW_array__NativeArray(var113
, &type_array__NativeArraykernel__Object
);
797 ((struct instance_array__NativeArray
*)var114
)->values
[0] = (val
*) var108
;
798 ((struct instance_array__NativeArray
*)var114
)->values
[1] = (val
*) var_ptname
;
800 ((void (*)(val
*, val
*, long))(var112
->class->vft
[COLOR_array__Array__with_native
]))(var112
, var114
, var113
) /* with_native on <var112:Array[Object]>*/;
804 var115
= ((val
* (*)(val
*))(var112
->class->vft
[COLOR_string__Object__to_s
]))(var112
) /* to_s on <var112:Array[Object]>*/;
807 modelbuilder__ModelBuilder__warning(self
, var_nfd
, var103
, var115
); /* Direct call modelbuilder#ModelBuilder#warning on <self:ModelBuilder>*/
813 ((void (*)(val
*))(var_80
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_80
) /* next on <var_80:IndexedIterator[Char]>*/;
819 BREAK_label
: (void)0;
821 { /* Inline abstract_collection#Iterator#finish (var_80) on <var_80:IndexedIterator[Char]> */
822 RET_LABEL116
:(void)0;
826 array__Array__add(var_names
, var_ptname
); /* Direct call array#Array#add on <var_names:Array[String]>*/
830 var118
= kernel__Int__successor(var_i
, var117
);
837 BREAK_label119
: (void)0;
839 /* <var_nclassdef:AClassdef> isa ATopClassdef */
840 cltype121
= type_parser_nodes__ATopClassdef
.color
;
841 idtype122
= type_parser_nodes__ATopClassdef
.id
;
842 if(cltype121
>= var_nclassdef
->type
->table_size
) {
845 var120
= var_nclassdef
->type
->type_table
[cltype121
] == idtype122
;
853 var127
= string__NativeString__to_s_with_length(var125
, var126
);
861 var129
= model__Object__interface_kind(self
);
865 var_nvisibility
= var130
;
867 var131
= model_base__Object__public_visibility(self
);
869 var_mvisibility
= var131
;
871 /* <var_nclassdef:AClassdef> isa AMainClassdef */
872 cltype133
= type_parser_nodes__AMainClassdef
.color
;
873 idtype134
= type_parser_nodes__AMainClassdef
.id
;
874 if(cltype133
>= var_nclassdef
->type
->table_size
) {
877 var132
= var_nclassdef
->type
->type_table
[cltype133
] == idtype134
;
885 var139
= string__NativeString__to_s_with_length(var137
, var138
);
893 var141
= model__Object__concrete_kind(self
);
897 var_nvisibility
= var142
;
899 var143
= model_base__Object__public_visibility(self
);
901 var_mvisibility
= var143
;
903 PRINT_ERROR("Runtime error: %s", "Aborted");
904 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 90);
910 var144
= modelbuilder__ModelBuilder__try_get_mclass_by_name(self
, var_nclassdef
, var_mmodule
, var_name
);
914 if (var_mclass
== NULL
) {
915 var146
= 1; /* is null */
917 var146
= 0; /* arg is null but recv is not */
920 { /* Inline kernel#Object#== (var_mclass,var145) on <var_mclass:nullable MClass> */
923 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
924 var151
= var_mclass
== var_other
;
927 RET_LABEL150
:(void)0;
932 RET_LABEL148
:(void)0;
937 /* <var_nclassdef:AClassdef> isa AStdClassdef */
938 cltype154
= type_parser_nodes__AStdClassdef
.color
;
939 idtype155
= type_parser_nodes__AStdClassdef
.id
;
940 if(cltype154
>= var_nclassdef
->type
->table_size
) {
943 var153
= var_nclassdef
->type
->type_table
[cltype154
] == idtype155
;
948 { /* Inline parser_nodes#AStdClassdef#n_kwredef (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
949 var159
= var_nclassdef
->attrs
[COLOR_parser_nodes__AStdClassdef___n_kwredef
].val
; /* _n_kwredef on <var_nclassdef:AClassdef(AStdClassdef)> */
951 RET_LABEL158
:(void)0;
955 if (var157
== NULL
) {
956 var161
= 0; /* is null */
958 var161
= 1; /* arg is null and recv is not */
961 { /* Inline kernel#Object#!= (var157,var160) on <var157:nullable TKwredef> */
962 var_other164
= var160
;
964 var166
= ((short int (*)(val
*, val
*))(var157
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var157
, var_other164
) /* == on <var157:nullable TKwredef(TKwredef)>*/;
970 RET_LABEL163
:(void)0;
982 var170
= "Redef error: No imported class ";
984 var172
= string__NativeString__to_s_with_length(var170
, var171
);
991 var175
= " to refine.";
993 var177
= string__NativeString__to_s_with_length(var175
, var176
);
997 var178
= NEW_array__Array(&type_array__Arraykernel__Object
);
998 { /* var178 = array_instance Array[Object] */
1000 var180
= NEW_array__NativeArray(var179
, &type_array__NativeArraykernel__Object
);
1001 ((struct instance_array__NativeArray
*)var180
)->values
[0] = (val
*) var169
;
1002 ((struct instance_array__NativeArray
*)var180
)->values
[1] = (val
*) var_name
;
1003 ((struct instance_array__NativeArray
*)var180
)->values
[2] = (val
*) var174
;
1005 ((void (*)(val
*, val
*, long))(var178
->class->vft
[COLOR_array__Array__with_native
]))(var178
, var180
, var179
) /* with_native on <var178:Array[Object]>*/;
1009 var181
= ((val
* (*)(val
*))(var178
->class->vft
[COLOR_string__Object__to_s
]))(var178
) /* to_s on <var178:Array[Object]>*/;
1012 modelbuilder__ModelBuilder__error(self
, var_nclassdef
, var181
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
1017 var182
= NEW_model__MClass(&type_model__MClass
);
1019 model__MClass__init(var182
, var_mmodule
, var_name
, var_names
, var_mkind
, var_mvisibility
); /* Direct call model#MClass#init on <var182:MClass>*/
1021 var_mclass
= var182
;
1023 /* <var_nclassdef:AClassdef> isa AStdClassdef */
1024 cltype185
= type_parser_nodes__AStdClassdef
.color
;
1025 idtype186
= type_parser_nodes__AStdClassdef
.id
;
1026 if(cltype185
>= var_nclassdef
->type
->table_size
) {
1029 var184
= var_nclassdef
->type
->type_table
[cltype185
] == idtype186
;
1034 { /* Inline modelize_class#AModule#mclass2nclassdef (var_nmodule) on <var_nmodule:AModule> */
1035 var190
= var_nmodule
->attrs
[COLOR_modelize_class__AModule___mclass2nclassdef
].val
; /* _mclass2nclassdef on <var_nmodule:AModule> */
1036 if (unlikely(var190
== NULL
)) {
1037 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass2nclassdef");
1038 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 526);
1042 RET_LABEL189
:(void)0;
1046 var191
= abstract_collection__MapRead__has_key(var188
, var_mclass
);
1054 var193
= varonce192
;
1056 var194
= "Error: A class ";
1058 var196
= string__NativeString__to_s_with_length(var194
, var195
);
1060 varonce192
= var193
;
1063 var198
= varonce197
;
1065 var199
= " is already defined at line ";
1067 var201
= string__NativeString__to_s_with_length(var199
, var200
);
1069 varonce197
= var198
;
1072 { /* Inline modelize_class#AModule#mclass2nclassdef (var_nmodule) on <var_nmodule:AModule> */
1073 var204
= var_nmodule
->attrs
[COLOR_modelize_class__AModule___mclass2nclassdef
].val
; /* _mclass2nclassdef on <var_nmodule:AModule> */
1074 if (unlikely(var204
== NULL
)) {
1075 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass2nclassdef");
1076 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 526);
1080 RET_LABEL203
:(void)0;
1084 var205
= ((val
* (*)(val
*, val
*))(var202
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var202
, var_mclass
) /* [] on <var202:Map[MClass, AClassdef]>*/;
1087 { /* Inline parser_nodes#ANode#location (var205) on <var205:nullable Object(AClassdef)> */
1088 var208
= var205
->attrs
[COLOR_parser_nodes__ANode___location
].val
; /* _location on <var205:nullable Object(AClassdef)> */
1089 if (unlikely(var208
== NULL
)) {
1090 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
1091 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 23);
1095 RET_LABEL207
:(void)0;
1099 { /* Inline location#Location#line_start (var206) on <var206:Location> */
1100 var211
= var206
->attrs
[COLOR_location__Location___line_start
].l
; /* _line_start on <var206:Location> */
1102 RET_LABEL210
:(void)0;
1106 var213
= varonce212
;
1110 var216
= string__NativeString__to_s_with_length(var214
, var215
);
1112 varonce212
= var213
;
1114 var217
= NEW_array__Array(&type_array__Arraykernel__Object
);
1115 { /* var217 = array_instance Array[Object] */
1117 var219
= NEW_array__NativeArray(var218
, &type_array__NativeArraykernel__Object
);
1118 ((struct instance_array__NativeArray
*)var219
)->values
[0] = (val
*) var193
;
1119 ((struct instance_array__NativeArray
*)var219
)->values
[1] = (val
*) var_name
;
1120 ((struct instance_array__NativeArray
*)var219
)->values
[2] = (val
*) var198
;
1121 var220
= BOX_kernel__Int(var209
); /* autobox from Int to Object */
1122 ((struct instance_array__NativeArray
*)var219
)->values
[3] = (val
*) var220
;
1123 ((struct instance_array__NativeArray
*)var219
)->values
[4] = (val
*) var213
;
1125 ((void (*)(val
*, val
*, long))(var217
->class->vft
[COLOR_array__Array__with_native
]))(var217
, var219
, var218
) /* with_native on <var217:Array[Object]>*/;
1129 var221
= ((val
* (*)(val
*))(var217
->class->vft
[COLOR_string__Object__to_s
]))(var217
) /* to_s on <var217:Array[Object]>*/;
1132 modelbuilder__ModelBuilder__error(self
, var_nclassdef
, var221
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
1136 /* <var_nclassdef:AClassdef> isa AStdClassdef */
1137 cltype224
= type_parser_nodes__AStdClassdef
.color
;
1138 idtype225
= type_parser_nodes__AStdClassdef
.id
;
1139 if(cltype224
>= var_nclassdef
->type
->table_size
) {
1142 var223
= var_nclassdef
->type
->type_table
[cltype224
] == idtype225
;
1147 { /* Inline parser_nodes#AStdClassdef#n_kwredef (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
1148 var229
= var_nclassdef
->attrs
[COLOR_parser_nodes__AStdClassdef___n_kwredef
].val
; /* _n_kwredef on <var_nclassdef:AClassdef(AStdClassdef)> */
1150 RET_LABEL228
:(void)0;
1154 if (var227
== NULL
) {
1155 var231
= 1; /* is null */
1157 var231
= 0; /* arg is null but recv is not */
1160 { /* Inline kernel#Object#== (var227,var230) on <var227:nullable TKwredef> */
1163 { /* Inline kernel#Object#is_same_instance (var227,var_other) on <var227:nullable TKwredef(TKwredef)> */
1164 var236
= var227
== var_other
;
1167 RET_LABEL235
:(void)0;
1172 RET_LABEL233
:(void)0;
1182 var238
= varonce237
;
1184 var239
= "Redef error: ";
1186 var241
= string__NativeString__to_s_with_length(var239
, var240
);
1188 varonce237
= var238
;
1191 var243
= varonce242
;
1193 var244
= " is an imported class. Add the redef keyword to refine it.";
1195 var246
= string__NativeString__to_s_with_length(var244
, var245
);
1197 varonce242
= var243
;
1199 var247
= NEW_array__Array(&type_array__Arraykernel__Object
);
1200 { /* var247 = array_instance Array[Object] */
1202 var249
= NEW_array__NativeArray(var248
, &type_array__NativeArraykernel__Object
);
1203 ((struct instance_array__NativeArray
*)var249
)->values
[0] = (val
*) var238
;
1204 ((struct instance_array__NativeArray
*)var249
)->values
[1] = (val
*) var_name
;
1205 ((struct instance_array__NativeArray
*)var249
)->values
[2] = (val
*) var243
;
1207 ((void (*)(val
*, val
*, long))(var247
->class->vft
[COLOR_array__Array__with_native
]))(var247
, var249
, var248
) /* with_native on <var247:Array[Object]>*/;
1211 var250
= ((val
* (*)(val
*))(var247
->class->vft
[COLOR_string__Object__to_s
]))(var247
) /* to_s on <var247:Array[Object]>*/;
1214 modelbuilder__ModelBuilder__error(self
, var_nclassdef
, var250
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
1220 { /* Inline kernel#Int#!= (var_arity,var252) on <var_arity:Int> */
1221 var256
= var_arity
== var252
;
1225 RET_LABEL255
:(void)0;
1232 { /* Inline model#MClass#arity (var_mclass) on <var_mclass:nullable MClass(MClass)> */
1233 var261
= var_mclass
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <var_mclass:nullable MClass(MClass)> */
1235 RET_LABEL260
:(void)0;
1239 { /* Inline kernel#Int#!= (var259,var_arity) on <var259:Int> */
1240 var265
= var259
== var_arity
;
1244 RET_LABEL264
:(void)0;
1254 var268
= varonce267
;
1256 var269
= "Redef error: Formal parameter arity missmatch; got ";
1258 var271
= string__NativeString__to_s_with_length(var269
, var270
);
1260 varonce267
= var268
;
1263 var273
= varonce272
;
1265 var274
= ", expected ";
1267 var276
= string__NativeString__to_s_with_length(var274
, var275
);
1269 varonce272
= var273
;
1272 { /* Inline model#MClass#arity (var_mclass) on <var_mclass:nullable MClass(MClass)> */
1273 var279
= var_mclass
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <var_mclass:nullable MClass(MClass)> */
1275 RET_LABEL278
:(void)0;
1279 var281
= varonce280
;
1283 var284
= string__NativeString__to_s_with_length(var282
, var283
);
1285 varonce280
= var281
;
1287 var285
= NEW_array__Array(&type_array__Arraykernel__Object
);
1288 { /* var285 = array_instance Array[Object] */
1290 var287
= NEW_array__NativeArray(var286
, &type_array__NativeArraykernel__Object
);
1291 ((struct instance_array__NativeArray
*)var287
)->values
[0] = (val
*) var268
;
1292 var288
= BOX_kernel__Int(var_arity
); /* autobox from Int to Object */
1293 ((struct instance_array__NativeArray
*)var287
)->values
[1] = (val
*) var288
;
1294 ((struct instance_array__NativeArray
*)var287
)->values
[2] = (val
*) var273
;
1295 var289
= BOX_kernel__Int(var277
); /* autobox from Int to Object */
1296 ((struct instance_array__NativeArray
*)var287
)->values
[3] = (val
*) var289
;
1297 ((struct instance_array__NativeArray
*)var287
)->values
[4] = (val
*) var281
;
1299 ((void (*)(val
*, val
*, long))(var285
->class->vft
[COLOR_array__Array__with_native
]))(var285
, var287
, var286
) /* with_native on <var285:Array[Object]>*/;
1303 var290
= ((val
* (*)(val
*))(var285
->class->vft
[COLOR_string__Object__to_s
]))(var285
) /* to_s on <var285:Array[Object]>*/;
1306 modelbuilder__ModelBuilder__error(self
, var_nclassdef
, var290
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
1311 if (var_nkind
== NULL
) {
1312 var294
= 0; /* is null */
1314 var294
= 1; /* arg is null and recv is not */
1317 { /* Inline kernel#Object#!= (var_nkind,var293) on <var_nkind:nullable AClasskind> */
1318 var_other164
= var293
;
1320 var298
= ((short int (*)(val
*, val
*))(var_nkind
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_nkind
, var_other164
) /* == on <var_nkind:nullable AClasskind(AClasskind)>*/;
1326 RET_LABEL296
:(void)0;
1333 var301
= model__Object__concrete_kind(self
);
1336 { /* Inline kernel#Object#!= (var_mkind,var301) on <var_mkind:MClassKind> */
1337 var_other164
= var301
;
1339 var306
= ((short int (*)(val
*, val
*))(var_mkind
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mkind
, var_other164
) /* == on <var_mkind:MClassKind>*/;
1345 RET_LABEL304
:(void)0;
1356 { /* Inline model#MClass#kind (var_mclass) on <var_mclass:nullable MClass(MClass)> */
1357 var311
= var_mclass
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var_mclass:nullable MClass(MClass)> */
1358 if (unlikely(var311
== NULL
)) {
1359 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
1360 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
1364 RET_LABEL310
:(void)0;
1368 { /* Inline kernel#Object#!= (var309,var_mkind) on <var309:MClassKind> */
1369 var_other164
= var_mkind
;
1371 var316
= ((short int (*)(val
*, val
*))(var309
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var309
, var_other164
) /* == on <var309:MClassKind>*/;
1377 RET_LABEL314
:(void)0;
1387 var319
= varonce318
;
1389 var320
= "Error: refinement changed the kind from a ";
1391 var322
= string__NativeString__to_s_with_length(var320
, var321
);
1393 varonce318
= var319
;
1396 { /* Inline model#MClass#kind (var_mclass) on <var_mclass:nullable MClass(MClass)> */
1397 var325
= var_mclass
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var_mclass:nullable MClass(MClass)> */
1398 if (unlikely(var325
== NULL
)) {
1399 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
1400 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
1404 RET_LABEL324
:(void)0;
1408 var327
= varonce326
;
1412 var330
= string__NativeString__to_s_with_length(var328
, var329
);
1414 varonce326
= var327
;
1416 var331
= NEW_array__Array(&type_array__Arraykernel__Object
);
1417 { /* var331 = array_instance Array[Object] */
1419 var333
= NEW_array__NativeArray(var332
, &type_array__NativeArraykernel__Object
);
1420 ((struct instance_array__NativeArray
*)var333
)->values
[0] = (val
*) var319
;
1421 ((struct instance_array__NativeArray
*)var333
)->values
[1] = (val
*) var323
;
1422 ((struct instance_array__NativeArray
*)var333
)->values
[2] = (val
*) var327
;
1423 ((struct instance_array__NativeArray
*)var333
)->values
[3] = (val
*) var_mkind
;
1425 ((void (*)(val
*, val
*, long))(var331
->class->vft
[COLOR_array__Array__with_native
]))(var331
, var333
, var332
) /* with_native on <var331:Array[Object]>*/;
1429 var334
= ((val
* (*)(val
*))(var331
->class->vft
[COLOR_string__Object__to_s
]))(var331
) /* to_s on <var331:Array[Object]>*/;
1432 modelbuilder__ModelBuilder__error(self
, var_nkind
, var334
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
1436 if (var_nvisibility
== NULL
) {
1437 var338
= 0; /* is null */
1439 var338
= 1; /* arg is null and recv is not */
1442 { /* Inline kernel#Object#!= (var_nvisibility,var337) on <var_nvisibility:nullable AVisibility> */
1443 var_other164
= var337
;
1445 var342
= ((short int (*)(val
*, val
*))(var_nvisibility
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_nvisibility
, var_other164
) /* == on <var_nvisibility:nullable AVisibility(AVisibility)>*/;
1451 RET_LABEL340
:(void)0;
1458 var345
= model_base__Object__public_visibility(self
);
1461 { /* Inline kernel#Object#!= (var_mvisibility,var345) on <var_mvisibility:nullable MVisibility(MVisibility)> */
1462 var_other164
= var345
;
1464 var350
= ((short int (*)(val
*, val
*))(var_mvisibility
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mvisibility
, var_other164
) /* == on <var_mvisibility:nullable MVisibility(MVisibility)>*/;
1470 RET_LABEL348
:(void)0;
1481 { /* Inline model#MClass#visibility (var_mclass) on <var_mclass:nullable MClass(MClass)> */
1482 var355
= var_mclass
->attrs
[COLOR_model__MClass___visibility
].val
; /* _visibility on <var_mclass:nullable MClass(MClass)> */
1483 if (unlikely(var355
== NULL
)) {
1484 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
1485 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 375);
1489 RET_LABEL354
:(void)0;
1493 { /* Inline kernel#Object#!= (var353,var_mvisibility) on <var353:MVisibility> */
1494 var_other164
= var_mvisibility
;
1496 var360
= ((short int (*)(val
*, val
*))(var353
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var353
, var_other164
) /* == on <var353:MVisibility>*/;
1502 RET_LABEL358
:(void)0;
1512 var363
= varonce362
;
1514 var364
= "Error: refinement changed the visibility from a ";
1516 var366
= string__NativeString__to_s_with_length(var364
, var365
);
1518 varonce362
= var363
;
1521 { /* Inline model#MClass#visibility (var_mclass) on <var_mclass:nullable MClass(MClass)> */
1522 var369
= var_mclass
->attrs
[COLOR_model__MClass___visibility
].val
; /* _visibility on <var_mclass:nullable MClass(MClass)> */
1523 if (unlikely(var369
== NULL
)) {
1524 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
1525 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 375);
1529 RET_LABEL368
:(void)0;
1533 var371
= varonce370
;
1537 var374
= string__NativeString__to_s_with_length(var372
, var373
);
1539 varonce370
= var371
;
1541 var375
= NEW_array__Array(&type_array__Arraykernel__Object
);
1542 { /* var375 = array_instance Array[Object] */
1544 var377
= NEW_array__NativeArray(var376
, &type_array__NativeArraykernel__Object
);
1545 ((struct instance_array__NativeArray
*)var377
)->values
[0] = (val
*) var363
;
1546 ((struct instance_array__NativeArray
*)var377
)->values
[1] = (val
*) var367
;
1547 ((struct instance_array__NativeArray
*)var377
)->values
[2] = (val
*) var371
;
1548 ((struct instance_array__NativeArray
*)var377
)->values
[3] = (val
*) var_mvisibility
;
1550 ((void (*)(val
*, val
*, long))(var375
->class->vft
[COLOR_array__Array__with_native
]))(var375
, var377
, var376
) /* with_native on <var375:Array[Object]>*/;
1554 var378
= ((val
* (*)(val
*))(var375
->class->vft
[COLOR_string__Object__to_s
]))(var375
) /* to_s on <var375:Array[Object]>*/;
1557 modelbuilder__ModelBuilder__error(self
, var_nvisibility
, var378
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
1567 { /* Inline modelize_class#AClassdef#mclass= (var_nclassdef,var_mclass) on <var_nclassdef:AClassdef> */
1568 var_nclassdef
->attrs
[COLOR_modelize_class__AClassdef___mclass
].val
= var_mclass
; /* _mclass on <var_nclassdef:AClassdef> */
1569 RET_LABEL379
:(void)0;
1573 { /* Inline modelize_class#AModule#mclass2nclassdef (var_nmodule) on <var_nmodule:AModule> */
1574 var382
= var_nmodule
->attrs
[COLOR_modelize_class__AModule___mclass2nclassdef
].val
; /* _mclass2nclassdef on <var_nmodule:AModule> */
1575 if (unlikely(var382
== NULL
)) {
1576 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass2nclassdef");
1577 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 526);
1581 RET_LABEL381
:(void)0;
1585 var383
= abstract_collection__MapRead__has_key(var380
, var_mclass
);
1590 { /* Inline modelize_class#AModule#mclass2nclassdef (var_nmodule) on <var_nmodule:AModule> */
1591 var387
= var_nmodule
->attrs
[COLOR_modelize_class__AModule___mclass2nclassdef
].val
; /* _mclass2nclassdef on <var_nmodule:AModule> */
1592 if (unlikely(var387
== NULL
)) {
1593 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass2nclassdef");
1594 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 526);
1598 RET_LABEL386
:(void)0;
1602 ((void (*)(val
*, val
*, val
*))(var385
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var385
, var_mclass
, var_nclassdef
) /* []= on <var385:Map[MClass, AClassdef]>*/;
1604 var388
= NEW_array__Array(&type_array__Arrayparser_nodes__AClassdef
);
1607 array__Array__with_capacity(var388
, var389
); /* Direct call array#Array#with_capacity on <var388:Array[AClassdef]>*/
1611 array__AbstractArray__push(var_390
, var_nclassdef
); /* Direct call array#AbstractArray#push on <var_390:Array[AClassdef]>*/
1614 { /* Inline modelize_class#AClassdef#all_defs= (var_nclassdef,var_390) on <var_nclassdef:AClassdef> */
1615 var_nclassdef
->attrs
[COLOR_modelize_class__AClassdef___all_defs
].val
= var_390
; /* _all_defs on <var_nclassdef:AClassdef> */
1616 RET_LABEL391
:(void)0;
1621 { /* Inline modelize_class#AModule#mclass2nclassdef (var_nmodule) on <var_nmodule:AModule> */
1622 var394
= var_nmodule
->attrs
[COLOR_modelize_class__AModule___mclass2nclassdef
].val
; /* _mclass2nclassdef on <var_nmodule:AModule> */
1623 if (unlikely(var394
== NULL
)) {
1624 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass2nclassdef");
1625 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 526);
1629 RET_LABEL393
:(void)0;
1633 var395
= ((val
* (*)(val
*, val
*))(var392
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var392
, var_mclass
) /* [] on <var392:Map[MClass, AClassdef]>*/;
1636 { /* Inline modelize_class#AClassdef#all_defs (var395) on <var395:nullable Object(AClassdef)> */
1637 var398
= var395
->attrs
[COLOR_modelize_class__AClassdef___all_defs
].val
; /* _all_defs on <var395:nullable Object(AClassdef)> */
1639 RET_LABEL397
:(void)0;
1642 if (var396
== NULL
) {
1643 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1644 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 120);
1647 array__Array__add(var396
, var_nclassdef
); /* Direct call array#Array#add on <var396:nullable Array[AClassdef]>*/
1652 /* method modelize_class#ModelBuilder#build_a_mclass for (self: Object, AModule, AClassdef) */
1653 void VIRTUAL_modelize_class__ModelBuilder__build_a_mclass(val
* self
, val
* p0
, val
* p1
) {
1654 modelize_class__ModelBuilder__build_a_mclass(self
, p0
, p1
); /* Direct call modelize_class#ModelBuilder#build_a_mclass on <self:Object(ModelBuilder)>*/
1657 /* method modelize_class#ModelBuilder#build_a_mclassdef for (self: ModelBuilder, AModule, AClassdef) */
1658 void modelize_class__ModelBuilder__build_a_mclassdef(val
* self
, val
* p0
, val
* p1
) {
1659 val
* var_nmodule
/* var nmodule: AModule */;
1660 val
* var_nclassdef
/* var nclassdef: AClassdef */;
1661 val
* var
/* : nullable MModule */;
1662 val
* var2
/* : nullable MModule */;
1663 val
* var_mmodule
/* var mmodule: MModule */;
1664 static val
* varonce
;
1665 val
* var3
/* : String */;
1666 char* var4
/* : NativeString */;
1667 long var5
/* : Int */;
1668 val
* var6
/* : FlatString */;
1669 val
* var7
/* : nullable MClass */;
1670 val
* var_objectclass
/* var objectclass: nullable MClass */;
1671 val
* var8
/* : nullable MClass */;
1672 val
* var10
/* : nullable MClass */;
1673 val
* var_mclass
/* var mclass: nullable MClass */;
1674 val
* var11
/* : null */;
1675 short int var12
/* : Bool */;
1676 short int var13
/* : Bool */;
1677 val
* var_other
/* var other: nullable Object */;
1678 short int var15
/* : Bool */;
1679 short int var17
/* : Bool */;
1680 val
* var18
/* : Map[MClass, AClassdef] */;
1681 val
* var20
/* : Map[MClass, AClassdef] */;
1682 val
* var21
/* : nullable Object */;
1683 val
* var_other_nclassdef
/* var other_nclassdef: AClassdef */;
1684 short int var22
/* : Bool */;
1685 short int var23
/* : Bool */;
1686 val
* var_other25
/* var other: nullable Object */;
1687 short int var26
/* : Bool */;
1688 short int var27
/* : Bool */;
1689 short int var28
/* : Bool */;
1690 short int var29
/* : Bool */;
1693 short int var30
/* : Bool */;
1694 val
* var31
/* : nullable MClassDef */;
1695 val
* var33
/* : nullable MClassDef */;
1696 val
* var35
/* : Array[MType] */;
1697 val
* var_bounds
/* var bounds: Array[MType] */;
1698 short int var36
/* : Bool */;
1699 short int var37
/* : Bool */;
1702 short int var_
/* var : Bool */;
1703 long var40
/* : Int */;
1704 long var42
/* : Int */;
1705 long var43
/* : Int */;
1706 short int var44
/* : Bool */;
1707 short int var46
/* : Bool */;
1710 const char* var_class_name
;
1711 short int var49
/* : Bool */;
1712 long var50
/* : Int */;
1713 long var_i
/* var i: Int */;
1714 long var51
/* : Int */;
1715 long var53
/* : Int */;
1716 long var_54
/* var : Int */;
1717 short int var55
/* : Bool */;
1718 short int var57
/* : Bool */;
1721 const char* var_class_name60
;
1722 short int var61
/* : Bool */;
1723 val
* var62
/* : ANodes[AFormaldef] */;
1724 val
* var64
/* : ANodes[AFormaldef] */;
1725 short int var65
/* : Bool */;
1726 val
* var66
/* : MClassDef */;
1727 val
* var68
/* : MClassDef */;
1728 val
* var69
/* : MClassType */;
1729 val
* var71
/* : MClassType */;
1730 val
* var72
/* : Array[MType] */;
1731 val
* var74
/* : Array[MType] */;
1732 val
* var75
/* : nullable Object */;
1733 val
* var_bound
/* var bound: MType */;
1734 val
* var76
/* : ANodes[AFormaldef] */;
1735 val
* var78
/* : ANodes[AFormaldef] */;
1736 val
* var79
/* : ANode */;
1737 val
* var_nfd
/* var nfd: AFormaldef */;
1738 val
* var80
/* : Array[MParameterType] */;
1739 val
* var82
/* : Array[MParameterType] */;
1740 val
* var83
/* : nullable Object */;
1741 val
* var84
/* : String */;
1742 val
* var86
/* : String */;
1743 val
* var_pname
/* var pname: String */;
1744 val
* var87
/* : TClassid */;
1745 val
* var89
/* : TClassid */;
1746 val
* var90
/* : String */;
1747 short int var91
/* : Bool */;
1748 short int var92
/* : Bool */;
1749 short int var94
/* : Bool */;
1750 short int var95
/* : Bool */;
1751 short int var96
/* : Bool */;
1752 val
* var97
/* : TClassid */;
1753 val
* var99
/* : TClassid */;
1754 static val
* varonce100
;
1755 val
* var101
/* : String */;
1756 char* var102
/* : NativeString */;
1757 long var103
/* : Int */;
1758 val
* var104
/* : FlatString */;
1759 static val
* varonce105
;
1760 val
* var106
/* : String */;
1761 char* var107
/* : NativeString */;
1762 long var108
/* : Int */;
1763 val
* var109
/* : FlatString */;
1764 val
* var110
/* : TClassid */;
1765 val
* var112
/* : TClassid */;
1766 val
* var113
/* : String */;
1767 static val
* varonce114
;
1768 val
* var115
/* : String */;
1769 char* var116
/* : NativeString */;
1770 long var117
/* : Int */;
1771 val
* var118
/* : FlatString */;
1772 static val
* varonce119
;
1773 val
* var120
/* : String */;
1774 char* var121
/* : NativeString */;
1775 long var122
/* : Int */;
1776 val
* var123
/* : FlatString */;
1777 val
* var124
/* : MClassDef */;
1778 val
* var126
/* : MClassDef */;
1779 val
* var127
/* : MModule */;
1780 val
* var129
/* : MModule */;
1781 static val
* varonce130
;
1782 val
* var131
/* : String */;
1783 char* var132
/* : NativeString */;
1784 long var133
/* : Int */;
1785 val
* var134
/* : FlatString */;
1786 val
* var135
/* : Array[Object] */;
1787 long var136
/* : Int */;
1788 val
* var137
/* : NativeArray[Object] */;
1789 val
* var138
/* : Object */;
1790 val
* var139
/* : String */;
1791 val
* var140
/* : nullable AType */;
1792 val
* var142
/* : nullable AType */;
1793 val
* var_nfdt
/* var nfdt: nullable AType */;
1794 val
* var143
/* : null */;
1795 short int var144
/* : Bool */;
1796 short int var145
/* : Bool */;
1797 short int var147
/* : Bool */;
1798 short int var148
/* : Bool */;
1799 short int var149
/* : Bool */;
1800 val
* var150
/* : null */;
1801 short int var151
/* : Bool */;
1802 val
* var152
/* : nullable MType */;
1803 val
* var_bound153
/* var bound: nullable MType */;
1804 val
* var154
/* : null */;
1805 short int var155
/* : Bool */;
1806 short int var156
/* : Bool */;
1807 short int var158
/* : Bool */;
1808 short int var160
/* : Bool */;
1809 short int var161
/* : Bool */;
1810 static val
* varonce162
;
1811 val
* var163
/* : String */;
1812 char* var164
/* : NativeString */;
1813 long var165
/* : Int */;
1814 val
* var166
/* : FlatString */;
1815 static val
* varonce167
;
1816 val
* var168
/* : String */;
1817 char* var169
/* : NativeString */;
1818 long var170
/* : Int */;
1819 val
* var171
/* : FlatString */;
1820 val
* var172
/* : Array[Object] */;
1821 long var173
/* : Int */;
1822 val
* var174
/* : NativeArray[Object] */;
1823 val
* var175
/* : String */;
1824 short int var177
/* : Bool */;
1825 short int var178
/* : Bool */;
1828 short int var_181
/* var : Bool */;
1829 val
* var182
/* : MClass */;
1830 val
* var184
/* : MClass */;
1831 val
* var185
/* : MClassKind */;
1832 val
* var187
/* : MClassKind */;
1833 val
* var188
/* : MClassKind */;
1834 short int var189
/* : Bool */;
1835 short int var190
/* : Bool */;
1836 short int var192
/* : Bool */;
1837 short int var194
/* : Bool */;
1838 static val
* varonce195
;
1839 val
* var196
/* : String */;
1840 char* var197
/* : NativeString */;
1841 long var198
/* : Int */;
1842 val
* var199
/* : FlatString */;
1843 static val
* varonce200
;
1844 val
* var201
/* : String */;
1845 char* var202
/* : NativeString */;
1846 long var203
/* : Int */;
1847 val
* var204
/* : FlatString */;
1848 static val
* varonce205
;
1849 val
* var206
/* : String */;
1850 char* var207
/* : NativeString */;
1851 long var208
/* : Int */;
1852 val
* var209
/* : FlatString */;
1853 val
* var210
/* : Array[Object] */;
1854 long var211
/* : Int */;
1855 val
* var212
/* : NativeArray[Object] */;
1856 val
* var213
/* : String */;
1857 val
* var214
/* : Array[MClassDef] */;
1858 val
* var216
/* : Array[MClassDef] */;
1859 short int var217
/* : Bool */;
1860 val
* var218
/* : MClassType */;
1861 val
* var220
/* : MClassType */;
1862 val
* var221
/* : MType */;
1863 val
* var_bound222
/* var bound: MType */;
1864 val
* var224
/* : MClassDef */;
1865 val
* var226
/* : MClassDef */;
1866 val
* var227
/* : MClassType */;
1867 val
* var229
/* : MClassType */;
1868 val
* var230
/* : Array[MType] */;
1869 val
* var232
/* : Array[MType] */;
1870 val
* var233
/* : nullable Object */;
1871 val
* var_bound234
/* var bound: MType */;
1872 long var236
/* : Int */;
1873 long var237
/* : Int */;
1874 val
* var239
/* : MClassType */;
1875 val
* var_bound_mtype
/* var bound_mtype: MClassType */;
1876 val
* var240
/* : MClassDef */;
1877 val
* var241
/* : Location */;
1878 val
* var243
/* : Location */;
1879 val
* var_mclassdef
/* var mclassdef: MClassDef */;
1880 val
* var245
/* : HashMap[MClassDef, AClassdef] */;
1881 val
* var247
/* : HashMap[MClassDef, AClassdef] */;
1882 short int var248
/* : Bool */;
1885 val
* var251
/* : nullable ADoc */;
1886 val
* var253
/* : nullable ADoc */;
1887 val
* var_ndoc
/* var ndoc: nullable ADoc */;
1888 val
* var254
/* : null */;
1889 short int var255
/* : Bool */;
1890 short int var256
/* : Bool */;
1891 short int var258
/* : Bool */;
1892 short int var259
/* : Bool */;
1893 short int var260
/* : Bool */;
1894 val
* var261
/* : MDoc */;
1895 val
* var_mdoc
/* var mdoc: MDoc */;
1896 short int var264
/* : Bool */;
1897 short int var265
/* : Bool */;
1898 short int var_266
/* var : Bool */;
1899 val
* var267
/* : MVisibility */;
1900 val
* var269
/* : MVisibility */;
1901 val
* var270
/* : MVisibility */;
1902 short int var271
/* : Bool */;
1903 static val
* varonce272
;
1904 val
* var273
/* : String */;
1905 char* var274
/* : NativeString */;
1906 long var275
/* : Int */;
1907 val
* var276
/* : FlatString */;
1908 static val
* varonce277
;
1909 val
* var278
/* : String */;
1910 char* var279
/* : NativeString */;
1911 long var280
/* : Int */;
1912 val
* var281
/* : FlatString */;
1913 static val
* varonce282
;
1914 val
* var283
/* : String */;
1915 char* var284
/* : NativeString */;
1916 long var285
/* : Int */;
1917 val
* var286
/* : FlatString */;
1918 val
* var287
/* : Array[Object] */;
1919 long var288
/* : Int */;
1920 val
* var289
/* : NativeArray[Object] */;
1921 val
* var290
/* : String */;
1922 short int var291
/* : Bool */;
1923 val
* var292
/* : ToolContext */;
1924 val
* var294
/* : ToolContext */;
1925 static val
* varonce295
;
1926 val
* var296
/* : String */;
1927 char* var297
/* : NativeString */;
1928 long var298
/* : Int */;
1929 val
* var299
/* : FlatString */;
1930 val
* var300
/* : MClassKind */;
1931 val
* var302
/* : MClassKind */;
1932 static val
* varonce303
;
1933 val
* var304
/* : String */;
1934 char* var305
/* : NativeString */;
1935 long var306
/* : Int */;
1936 val
* var307
/* : FlatString */;
1937 val
* var308
/* : String */;
1938 val
* var309
/* : Array[Object] */;
1939 long var310
/* : Int */;
1940 val
* var311
/* : NativeArray[Object] */;
1941 val
* var312
/* : String */;
1942 long var313
/* : Int */;
1943 val
* var314
/* : ToolContext */;
1944 val
* var316
/* : ToolContext */;
1945 static val
* varonce317
;
1946 val
* var318
/* : String */;
1947 char* var319
/* : NativeString */;
1948 long var320
/* : Int */;
1949 val
* var321
/* : FlatString */;
1950 val
* var322
/* : MClassKind */;
1951 val
* var324
/* : MClassKind */;
1952 static val
* varonce325
;
1953 val
* var326
/* : String */;
1954 char* var327
/* : NativeString */;
1955 long var328
/* : Int */;
1956 val
* var329
/* : FlatString */;
1957 val
* var330
/* : String */;
1958 val
* var331
/* : Array[Object] */;
1959 long var332
/* : Int */;
1960 val
* var333
/* : NativeArray[Object] */;
1961 val
* var334
/* : String */;
1962 long var335
/* : Int */;
1966 { /* Inline modelbuilder#AModule#mmodule (var_nmodule) on <var_nmodule:AModule> */
1967 var2
= var_nmodule
->attrs
[COLOR_modelbuilder__AModule___mmodule
].val
; /* _mmodule on <var_nmodule:AModule> */
1972 if (unlikely(var
== NULL
)) {
1973 PRINT_ERROR("Runtime error: %s", "Cast failed");
1974 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 127);
1983 var6
= string__NativeString__to_s_with_length(var4
, var5
);
1988 var7
= modelbuilder__ModelBuilder__try_get_mclass_by_name(self
, var_nmodule
, var_mmodule
, var3
);
1990 var_objectclass
= var7
;
1992 { /* Inline modelize_class#AClassdef#mclass (var_nclassdef) on <var_nclassdef:AClassdef> */
1993 var10
= var_nclassdef
->attrs
[COLOR_modelize_class__AClassdef___mclass
].val
; /* _mclass on <var_nclassdef:AClassdef> */
2000 if (var_mclass
== NULL
) {
2001 var12
= 1; /* is null */
2003 var12
= 0; /* arg is null but recv is not */
2006 { /* Inline kernel#Object#== (var_mclass,var11) on <var_mclass:nullable MClass> */
2009 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
2010 var17
= var_mclass
== var_other
;
2013 RET_LABEL16
:(void)0;
2018 RET_LABEL14
:(void)0;
2027 { /* Inline modelize_class#AModule#mclass2nclassdef (var_nmodule) on <var_nmodule:AModule> */
2028 var20
= var_nmodule
->attrs
[COLOR_modelize_class__AModule___mclass2nclassdef
].val
; /* _mclass2nclassdef on <var_nmodule:AModule> */
2029 if (unlikely(var20
== NULL
)) {
2030 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass2nclassdef");
2031 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 526);
2035 RET_LABEL19
:(void)0;
2039 var21
= ((val
* (*)(val
*, val
*))(var18
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var18
, var_mclass
) /* [] on <var18:Map[MClass, AClassdef]>*/;
2041 var_other_nclassdef
= var21
;
2043 { /* Inline kernel#Object#!= (var_other_nclassdef,var_nclassdef) on <var_other_nclassdef:AClassdef> */
2044 var_other25
= var_nclassdef
;
2046 var27
= ((short int (*)(val
*, val
*))(var_other_nclassdef
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_other_nclassdef
, var_other25
) /* == on <var_other_nclassdef:AClassdef>*/;
2052 RET_LABEL24
:(void)0;
2057 /* <var_nclassdef:AClassdef> isa AStdClassdef */
2058 cltype
= type_parser_nodes__AStdClassdef
.color
;
2059 idtype
= type_parser_nodes__AStdClassdef
.id
;
2060 if(cltype
>= var_nclassdef
->type
->table_size
) {
2063 var29
= var_nclassdef
->type
->type_table
[cltype
] == idtype
;
2066 if (unlikely(!var30
)) {
2067 PRINT_ERROR("Runtime error: %s", "Assert failed");
2068 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 135);
2072 { /* Inline modelize_class#AClassdef#mclassdef (var_other_nclassdef) on <var_other_nclassdef:AClassdef> */
2073 var33
= var_other_nclassdef
->attrs
[COLOR_modelize_class__AClassdef___mclassdef
].val
; /* _mclassdef on <var_other_nclassdef:AClassdef> */
2075 RET_LABEL32
:(void)0;
2079 { /* Inline modelize_class#AClassdef#mclassdef= (var_nclassdef,var31) on <var_nclassdef:AClassdef> */
2080 var_nclassdef
->attrs
[COLOR_modelize_class__AClassdef___mclassdef
].val
= var31
; /* _mclassdef on <var_nclassdef:AClassdef> */
2081 RET_LABEL34
:(void)0;
2087 var35
= NEW_array__Array(&type_array__Arraymodel__MType
);
2089 ((void (*)(val
*))(var35
->class->vft
[COLOR_kernel__Object__init
]))(var35
) /* init on <var35:Array[MType]>*/;
2092 /* <var_nclassdef:AClassdef> isa AStdClassdef */
2093 cltype38
= type_parser_nodes__AStdClassdef
.color
;
2094 idtype39
= type_parser_nodes__AStdClassdef
.id
;
2095 if(cltype38
>= var_nclassdef
->type
->table_size
) {
2098 var37
= var_nclassdef
->type
->type_table
[cltype38
] == idtype39
;
2103 { /* Inline model#MClass#arity (var_mclass) on <var_mclass:nullable MClass(MClass)> */
2104 var42
= var_mclass
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <var_mclass:nullable MClass(MClass)> */
2106 RET_LABEL41
:(void)0;
2111 { /* Inline kernel#Int#> (var40,var43) on <var40:Int> */
2112 /* Covariant cast for argument 0 (i) <var43:Int> isa OTHER */
2113 /* <var43:Int> isa OTHER */
2114 var46
= 1; /* easy <var43:Int> isa OTHER*/
2115 if (unlikely(!var46
)) {
2116 var_class_name
= type_kernel__Int
.name
;
2117 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
2118 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
2121 var49
= var40
> var43
;
2124 RET_LABEL45
:(void)0;
2135 { /* Inline model#MClass#arity (var_mclass) on <var_mclass:nullable MClass(MClass)> */
2136 var53
= var_mclass
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <var_mclass:nullable MClass(MClass)> */
2138 RET_LABEL52
:(void)0;
2144 { /* Inline kernel#Int#< (var_i,var_54) on <var_i:Int> */
2145 /* Covariant cast for argument 0 (i) <var_54:Int> isa OTHER */
2146 /* <var_54:Int> isa OTHER */
2147 var57
= 1; /* easy <var_54:Int> isa OTHER*/
2148 if (unlikely(!var57
)) {
2149 var_class_name60
= type_kernel__Int
.name
;
2150 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name60
);
2151 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
2154 var61
= var_i
< var_54
;
2157 RET_LABEL56
:(void)0;
2162 { /* Inline parser_nodes#AStdClassdef#n_formaldefs (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
2163 var64
= var_nclassdef
->attrs
[COLOR_parser_nodes__AStdClassdef___n_formaldefs
].val
; /* _n_formaldefs on <var_nclassdef:AClassdef(AStdClassdef)> */
2164 if (unlikely(var64
== NULL
)) {
2165 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_formaldefs");
2166 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 940);
2170 RET_LABEL63
:(void)0;
2174 var65
= parser_nodes__ANodes__is_empty(var62
);
2178 { /* Inline model#MClass#intro (var_mclass) on <var_mclass:nullable MClass(MClass)> */
2179 var68
= var_mclass
->attrs
[COLOR_model__MClass___intro
].val
; /* _intro on <var_mclass:nullable MClass(MClass)> */
2180 if (unlikely(var68
== NULL
)) {
2181 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
2182 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 420);
2186 RET_LABEL67
:(void)0;
2190 { /* Inline model#MClassDef#bound_mtype (var66) on <var66:MClassDef> */
2191 var71
= var66
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var66:MClassDef> */
2192 if (unlikely(var71
== NULL
)) {
2193 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
2194 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
2198 RET_LABEL70
:(void)0;
2202 { /* Inline model#MClassType#arguments (var69) on <var69:MClassType> */
2203 var74
= var69
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <var69:MClassType> */
2204 if (unlikely(var74
== NULL
)) {
2205 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
2206 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 996);
2210 RET_LABEL73
:(void)0;
2214 var75
= array__Array___91d_93d(var72
, var_i
);
2218 array__Array__add(var_bounds
, var_bound
); /* Direct call array#Array#add on <var_bounds:Array[MType]>*/
2224 { /* Inline parser_nodes#AStdClassdef#n_formaldefs (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
2225 var78
= var_nclassdef
->attrs
[COLOR_parser_nodes__AStdClassdef___n_formaldefs
].val
; /* _n_formaldefs on <var_nclassdef:AClassdef(AStdClassdef)> */
2226 if (unlikely(var78
== NULL
)) {
2227 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_formaldefs");
2228 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 940);
2232 RET_LABEL77
:(void)0;
2236 var79
= parser_nodes__ANodes___91d_93d(var76
, var_i
);
2240 { /* Inline model#MClass#mparameters (var_mclass) on <var_mclass:nullable MClass(MClass)> */
2241 var82
= var_mclass
->attrs
[COLOR_model__MClass___mparameters
].val
; /* _mparameters on <var_mclass:nullable MClass(MClass)> */
2242 if (unlikely(var82
== NULL
)) {
2243 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
2244 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 367);
2248 RET_LABEL81
:(void)0;
2252 var83
= array__Array___91d_93d(var80
, var_i
);
2255 { /* Inline model#MParameterType#name (var83) on <var83:nullable Object(MParameterType)> */
2256 var86
= var83
->attrs
[COLOR_model__MParameterType___name
].val
; /* _name on <var83:nullable Object(MParameterType)> */
2257 if (unlikely(var86
== NULL
)) {
2258 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2259 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1289);
2263 RET_LABEL85
:(void)0;
2268 { /* Inline parser_nodes#AFormaldef#n_id (var_nfd) on <var_nfd:AFormaldef> */
2269 var89
= var_nfd
->attrs
[COLOR_parser_nodes__AFormaldef___n_id
].val
; /* _n_id on <var_nfd:AFormaldef> */
2270 if (unlikely(var89
== NULL
)) {
2271 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2272 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 997);
2276 RET_LABEL88
:(void)0;
2280 var90
= lexer_work__Token__text(var87
);
2283 { /* Inline kernel#Object#!= (var90,var_pname) on <var90:String> */
2284 var_other25
= var_pname
;
2286 var95
= ((short int (*)(val
*, val
*))(var90
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var90
, var_other25
) /* == on <var90:String>*/;
2292 RET_LABEL93
:(void)0;
2298 { /* Inline parser_nodes#AFormaldef#n_id (var_nfd) on <var_nfd:AFormaldef> */
2299 var99
= var_nfd
->attrs
[COLOR_parser_nodes__AFormaldef___n_id
].val
; /* _n_id on <var_nfd:AFormaldef> */
2300 if (unlikely(var99
== NULL
)) {
2301 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2302 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 997);
2306 RET_LABEL98
:(void)0;
2310 var101
= varonce100
;
2312 var102
= "Error: Formal parameter type #";
2314 var104
= string__NativeString__to_s_with_length(var102
, var103
);
2316 varonce100
= var101
;
2319 var106
= varonce105
;
2323 var109
= string__NativeString__to_s_with_length(var107
, var108
);
2325 varonce105
= var106
;
2328 { /* Inline parser_nodes#AFormaldef#n_id (var_nfd) on <var_nfd:AFormaldef> */
2329 var112
= var_nfd
->attrs
[COLOR_parser_nodes__AFormaldef___n_id
].val
; /* _n_id on <var_nfd:AFormaldef> */
2330 if (unlikely(var112
== NULL
)) {
2331 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2332 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 997);
2336 RET_LABEL111
:(void)0;
2340 var113
= lexer_work__Token__text(var110
);
2343 var115
= varonce114
;
2345 var116
= "` must be named `";
2347 var118
= string__NativeString__to_s_with_length(var116
, var117
);
2349 varonce114
= var115
;
2352 var120
= varonce119
;
2354 var121
= "\' as in the original definition in module `";
2356 var123
= string__NativeString__to_s_with_length(var121
, var122
);
2358 varonce119
= var120
;
2361 { /* Inline model#MClass#intro (var_mclass) on <var_mclass:nullable MClass(MClass)> */
2362 var126
= var_mclass
->attrs
[COLOR_model__MClass___intro
].val
; /* _intro on <var_mclass:nullable MClass(MClass)> */
2363 if (unlikely(var126
== NULL
)) {
2364 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
2365 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 420);
2369 RET_LABEL125
:(void)0;
2373 { /* Inline model#MClassDef#mmodule (var124) on <var124:MClassDef> */
2374 var129
= var124
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <var124:MClassDef> */
2375 if (unlikely(var129
== NULL
)) {
2376 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2377 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
2381 RET_LABEL128
:(void)0;
2385 var131
= varonce130
;
2389 var134
= string__NativeString__to_s_with_length(var132
, var133
);
2391 varonce130
= var131
;
2393 var135
= NEW_array__Array(&type_array__Arraykernel__Object
);
2394 { /* var135 = array_instance Array[Object] */
2396 var137
= NEW_array__NativeArray(var136
, &type_array__NativeArraykernel__Object
);
2397 ((struct instance_array__NativeArray
*)var137
)->values
[0] = (val
*) var101
;
2398 var138
= BOX_kernel__Int(var_i
); /* autobox from Int to Object */
2399 ((struct instance_array__NativeArray
*)var137
)->values
[1] = (val
*) var138
;
2400 ((struct instance_array__NativeArray
*)var137
)->values
[2] = (val
*) var106
;
2401 ((struct instance_array__NativeArray
*)var137
)->values
[3] = (val
*) var113
;
2402 ((struct instance_array__NativeArray
*)var137
)->values
[4] = (val
*) var115
;
2403 ((struct instance_array__NativeArray
*)var137
)->values
[5] = (val
*) var_pname
;
2404 ((struct instance_array__NativeArray
*)var137
)->values
[6] = (val
*) var120
;
2405 ((struct instance_array__NativeArray
*)var137
)->values
[7] = (val
*) var127
;
2406 ((struct instance_array__NativeArray
*)var137
)->values
[8] = (val
*) var131
;
2408 ((void (*)(val
*, val
*, long))(var135
->class->vft
[COLOR_array__Array__with_native
]))(var135
, var137
, var136
) /* with_native on <var135:Array[Object]>*/;
2412 var139
= ((val
* (*)(val
*))(var135
->class->vft
[COLOR_string__Object__to_s
]))(var135
) /* to_s on <var135:Array[Object]>*/;
2415 modelbuilder__ModelBuilder__error(self
, var97
, var139
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
2420 { /* Inline parser_nodes#AFormaldef#n_type (var_nfd) on <var_nfd:AFormaldef> */
2421 var142
= var_nfd
->attrs
[COLOR_parser_nodes__AFormaldef___n_type
].val
; /* _n_type on <var_nfd:AFormaldef> */
2423 RET_LABEL141
:(void)0;
2428 if (var_nfdt
== NULL
) {
2429 var144
= 0; /* is null */
2431 var144
= 1; /* arg is null and recv is not */
2434 { /* Inline kernel#Object#!= (var_nfdt,var143) on <var_nfdt:nullable AType> */
2435 var_other25
= var143
;
2437 var148
= ((short int (*)(val
*, val
*))(var_nfdt
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_nfdt
, var_other25
) /* == on <var_nfdt:nullable AType(AType)>*/;
2443 RET_LABEL146
:(void)0;
2451 var152
= modelize_class__ModelBuilder__resolve_mtype_unchecked(self
, var_mmodule
, var150
, var_nfdt
, var151
);
2453 var_bound153
= var152
;
2455 if (var_bound153
== NULL
) {
2456 var155
= 1; /* is null */
2458 var155
= 0; /* arg is null but recv is not */
2461 { /* Inline kernel#Object#== (var_bound153,var154) on <var_bound153:nullable MType> */
2464 { /* Inline kernel#Object#is_same_instance (var_bound153,var_other) on <var_bound153:nullable MType(MType)> */
2465 var160
= var_bound153
== var_other
;
2468 RET_LABEL159
:(void)0;
2473 RET_LABEL157
:(void)0;
2482 var161
= ((short int (*)(val
*))(var_bound153
->class->vft
[COLOR_model__MType__need_anchor
]))(var_bound153
) /* need_anchor on <var_bound153:nullable MType(MType)>*/;
2486 var163
= varonce162
;
2488 var164
= "Error: Formal parameter type `";
2490 var166
= string__NativeString__to_s_with_length(var164
, var165
);
2492 varonce162
= var163
;
2495 var168
= varonce167
;
2497 var169
= "\' bounded with a formal parameter type";
2499 var171
= string__NativeString__to_s_with_length(var169
, var170
);
2501 varonce167
= var168
;
2503 var172
= NEW_array__Array(&type_array__Arraykernel__Object
);
2504 { /* var172 = array_instance Array[Object] */
2506 var174
= NEW_array__NativeArray(var173
, &type_array__NativeArraykernel__Object
);
2507 ((struct instance_array__NativeArray
*)var174
)->values
[0] = (val
*) var163
;
2508 ((struct instance_array__NativeArray
*)var174
)->values
[1] = (val
*) var_pname
;
2509 ((struct instance_array__NativeArray
*)var174
)->values
[2] = (val
*) var168
;
2511 ((void (*)(val
*, val
*, long))(var172
->class->vft
[COLOR_array__Array__with_native
]))(var172
, var174
, var173
) /* with_native on <var172:Array[Object]>*/;
2515 var175
= ((val
* (*)(val
*))(var172
->class->vft
[COLOR_string__Object__to_s
]))(var172
) /* to_s on <var172:Array[Object]>*/;
2518 modelbuilder__ModelBuilder__error(self
, var_nfd
, var175
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
2522 array__Array__add(var_bounds
, var_bound153
); /* Direct call array#Array#add on <var_bounds:Array[MType]>*/
2525 { /* Inline modelize_class#AFormaldef#bound= (var_nfd,var_bound153) on <var_nfd:AFormaldef> */
2526 var_nfd
->attrs
[COLOR_modelize_class__AFormaldef___bound
].val
= var_bound153
; /* _bound on <var_nfd:AFormaldef> */
2527 RET_LABEL176
:(void)0;
2531 /* <var_bound153:nullable MType(MType)> isa MClassType */
2532 cltype179
= type_model__MClassType
.color
;
2533 idtype180
= type_model__MClassType
.id
;
2534 if(cltype179
>= var_bound153
->type
->table_size
) {
2537 var178
= var_bound153
->type
->type_table
[cltype179
] == idtype180
;
2542 { /* Inline model#MClassType#mclass (var_bound153) on <var_bound153:nullable MType(MClassType)> */
2543 var184
= var_bound153
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_bound153:nullable MType(MClassType)> */
2544 if (unlikely(var184
== NULL
)) {
2545 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2546 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
2550 RET_LABEL183
:(void)0;
2554 { /* Inline model#MClass#kind (var182) on <var182:MClass> */
2555 var187
= var182
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var182:MClass> */
2556 if (unlikely(var187
== NULL
)) {
2557 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
2558 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
2562 RET_LABEL186
:(void)0;
2566 var188
= model__Object__enum_kind(self
);
2569 { /* Inline kernel#Object#== (var185,var188) on <var185:MClassKind> */
2572 { /* Inline kernel#Object#is_same_instance (var185,var_other) on <var185:MClassKind> */
2573 var194
= var185
== var_other
;
2576 RET_LABEL193
:(void)0;
2581 RET_LABEL191
:(void)0;
2591 var196
= varonce195
;
2593 var197
= "useless-bound";
2595 var199
= string__NativeString__to_s_with_length(var197
, var198
);
2597 varonce195
= var196
;
2600 var201
= varonce200
;
2602 var202
= "Warning: Useless formal parameter type since `";
2604 var204
= string__NativeString__to_s_with_length(var202
, var203
);
2606 varonce200
= var201
;
2609 var206
= varonce205
;
2611 var207
= "` cannnot have subclasses.";
2613 var209
= string__NativeString__to_s_with_length(var207
, var208
);
2615 varonce205
= var206
;
2617 var210
= NEW_array__Array(&type_array__Arraykernel__Object
);
2618 { /* var210 = array_instance Array[Object] */
2620 var212
= NEW_array__NativeArray(var211
, &type_array__NativeArraykernel__Object
);
2621 ((struct instance_array__NativeArray
*)var212
)->values
[0] = (val
*) var201
;
2622 ((struct instance_array__NativeArray
*)var212
)->values
[1] = (val
*) var_bound153
;
2623 ((struct instance_array__NativeArray
*)var212
)->values
[2] = (val
*) var206
;
2625 ((void (*)(val
*, val
*, long))(var210
->class->vft
[COLOR_array__Array__with_native
]))(var210
, var212
, var211
) /* with_native on <var210:Array[Object]>*/;
2629 var213
= ((val
* (*)(val
*))(var210
->class->vft
[COLOR_string__Object__to_s
]))(var210
) /* to_s on <var210:Array[Object]>*/;
2632 modelbuilder__ModelBuilder__warning(self
, var_nfdt
, var196
, var213
); /* Direct call modelbuilder#ModelBuilder#warning on <self:ModelBuilder>*/
2638 { /* Inline model#MClass#mclassdefs (var_mclass) on <var_mclass:nullable MClass(MClass)> */
2639 var216
= var_mclass
->attrs
[COLOR_model__MClass___mclassdefs
].val
; /* _mclassdefs on <var_mclass:nullable MClass(MClass)> */
2640 if (unlikely(var216
== NULL
)) {
2641 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
2642 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 414);
2646 RET_LABEL215
:(void)0;
2650 var217
= array__AbstractArrayRead__is_empty(var214
);
2653 if (var_objectclass
== NULL
) {
2654 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2655 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 172);
2658 { /* Inline model#MClass#mclass_type (var_objectclass) on <var_objectclass:nullable MClass> */
2659 if (unlikely(var_objectclass
== NULL
)) {
2660 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2661 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
2664 var220
= var_objectclass
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_objectclass:nullable MClass> */
2665 if (unlikely(var220
== NULL
)) {
2666 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
2667 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
2671 RET_LABEL219
:(void)0;
2675 var221
= model__MType__as_nullable(var218
);
2677 var_bound222
= var221
;
2679 array__Array__add(var_bounds
, var_bound222
); /* Direct call array#Array#add on <var_bounds:Array[MType]>*/
2682 { /* Inline modelize_class#AFormaldef#bound= (var_nfd,var_bound222) on <var_nfd:AFormaldef> */
2683 var_nfd
->attrs
[COLOR_modelize_class__AFormaldef___bound
].val
= var_bound222
; /* _bound on <var_nfd:AFormaldef> */
2684 RET_LABEL223
:(void)0;
2689 { /* Inline model#MClass#intro (var_mclass) on <var_mclass:nullable MClass(MClass)> */
2690 var226
= var_mclass
->attrs
[COLOR_model__MClass___intro
].val
; /* _intro on <var_mclass:nullable MClass(MClass)> */
2691 if (unlikely(var226
== NULL
)) {
2692 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
2693 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 420);
2697 RET_LABEL225
:(void)0;
2701 { /* Inline model#MClassDef#bound_mtype (var224) on <var224:MClassDef> */
2702 var229
= var224
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var224:MClassDef> */
2703 if (unlikely(var229
== NULL
)) {
2704 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
2705 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
2709 RET_LABEL228
:(void)0;
2713 { /* Inline model#MClassType#arguments (var227) on <var227:MClassType> */
2714 var232
= var227
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <var227:MClassType> */
2715 if (unlikely(var232
== NULL
)) {
2716 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
2717 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 996);
2721 RET_LABEL231
:(void)0;
2725 var233
= array__Array___91d_93d(var230
, var_i
);
2727 var_bound234
= var233
;
2729 array__Array__add(var_bounds
, var_bound234
); /* Direct call array#Array#add on <var_bounds:Array[MType]>*/
2732 { /* Inline modelize_class#AFormaldef#bound= (var_nfd,var_bound234) on <var_nfd:AFormaldef> */
2733 var_nfd
->attrs
[COLOR_modelize_class__AFormaldef___bound
].val
= var_bound234
; /* _bound on <var_nfd:AFormaldef> */
2734 RET_LABEL235
:(void)0;
2739 BREAK_label
: (void)0;
2742 var237
= kernel__Int__successor(var_i
, var236
);
2746 goto BREAK_label238
;
2749 BREAK_label238
: (void)0;
2753 var239
= model__MClass__get_mtype(var_mclass
, var_bounds
);
2755 var_bound_mtype
= var239
;
2756 var240
= NEW_model__MClassDef(&type_model__MClassDef
);
2758 { /* Inline parser_nodes#ANode#location (var_nclassdef) on <var_nclassdef:AClassdef> */
2759 var243
= var_nclassdef
->attrs
[COLOR_parser_nodes__ANode___location
].val
; /* _location on <var_nclassdef:AClassdef> */
2760 if (unlikely(var243
== NULL
)) {
2761 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
2762 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 23);
2766 RET_LABEL242
:(void)0;
2770 model__MClassDef__init(var240
, var_mmodule
, var_bound_mtype
, var241
); /* Direct call model#MClassDef#init on <var240:MClassDef>*/
2772 var_mclassdef
= var240
;
2774 { /* Inline modelize_class#AClassdef#mclassdef= (var_nclassdef,var_mclassdef) on <var_nclassdef:AClassdef> */
2775 var_nclassdef
->attrs
[COLOR_modelize_class__AClassdef___mclassdef
].val
= var_mclassdef
; /* _mclassdef on <var_nclassdef:AClassdef> */
2776 RET_LABEL244
:(void)0;
2780 { /* Inline modelize_class#ModelBuilder#mclassdef2nclassdef (self) on <self:ModelBuilder> */
2781 var247
= self
->attrs
[COLOR_modelize_class__ModelBuilder___mclassdef2nclassdef
].val
; /* _mclassdef2nclassdef on <self:ModelBuilder> */
2782 if (unlikely(var247
== NULL
)) {
2783 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef2nclassdef");
2784 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 410);
2788 RET_LABEL246
:(void)0;
2792 hash_collection__HashMap___91d_93d_61d(var245
, var_mclassdef
, var_nclassdef
); /* Direct call hash_collection#HashMap#[]= on <var245:HashMap[MClassDef, AClassdef]>*/
2794 /* <var_nclassdef:AClassdef> isa AStdClassdef */
2795 cltype249
= type_parser_nodes__AStdClassdef
.color
;
2796 idtype250
= type_parser_nodes__AStdClassdef
.id
;
2797 if(cltype249
>= var_nclassdef
->type
->table_size
) {
2800 var248
= var_nclassdef
->type
->type_table
[cltype249
] == idtype250
;
2804 { /* Inline parser_nodes#AStdClassdef#n_doc (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
2805 var253
= var_nclassdef
->attrs
[COLOR_parser_nodes__AStdClassdef___n_doc
].val
; /* _n_doc on <var_nclassdef:AClassdef(AStdClassdef)> */
2807 RET_LABEL252
:(void)0;
2812 if (var_ndoc
== NULL
) {
2813 var255
= 0; /* is null */
2815 var255
= 1; /* arg is null and recv is not */
2818 { /* Inline kernel#Object#!= (var_ndoc,var254) on <var_ndoc:nullable ADoc> */
2819 var_other25
= var254
;
2821 var259
= ((short int (*)(val
*, val
*))(var_ndoc
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ndoc
, var_other25
) /* == on <var_ndoc:nullable ADoc(ADoc)>*/;
2827 RET_LABEL257
:(void)0;
2833 var261
= modelbuilder__ADoc__to_mdoc(var_ndoc
);
2837 { /* Inline mdoc#MEntity#mdoc= (var_mclassdef,var_mdoc) on <var_mclassdef:MClassDef> */
2838 var_mclassdef
->attrs
[COLOR_mdoc__MEntity___mdoc
].val
= var_mdoc
; /* _mdoc on <var_mclassdef:MClassDef> */
2839 RET_LABEL262
:(void)0;
2843 { /* Inline mdoc#MDoc#original_mentity= (var_mdoc,var_mclassdef) on <var_mdoc:MDoc> */
2844 var_mdoc
->attrs
[COLOR_mdoc__MDoc___original_mentity
].val
= var_mclassdef
; /* _original_mentity on <var_mdoc:MDoc> */
2845 RET_LABEL263
:(void)0;
2850 var265
= model__MClassDef__is_intro(var_mclassdef
);
2855 { /* Inline model#MClass#visibility (var_mclass) on <var_mclass:nullable MClass(MClass)> */
2856 var269
= var_mclass
->attrs
[COLOR_model__MClass___visibility
].val
; /* _visibility on <var_mclass:nullable MClass(MClass)> */
2857 if (unlikely(var269
== NULL
)) {
2858 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
2859 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 375);
2863 RET_LABEL268
:(void)0;
2867 var270
= model_base__Object__public_visibility(self
);
2870 var271
= kernel__Comparable___62d_61d(var267
, var270
);
2878 var273
= varonce272
;
2880 var274
= "missing-doc";
2882 var276
= string__NativeString__to_s_with_length(var274
, var275
);
2884 varonce272
= var273
;
2887 var278
= varonce277
;
2889 var279
= "Documentation warning: Undocumented public class `";
2891 var281
= string__NativeString__to_s_with_length(var279
, var280
);
2893 varonce277
= var278
;
2896 var283
= varonce282
;
2900 var286
= string__NativeString__to_s_with_length(var284
, var285
);
2902 varonce282
= var283
;
2904 var287
= NEW_array__Array(&type_array__Arraykernel__Object
);
2905 { /* var287 = array_instance Array[Object] */
2907 var289
= NEW_array__NativeArray(var288
, &type_array__NativeArraykernel__Object
);
2908 ((struct instance_array__NativeArray
*)var289
)->values
[0] = (val
*) var278
;
2909 ((struct instance_array__NativeArray
*)var289
)->values
[1] = (val
*) var_mclass
;
2910 ((struct instance_array__NativeArray
*)var289
)->values
[2] = (val
*) var283
;
2912 ((void (*)(val
*, val
*, long))(var287
->class->vft
[COLOR_array__Array__with_native
]))(var287
, var289
, var288
) /* with_native on <var287:Array[Object]>*/;
2916 var290
= ((val
* (*)(val
*))(var287
->class->vft
[COLOR_string__Object__to_s
]))(var287
) /* to_s on <var287:Array[Object]>*/;
2919 modelbuilder__ModelBuilder__advice(self
, var_nclassdef
, var273
, var290
); /* Direct call modelbuilder#ModelBuilder#advice on <self:ModelBuilder>*/
2927 var291
= model__MClassDef__is_intro(var_mclassdef
);
2931 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
2932 var294
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
2933 if (unlikely(var294
== NULL
)) {
2934 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2935 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
2939 RET_LABEL293
:(void)0;
2943 var296
= varonce295
;
2945 var297
= " introduces new ";
2947 var299
= string__NativeString__to_s_with_length(var297
, var298
);
2949 varonce295
= var296
;
2952 { /* Inline model#MClass#kind (var_mclass) on <var_mclass:nullable MClass(MClass)> */
2953 var302
= var_mclass
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var_mclass:nullable MClass(MClass)> */
2954 if (unlikely(var302
== NULL
)) {
2955 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
2956 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
2960 RET_LABEL301
:(void)0;
2964 var304
= varonce303
;
2968 var307
= string__NativeString__to_s_with_length(var305
, var306
);
2970 varonce303
= var304
;
2973 var308
= model__MClass__full_name(var_mclass
);
2975 var309
= NEW_array__Array(&type_array__Arraykernel__Object
);
2976 { /* var309 = array_instance Array[Object] */
2978 var311
= NEW_array__NativeArray(var310
, &type_array__NativeArraykernel__Object
);
2979 ((struct instance_array__NativeArray
*)var311
)->values
[0] = (val
*) var_mclassdef
;
2980 ((struct instance_array__NativeArray
*)var311
)->values
[1] = (val
*) var296
;
2981 ((struct instance_array__NativeArray
*)var311
)->values
[2] = (val
*) var300
;
2982 ((struct instance_array__NativeArray
*)var311
)->values
[3] = (val
*) var304
;
2983 ((struct instance_array__NativeArray
*)var311
)->values
[4] = (val
*) var308
;
2985 ((void (*)(val
*, val
*, long))(var309
->class->vft
[COLOR_array__Array__with_native
]))(var309
, var311
, var310
) /* with_native on <var309:Array[Object]>*/;
2989 var312
= ((val
* (*)(val
*))(var309
->class->vft
[COLOR_string__Object__to_s
]))(var309
) /* to_s on <var309:Array[Object]>*/;
2993 toolcontext__ToolContext__info(var292
, var312
, var313
); /* Direct call toolcontext#ToolContext#info on <var292:ToolContext>*/
2997 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
2998 var316
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
2999 if (unlikely(var316
== NULL
)) {
3000 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3001 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
3005 RET_LABEL315
:(void)0;
3009 var318
= varonce317
;
3011 var319
= " refine ";
3013 var321
= string__NativeString__to_s_with_length(var319
, var320
);
3015 varonce317
= var318
;
3018 { /* Inline model#MClass#kind (var_mclass) on <var_mclass:nullable MClass(MClass)> */
3019 var324
= var_mclass
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var_mclass:nullable MClass(MClass)> */
3020 if (unlikely(var324
== NULL
)) {
3021 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
3022 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
3026 RET_LABEL323
:(void)0;
3030 var326
= varonce325
;
3034 var329
= string__NativeString__to_s_with_length(var327
, var328
);
3036 varonce325
= var326
;
3039 var330
= model__MClass__full_name(var_mclass
);
3041 var331
= NEW_array__Array(&type_array__Arraykernel__Object
);
3042 { /* var331 = array_instance Array[Object] */
3044 var333
= NEW_array__NativeArray(var332
, &type_array__NativeArraykernel__Object
);
3045 ((struct instance_array__NativeArray
*)var333
)->values
[0] = (val
*) var_mclassdef
;
3046 ((struct instance_array__NativeArray
*)var333
)->values
[1] = (val
*) var318
;
3047 ((struct instance_array__NativeArray
*)var333
)->values
[2] = (val
*) var322
;
3048 ((struct instance_array__NativeArray
*)var333
)->values
[3] = (val
*) var326
;
3049 ((struct instance_array__NativeArray
*)var333
)->values
[4] = (val
*) var330
;
3051 ((void (*)(val
*, val
*, long))(var331
->class->vft
[COLOR_array__Array__with_native
]))(var331
, var333
, var332
) /* with_native on <var331:Array[Object]>*/;
3055 var334
= ((val
* (*)(val
*))(var331
->class->vft
[COLOR_string__Object__to_s
]))(var331
) /* to_s on <var331:Array[Object]>*/;
3059 toolcontext__ToolContext__info(var314
, var334
, var335
); /* Direct call toolcontext#ToolContext#info on <var314:ToolContext>*/
3064 /* method modelize_class#ModelBuilder#build_a_mclassdef for (self: Object, AModule, AClassdef) */
3065 void VIRTUAL_modelize_class__ModelBuilder__build_a_mclassdef(val
* self
, val
* p0
, val
* p1
) {
3066 modelize_class__ModelBuilder__build_a_mclassdef(self
, p0
, p1
); /* Direct call modelize_class#ModelBuilder#build_a_mclassdef on <self:Object(ModelBuilder)>*/
3069 /* method modelize_class#ModelBuilder#collect_a_mclassdef_inheritance for (self: ModelBuilder, AModule, AClassdef) */
3070 void modelize_class__ModelBuilder__collect_a_mclassdef_inheritance(val
* self
, val
* p0
, val
* p1
) {
3071 val
* var_nmodule
/* var nmodule: AModule */;
3072 val
* var_nclassdef
/* var nclassdef: AClassdef */;
3073 val
* var
/* : nullable MModule */;
3074 val
* var2
/* : nullable MModule */;
3075 val
* var_mmodule
/* var mmodule: MModule */;
3076 static val
* varonce
;
3077 val
* var3
/* : String */;
3078 char* var4
/* : NativeString */;
3079 long var5
/* : Int */;
3080 val
* var6
/* : FlatString */;
3081 val
* var7
/* : nullable MClass */;
3082 val
* var_objectclass
/* var objectclass: nullable MClass */;
3083 static val
* varonce8
;
3084 val
* var9
/* : String */;
3085 char* var10
/* : NativeString */;
3086 long var11
/* : Int */;
3087 val
* var12
/* : FlatString */;
3088 val
* var13
/* : nullable MClass */;
3089 val
* var_pointerclass
/* var pointerclass: nullable MClass */;
3090 val
* var14
/* : nullable MClass */;
3091 val
* var16
/* : nullable MClass */;
3092 val
* var_mclass
/* var mclass: MClass */;
3093 val
* var17
/* : nullable MClassDef */;
3094 val
* var19
/* : nullable MClassDef */;
3095 val
* var_mclassdef
/* var mclassdef: MClassDef */;
3096 short int var20
/* : Bool */;
3097 short int var_specobject
/* var specobject: Bool */;
3098 short int var21
/* : Bool */;
3099 short int var_specpointer
/* var specpointer: Bool */;
3100 val
* var22
/* : Array[MClassType] */;
3101 val
* var_supertypes
/* var supertypes: Array[MClassType] */;
3102 short int var23
/* : Bool */;
3105 val
* var24
/* : ANodes[ASuperclass] */;
3106 val
* var26
/* : ANodes[ASuperclass] */;
3107 val
* var_
/* var : ANodes[ASuperclass] */;
3108 val
* var27
/* : Iterator[ANode] */;
3109 val
* var_28
/* var : Iterator[ASuperclass] */;
3110 short int var29
/* : Bool */;
3111 val
* var30
/* : nullable Object */;
3112 val
* var_nsc
/* var nsc: ASuperclass */;
3113 short int var31
/* : Bool */;
3114 val
* var32
/* : AType */;
3115 val
* var34
/* : AType */;
3116 val
* var_ntype
/* var ntype: AType */;
3117 short int var35
/* : Bool */;
3118 val
* var36
/* : nullable MType */;
3119 val
* var_mtype
/* var mtype: nullable MType */;
3120 val
* var37
/* : null */;
3121 short int var38
/* : Bool */;
3122 short int var39
/* : Bool */;
3123 val
* var_other
/* var other: nullable Object */;
3124 short int var41
/* : Bool */;
3125 short int var43
/* : Bool */;
3126 short int var44
/* : Bool */;
3129 short int var47
/* : Bool */;
3130 static val
* varonce48
;
3131 val
* var49
/* : String */;
3132 char* var50
/* : NativeString */;
3133 long var51
/* : Int */;
3134 val
* var52
/* : FlatString */;
3135 val
* var53
/* : MClassKind */;
3136 val
* var55
/* : MClassKind */;
3137 val
* var56
/* : MClass */;
3138 val
* var58
/* : MClass */;
3139 val
* var59
/* : MClassKind */;
3140 val
* var61
/* : MClassKind */;
3141 short int var62
/* : Bool */;
3142 short int var63
/* : Bool */;
3143 static val
* varonce64
;
3144 val
* var65
/* : String */;
3145 char* var66
/* : NativeString */;
3146 long var67
/* : Int */;
3147 val
* var68
/* : FlatString */;
3148 val
* var69
/* : MClassKind */;
3149 val
* var71
/* : MClassKind */;
3150 static val
* varonce72
;
3151 val
* var73
/* : String */;
3152 char* var74
/* : NativeString */;
3153 long var75
/* : Int */;
3154 val
* var76
/* : FlatString */;
3155 static val
* varonce77
;
3156 val
* var78
/* : String */;
3157 char* var79
/* : NativeString */;
3158 long var80
/* : Int */;
3159 val
* var81
/* : FlatString */;
3160 val
* var82
/* : MClass */;
3161 val
* var84
/* : MClass */;
3162 val
* var85
/* : MClassKind */;
3163 val
* var87
/* : MClassKind */;
3164 static val
* varonce88
;
3165 val
* var89
/* : String */;
3166 char* var90
/* : NativeString */;
3167 long var91
/* : Int */;
3168 val
* var92
/* : FlatString */;
3169 val
* var93
/* : MClass */;
3170 val
* var95
/* : MClass */;
3171 val
* var96
/* : Array[Object] */;
3172 long var97
/* : Int */;
3173 val
* var98
/* : NativeArray[Object] */;
3174 val
* var99
/* : String */;
3175 val
* var100
/* : MClass */;
3176 val
* var102
/* : MClass */;
3177 val
* var103
/* : MClassKind */;
3178 val
* var105
/* : MClassKind */;
3179 val
* var106
/* : MClassKind */;
3180 short int var107
/* : Bool */;
3181 short int var108
/* : Bool */;
3182 short int var110
/* : Bool */;
3183 short int var112
/* : Bool */;
3184 short int var113
/* : Bool */;
3185 short int var116
/* : Bool */;
3186 short int var117
/* : Bool */;
3187 short int var_118
/* var : Bool */;
3188 val
* var119
/* : null */;
3189 short int var120
/* : Bool */;
3190 short int var121
/* : Bool */;
3191 val
* var_other123
/* var other: nullable Object */;
3192 short int var124
/* : Bool */;
3193 short int var125
/* : Bool */;
3194 short int var126
/* : Bool */;
3195 short int var127
/* : Bool */;
3196 val
* var128
/* : MClassKind */;
3197 val
* var130
/* : MClassKind */;
3198 val
* var131
/* : MClassKind */;
3199 short int var132
/* : Bool */;
3200 short int var133
/* : Bool */;
3201 short int var135
/* : Bool */;
3202 short int var137
/* : Bool */;
3203 short int var_138
/* var : Bool */;
3204 val
* var139
/* : String */;
3205 val
* var141
/* : String */;
3206 static val
* varonce142
;
3207 val
* var143
/* : String */;
3208 char* var144
/* : NativeString */;
3209 long var145
/* : Int */;
3210 val
* var146
/* : FlatString */;
3211 short int var147
/* : Bool */;
3212 short int var148
/* : Bool */;
3213 short int var150
/* : Bool */;
3214 short int var151
/* : Bool */;
3215 short int var152
/* : Bool */;
3216 val
* var153
/* : MClassType */;
3217 val
* var155
/* : MClassType */;
3218 short int var156
/* : Bool */;
3219 short int var_157
/* var : Bool */;
3220 val
* var158
/* : String */;
3221 val
* var160
/* : String */;
3222 static val
* varonce161
;
3223 val
* var162
/* : String */;
3224 char* var163
/* : NativeString */;
3225 long var164
/* : Int */;
3226 val
* var165
/* : FlatString */;
3227 short int var166
/* : Bool */;
3228 short int var167
/* : Bool */;
3229 short int var169
/* : Bool */;
3230 short int var170
/* : Bool */;
3231 short int var171
/* : Bool */;
3232 val
* var172
/* : MClassType */;
3233 val
* var174
/* : MClassType */;
3234 short int var175
/* : Bool */;
3235 short int var176
/* : Bool */;
3236 val
* var177
/* : ToolContext */;
3237 val
* var179
/* : ToolContext */;
3238 static val
* varonce180
;
3239 val
* var181
/* : String */;
3240 char* var182
/* : NativeString */;
3241 long var183
/* : Int */;
3242 val
* var184
/* : FlatString */;
3243 static val
* varonce185
;
3244 val
* var186
/* : String */;
3245 char* var187
/* : NativeString */;
3246 long var188
/* : Int */;
3247 val
* var189
/* : FlatString */;
3248 val
* var190
/* : String */;
3249 val
* var191
/* : Array[Object] */;
3250 long var192
/* : Int */;
3251 val
* var193
/* : NativeArray[Object] */;
3252 val
* var194
/* : String */;
3253 long var195
/* : Int */;
3257 { /* Inline modelbuilder#AModule#mmodule (var_nmodule) on <var_nmodule:AModule> */
3258 var2
= var_nmodule
->attrs
[COLOR_modelbuilder__AModule___mmodule
].val
; /* _mmodule on <var_nmodule:AModule> */
3263 if (unlikely(var
== NULL
)) {
3264 PRINT_ERROR("Runtime error: %s", "Cast failed");
3265 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 210);
3274 var6
= string__NativeString__to_s_with_length(var4
, var5
);
3279 var7
= modelbuilder__ModelBuilder__try_get_mclass_by_name(self
, var_nmodule
, var_mmodule
, var3
);
3281 var_objectclass
= var7
;
3287 var12
= string__NativeString__to_s_with_length(var10
, var11
);
3292 var13
= modelbuilder__ModelBuilder__try_get_mclass_by_name(self
, var_nmodule
, var_mmodule
, var9
);
3294 var_pointerclass
= var13
;
3296 { /* Inline modelize_class#AClassdef#mclass (var_nclassdef) on <var_nclassdef:AClassdef> */
3297 var16
= var_nclassdef
->attrs
[COLOR_modelize_class__AClassdef___mclass
].val
; /* _mclass on <var_nclassdef:AClassdef> */
3299 RET_LABEL15
:(void)0;
3302 if (unlikely(var14
== NULL
)) {
3303 PRINT_ERROR("Runtime error: %s", "Cast failed");
3304 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 213);
3309 { /* Inline modelize_class#AClassdef#mclassdef (var_nclassdef) on <var_nclassdef:AClassdef> */
3310 var19
= var_nclassdef
->attrs
[COLOR_modelize_class__AClassdef___mclassdef
].val
; /* _mclassdef on <var_nclassdef:AClassdef> */
3312 RET_LABEL18
:(void)0;
3315 if (unlikely(var17
== NULL
)) {
3316 PRINT_ERROR("Runtime error: %s", "Cast failed");
3317 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 214);
3320 var_mclassdef
= var17
;
3322 var_specobject
= var20
;
3324 var_specpointer
= var21
;
3325 var22
= NEW_array__Array(&type_array__Arraymodel__MClassType
);
3327 ((void (*)(val
*))(var22
->class->vft
[COLOR_kernel__Object__init
]))(var22
) /* init on <var22:Array[MClassType]>*/;
3329 var_supertypes
= var22
;
3330 /* <var_nclassdef:AClassdef> isa AStdClassdef */
3331 cltype
= type_parser_nodes__AStdClassdef
.color
;
3332 idtype
= type_parser_nodes__AStdClassdef
.id
;
3333 if(cltype
>= var_nclassdef
->type
->table_size
) {
3336 var23
= var_nclassdef
->type
->type_table
[cltype
] == idtype
;
3340 { /* Inline parser_nodes#AStdClassdef#n_superclasses (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
3341 var26
= var_nclassdef
->attrs
[COLOR_parser_nodes__AStdClassdef___n_superclasses
].val
; /* _n_superclasses on <var_nclassdef:AClassdef(AStdClassdef)> */
3342 if (unlikely(var26
== NULL
)) {
3343 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_superclasses");
3344 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 942);
3348 RET_LABEL25
:(void)0;
3353 var27
= parser_nodes__ANodes__iterator(var_
);
3358 var29
= ((short int (*)(val
*))(var_28
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_28
) /* is_ok on <var_28:Iterator[ASuperclass]>*/;
3362 var30
= ((val
* (*)(val
*))(var_28
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_28
) /* item on <var_28:Iterator[ASuperclass]>*/;
3366 var_specobject
= var31
;
3368 { /* Inline parser_nodes#ASuperclass#n_type (var_nsc) on <var_nsc:ASuperclass> */
3369 var34
= var_nsc
->attrs
[COLOR_parser_nodes__ASuperclass___n_type
].val
; /* _n_type on <var_nsc:ASuperclass> */
3370 if (unlikely(var34
== NULL
)) {
3371 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
3372 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1006);
3376 RET_LABEL33
:(void)0;
3382 var36
= modelize_class__ModelBuilder__resolve_mtype_unchecked(self
, var_mmodule
, var_mclassdef
, var_ntype
, var35
);
3386 if (var_mtype
== NULL
) {
3387 var38
= 1; /* is null */
3389 var38
= 0; /* arg is null but recv is not */
3392 { /* Inline kernel#Object#== (var_mtype,var37) on <var_mtype:nullable MType> */
3395 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
3396 var43
= var_mtype
== var_other
;
3399 RET_LABEL42
:(void)0;
3404 RET_LABEL40
:(void)0;
3412 /* <var_mtype:nullable MType(MType)> isa MClassType */
3413 cltype45
= type_model__MClassType
.color
;
3414 idtype46
= type_model__MClassType
.id
;
3415 if(cltype45
>= var_mtype
->type
->table_size
) {
3418 var44
= var_mtype
->type
->type_table
[cltype45
] == idtype46
;
3425 var50
= "Error: supertypes cannot be a formal type";
3427 var52
= string__NativeString__to_s_with_length(var50
, var51
);
3432 modelbuilder__ModelBuilder__error(self
, var_ntype
, var49
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
3438 { /* Inline model#MClass#kind (var_mclass) on <var_mclass:MClass> */
3439 var55
= var_mclass
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var_mclass:MClass> */
3440 if (unlikely(var55
== NULL
)) {
3441 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
3442 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
3446 RET_LABEL54
:(void)0;
3450 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:nullable MType(MClassType)> */
3451 var58
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:nullable MType(MClassType)> */
3452 if (unlikely(var58
== NULL
)) {
3453 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3454 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
3458 RET_LABEL57
:(void)0;
3462 { /* Inline model#MClass#kind (var56) on <var56:MClass> */
3463 var61
= var56
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var56:MClass> */
3464 if (unlikely(var61
== NULL
)) {
3465 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
3466 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
3470 RET_LABEL60
:(void)0;
3474 var62
= model__MClassKind__can_specialize(var53
, var59
);
3483 var68
= string__NativeString__to_s_with_length(var66
, var67
);
3488 { /* Inline model#MClass#kind (var_mclass) on <var_mclass:MClass> */
3489 var71
= var_mclass
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var_mclass:MClass> */
3490 if (unlikely(var71
== NULL
)) {
3491 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
3492 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
3496 RET_LABEL70
:(void)0;
3504 var76
= string__NativeString__to_s_with_length(var74
, var75
);
3511 var79
= " cannot specialize ";
3513 var81
= string__NativeString__to_s_with_length(var79
, var80
);
3518 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:nullable MType(MClassType)> */
3519 var84
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:nullable MType(MClassType)> */
3520 if (unlikely(var84
== NULL
)) {
3521 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3522 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
3526 RET_LABEL83
:(void)0;
3530 { /* Inline model#MClass#kind (var82) on <var82:MClass> */
3531 var87
= var82
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var82:MClass> */
3532 if (unlikely(var87
== NULL
)) {
3533 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
3534 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
3538 RET_LABEL86
:(void)0;
3546 var92
= string__NativeString__to_s_with_length(var90
, var91
);
3551 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:nullable MType(MClassType)> */
3552 var95
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:nullable MType(MClassType)> */
3553 if (unlikely(var95
== NULL
)) {
3554 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3555 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
3559 RET_LABEL94
:(void)0;
3562 var96
= NEW_array__Array(&type_array__Arraykernel__Object
);
3563 { /* var96 = array_instance Array[Object] */
3565 var98
= NEW_array__NativeArray(var97
, &type_array__NativeArraykernel__Object
);
3566 ((struct instance_array__NativeArray
*)var98
)->values
[0] = (val
*) var65
;
3567 ((struct instance_array__NativeArray
*)var98
)->values
[1] = (val
*) var69
;
3568 ((struct instance_array__NativeArray
*)var98
)->values
[2] = (val
*) var73
;
3569 ((struct instance_array__NativeArray
*)var98
)->values
[3] = (val
*) var_mclass
;
3570 ((struct instance_array__NativeArray
*)var98
)->values
[4] = (val
*) var78
;
3571 ((struct instance_array__NativeArray
*)var98
)->values
[5] = (val
*) var85
;
3572 ((struct instance_array__NativeArray
*)var98
)->values
[6] = (val
*) var89
;
3573 ((struct instance_array__NativeArray
*)var98
)->values
[7] = (val
*) var93
;
3575 ((void (*)(val
*, val
*, long))(var96
->class->vft
[COLOR_array__Array__with_native
]))(var96
, var98
, var97
) /* with_native on <var96:Array[Object]>*/;
3579 var99
= ((val
* (*)(val
*))(var96
->class->vft
[COLOR_string__Object__to_s
]))(var96
) /* to_s on <var96:Array[Object]>*/;
3582 modelbuilder__ModelBuilder__error(self
, var_ntype
, var99
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
3587 array__Array__add(var_supertypes
, var_mtype
); /* Direct call array#Array#add on <var_supertypes:Array[MClassType]>*/
3590 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:nullable MType(MClassType)> */
3591 var102
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:nullable MType(MClassType)> */
3592 if (unlikely(var102
== NULL
)) {
3593 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3594 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
3598 RET_LABEL101
:(void)0;
3602 { /* Inline model#MClass#kind (var100) on <var100:MClass> */
3603 var105
= var100
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var100:MClass> */
3604 if (unlikely(var105
== NULL
)) {
3605 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
3606 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
3610 RET_LABEL104
:(void)0;
3614 var106
= model__Object__extern_kind(self
);
3617 { /* Inline kernel#Object#== (var103,var106) on <var103:MClassKind> */
3620 { /* Inline kernel#Object#is_same_instance (var103,var_other) on <var103:MClassKind> */
3621 var112
= var103
== var_other
;
3624 RET_LABEL111
:(void)0;
3629 RET_LABEL109
:(void)0;
3635 var_specpointer
= var113
;
3638 BREAK_label
: (void)0;
3640 ((void (*)(val
*))(var_28
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_28
) /* next on <var_28:Iterator[ASuperclass]>*/;
3643 goto BREAK_label114
;
3646 BREAK_label114
: (void)0;
3648 { /* Inline abstract_collection#Iterator#finish (var_28) on <var_28:Iterator[ASuperclass]> */
3649 RET_LABEL115
:(void)0;
3655 var117
= model__MClassDef__is_intro(var_mclassdef
);
3660 if (var_objectclass
== NULL
) {
3661 var120
= 0; /* is null */
3663 var120
= 1; /* arg is null and recv is not */
3666 { /* Inline kernel#Object#!= (var_objectclass,var119) on <var_objectclass:nullable MClass> */
3667 var_other123
= var119
;
3669 var125
= ((short int (*)(val
*, val
*))(var_objectclass
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_objectclass
, var_other123
) /* == on <var_objectclass:nullable MClass(MClass)>*/;
3675 RET_LABEL122
:(void)0;
3685 { /* Inline model#MClass#kind (var_mclass) on <var_mclass:MClass> */
3686 var130
= var_mclass
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var_mclass:MClass> */
3687 if (unlikely(var130
== NULL
)) {
3688 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
3689 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
3693 RET_LABEL129
:(void)0;
3697 var131
= model__Object__extern_kind(self
);
3700 { /* Inline kernel#Object#== (var128,var131) on <var128:MClassKind> */
3703 { /* Inline kernel#Object#is_same_instance (var128,var_other) on <var128:MClassKind> */
3704 var137
= var128
== var_other
;
3707 RET_LABEL136
:(void)0;
3712 RET_LABEL134
:(void)0;
3719 { /* Inline model#MClass#name (var_mclass) on <var_mclass:MClass> */
3720 var141
= var_mclass
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <var_mclass:MClass> */
3721 if (unlikely(var141
== NULL
)) {
3722 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3723 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 352);
3727 RET_LABEL140
:(void)0;
3731 var143
= varonce142
;
3735 var146
= string__NativeString__to_s_with_length(var144
, var145
);
3737 varonce142
= var143
;
3740 { /* Inline kernel#Object#!= (var139,var143) on <var139:String> */
3741 var_other123
= var143
;
3743 var151
= ((short int (*)(val
*, val
*))(var139
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var139
, var_other123
) /* == on <var139:String>*/;
3749 RET_LABEL149
:(void)0;
3758 if (var_specpointer
){
3759 if (var_pointerclass
== NULL
) {
3760 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3761 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 246);
3764 { /* Inline model#MClass#mclass_type (var_pointerclass) on <var_pointerclass:nullable MClass> */
3765 if (unlikely(var_pointerclass
== NULL
)) {
3766 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3767 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
3770 var155
= var_pointerclass
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_pointerclass:nullable MClass> */
3771 if (unlikely(var155
== NULL
)) {
3772 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
3773 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
3777 RET_LABEL154
:(void)0;
3781 array__Array__add(var_supertypes
, var153
); /* Direct call array#Array#add on <var_supertypes:Array[MClassType]>*/
3786 var_157
= var_specobject
;
3787 if (var_specobject
){
3789 { /* Inline model#MClass#name (var_mclass) on <var_mclass:MClass> */
3790 var160
= var_mclass
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <var_mclass:MClass> */
3791 if (unlikely(var160
== NULL
)) {
3792 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3793 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 352);
3797 RET_LABEL159
:(void)0;
3801 var162
= varonce161
;
3805 var165
= string__NativeString__to_s_with_length(var163
, var164
);
3807 varonce161
= var162
;
3810 { /* Inline kernel#Object#!= (var158,var162) on <var158:String> */
3811 var_other123
= var162
;
3813 var170
= ((short int (*)(val
*, val
*))(var158
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var158
, var_other123
) /* == on <var158:String>*/;
3819 RET_LABEL168
:(void)0;
3829 { /* Inline model#MClass#mclass_type (var_objectclass) on <var_objectclass:nullable MClass(MClass)> */
3830 var174
= var_objectclass
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_objectclass:nullable MClass(MClass)> */
3831 if (unlikely(var174
== NULL
)) {
3832 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
3833 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
3837 RET_LABEL173
:(void)0;
3841 array__Array__add(var_supertypes
, var172
); /* Direct call array#Array#add on <var_supertypes:Array[MClassType]>*/
3849 model__MClassDef__set_supertypes(var_mclassdef
, var_supertypes
); /* Direct call model#MClassDef#set_supertypes on <var_mclassdef:MClassDef>*/
3852 var175
= array__AbstractArrayRead__is_empty(var_supertypes
);
3857 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
3858 var179
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
3859 if (unlikely(var179
== NULL
)) {
3860 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3861 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
3865 RET_LABEL178
:(void)0;
3869 var181
= varonce180
;
3871 var182
= " new super-types: ";
3873 var184
= string__NativeString__to_s_with_length(var182
, var183
);
3875 varonce180
= var181
;
3878 var186
= varonce185
;
3882 var189
= string__NativeString__to_s_with_length(var187
, var188
);
3884 varonce185
= var186
;
3887 var190
= string__Collection__join(var_supertypes
, var186
);
3889 var191
= NEW_array__Array(&type_array__Arraykernel__Object
);
3890 { /* var191 = array_instance Array[Object] */
3892 var193
= NEW_array__NativeArray(var192
, &type_array__NativeArraykernel__Object
);
3893 ((struct instance_array__NativeArray
*)var193
)->values
[0] = (val
*) var_mclassdef
;
3894 ((struct instance_array__NativeArray
*)var193
)->values
[1] = (val
*) var181
;
3895 ((struct instance_array__NativeArray
*)var193
)->values
[2] = (val
*) var190
;
3897 ((void (*)(val
*, val
*, long))(var191
->class->vft
[COLOR_array__Array__with_native
]))(var191
, var193
, var192
) /* with_native on <var191:Array[Object]>*/;
3901 var194
= ((val
* (*)(val
*))(var191
->class->vft
[COLOR_string__Object__to_s
]))(var191
) /* to_s on <var191:Array[Object]>*/;
3905 toolcontext__ToolContext__info(var177
, var194
, var195
); /* Direct call toolcontext#ToolContext#info on <var177:ToolContext>*/
3911 /* method modelize_class#ModelBuilder#collect_a_mclassdef_inheritance for (self: Object, AModule, AClassdef) */
3912 void VIRTUAL_modelize_class__ModelBuilder__collect_a_mclassdef_inheritance(val
* self
, val
* p0
, val
* p1
) {
3913 modelize_class__ModelBuilder__collect_a_mclassdef_inheritance(self
, p0
, p1
); /* Direct call modelize_class#ModelBuilder#collect_a_mclassdef_inheritance on <self:Object(ModelBuilder)>*/
3916 /* method modelize_class#ModelBuilder#check_supertypes for (self: ModelBuilder, AModule, AClassdef) */
3917 void modelize_class__ModelBuilder__check_supertypes(val
* self
, val
* p0
, val
* p1
) {
3918 val
* var_nmodule
/* var nmodule: AModule */;
3919 val
* var_nclassdef
/* var nclassdef: AClassdef */;
3920 val
* var
/* : nullable MModule */;
3921 val
* var2
/* : nullable MModule */;
3922 val
* var_mmodule
/* var mmodule: MModule */;
3923 val
* var3
/* : nullable MClass */;
3924 val
* var5
/* : nullable MClass */;
3925 val
* var_mclass
/* var mclass: MClass */;
3926 val
* var6
/* : nullable MClassDef */;
3927 val
* var8
/* : nullable MClassDef */;
3928 val
* var_mclassdef
/* var mclassdef: MClassDef */;
3929 val
* var9
/* : Array[MClassType] */;
3930 val
* var11
/* : Array[MClassType] */;
3931 val
* var_
/* var : Array[MClassType] */;
3932 val
* var12
/* : ArrayIterator[nullable Object] */;
3933 val
* var_13
/* var : ArrayIterator[MClassType] */;
3934 short int var14
/* : Bool */;
3935 val
* var15
/* : nullable Object */;
3936 val
* var_s
/* var s: MClassType */;
3937 val
* var16
/* : MClassType */;
3938 val
* var18
/* : MClassType */;
3939 val
* var19
/* : MClassType */;
3940 val
* var21
/* : MClassType */;
3941 short int var22
/* : Bool */;
3942 static val
* varonce
;
3943 val
* var23
/* : String */;
3944 char* var24
/* : NativeString */;
3945 long var25
/* : Int */;
3946 val
* var26
/* : FlatString */;
3947 static val
* varonce27
;
3948 val
* var28
/* : String */;
3949 char* var29
/* : NativeString */;
3950 long var30
/* : Int */;
3951 val
* var31
/* : FlatString */;
3952 val
* var32
/* : Array[Object] */;
3953 long var33
/* : Int */;
3954 val
* var34
/* : NativeArray[Object] */;
3955 val
* var35
/* : String */;
3959 { /* Inline modelbuilder#AModule#mmodule (var_nmodule) on <var_nmodule:AModule> */
3960 var2
= var_nmodule
->attrs
[COLOR_modelbuilder__AModule___mmodule
].val
; /* _mmodule on <var_nmodule:AModule> */
3965 if (unlikely(var
== NULL
)) {
3966 PRINT_ERROR("Runtime error: %s", "Cast failed");
3967 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 260);
3972 { /* Inline modelize_class#AClassdef#mclass (var_nclassdef) on <var_nclassdef:AClassdef> */
3973 var5
= var_nclassdef
->attrs
[COLOR_modelize_class__AClassdef___mclass
].val
; /* _mclass on <var_nclassdef:AClassdef> */
3978 if (unlikely(var3
== NULL
)) {
3979 PRINT_ERROR("Runtime error: %s", "Cast failed");
3980 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 261);
3985 { /* Inline modelize_class#AClassdef#mclassdef (var_nclassdef) on <var_nclassdef:AClassdef> */
3986 var8
= var_nclassdef
->attrs
[COLOR_modelize_class__AClassdef___mclassdef
].val
; /* _mclassdef on <var_nclassdef:AClassdef> */
3991 if (unlikely(var6
== NULL
)) {
3992 PRINT_ERROR("Runtime error: %s", "Cast failed");
3993 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 262);
3996 var_mclassdef
= var6
;
3998 { /* Inline model#MClassDef#supertypes (var_mclassdef) on <var_mclassdef:MClassDef> */
3999 var11
= var_mclassdef
->attrs
[COLOR_model__MClassDef___supertypes
].val
; /* _supertypes on <var_mclassdef:MClassDef> */
4000 if (unlikely(var11
== NULL
)) {
4001 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes");
4002 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 534);
4006 RET_LABEL10
:(void)0;
4011 var12
= array__AbstractArrayRead__iterator(var_
);
4016 var14
= array__ArrayIterator__is_ok(var_13
);
4020 var15
= array__ArrayIterator__item(var_13
);
4024 { /* Inline model#MClassDef#bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
4025 var18
= var_mclassdef
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var_mclassdef:MClassDef> */
4026 if (unlikely(var18
== NULL
)) {
4027 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
4028 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
4032 RET_LABEL17
:(void)0;
4036 { /* Inline model#MClassDef#bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
4037 var21
= var_mclassdef
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var_mclassdef:MClassDef> */
4038 if (unlikely(var21
== NULL
)) {
4039 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
4040 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
4044 RET_LABEL20
:(void)0;
4048 var22
= model__MType__is_subtype(var_s
, var_mmodule
, var16
, var19
);
4054 var24
= "Error: Inheritance loop for class ";
4056 var26
= string__NativeString__to_s_with_length(var24
, var25
);
4063 var29
= " with type ";
4065 var31
= string__NativeString__to_s_with_length(var29
, var30
);
4069 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
4070 { /* var32 = array_instance Array[Object] */
4072 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
4073 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var23
;
4074 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var_mclass
;
4075 ((struct instance_array__NativeArray
*)var34
)->values
[2] = (val
*) var28
;
4076 ((struct instance_array__NativeArray
*)var34
)->values
[3] = (val
*) var_s
;
4078 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
4082 var35
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
4085 modelbuilder__ModelBuilder__error(self
, var_nclassdef
, var35
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
4090 array__ArrayIterator__next(var_13
); /* Direct call array#ArrayIterator#next on <var_13:ArrayIterator[MClassType]>*/
4096 BREAK_label
: (void)0;
4098 { /* Inline abstract_collection#Iterator#finish (var_13) on <var_13:ArrayIterator[MClassType]> */
4099 RET_LABEL36
:(void)0;
4104 /* method modelize_class#ModelBuilder#check_supertypes for (self: Object, AModule, AClassdef) */
4105 void VIRTUAL_modelize_class__ModelBuilder__check_supertypes(val
* self
, val
* p0
, val
* p1
) {
4106 modelize_class__ModelBuilder__check_supertypes(self
, p0
, p1
); /* Direct call modelize_class#ModelBuilder#check_supertypes on <self:Object(ModelBuilder)>*/
4109 /* method modelize_class#ModelBuilder#build_classes for (self: ModelBuilder, AModule) */
4110 void modelize_class__ModelBuilder__build_classes(val
* self
, val
* p0
) {
4111 val
* var_nmodule
/* var nmodule: AModule */;
4112 val
* var
/* : ToolContext */;
4113 val
* var2
/* : ToolContext */;
4114 long var3
/* : Int */;
4115 long var5
/* : Int */;
4116 long var_errcount
/* var errcount: Int */;
4117 short int var6
/* : Bool */;
4118 short int var8
/* : Bool */;
4119 short int var9
/* : Bool */;
4120 val
* var11
/* : nullable MModule */;
4121 val
* var13
/* : nullable MModule */;
4122 val
* var_mmodule
/* var mmodule: MModule */;
4123 val
* var14
/* : POSetElement[MModule] */;
4124 val
* var16
/* : POSetElement[MModule] */;
4125 val
* var17
/* : Collection[Object] */;
4126 val
* var_
/* var : Collection[MModule] */;
4127 val
* var18
/* : Iterator[nullable Object] */;
4128 val
* var_19
/* var : Iterator[MModule] */;
4129 short int var20
/* : Bool */;
4130 val
* var21
/* : nullable Object */;
4131 val
* var_imp
/* var imp: MModule */;
4132 val
* var22
/* : HashMap[MModule, AModule] */;
4133 val
* var24
/* : HashMap[MModule, AModule] */;
4134 short int var25
/* : Bool */;
4135 short int var26
/* : Bool */;
4136 val
* var27
/* : HashMap[MModule, AModule] */;
4137 val
* var29
/* : HashMap[MModule, AModule] */;
4138 val
* var30
/* : nullable Object */;
4139 val
* var33
/* : ToolContext */;
4140 val
* var35
/* : ToolContext */;
4141 long var36
/* : Int */;
4142 long var38
/* : Int */;
4143 short int var39
/* : Bool */;
4144 short int var40
/* : Bool */;
4145 short int var42
/* : Bool */;
4146 short int var43
/* : Bool */;
4147 val
* var44
/* : ANodes[AClassdef] */;
4148 val
* var46
/* : ANodes[AClassdef] */;
4149 val
* var_47
/* var : ANodes[AClassdef] */;
4150 val
* var48
/* : Iterator[ANode] */;
4151 val
* var_49
/* var : Iterator[AClassdef] */;
4152 short int var50
/* : Bool */;
4153 val
* var51
/* : nullable Object */;
4154 val
* var_nclassdef
/* var nclassdef: AClassdef */;
4155 val
* var54
/* : ToolContext */;
4156 val
* var56
/* : ToolContext */;
4157 long var57
/* : Int */;
4158 long var59
/* : Int */;
4159 short int var60
/* : Bool */;
4160 short int var61
/* : Bool */;
4161 short int var63
/* : Bool */;
4162 short int var64
/* : Bool */;
4163 val
* var65
/* : ANodes[AClassdef] */;
4164 val
* var67
/* : ANodes[AClassdef] */;
4165 val
* var_68
/* var : ANodes[AClassdef] */;
4166 val
* var69
/* : Iterator[ANode] */;
4167 val
* var_70
/* var : Iterator[AClassdef] */;
4168 short int var71
/* : Bool */;
4169 val
* var72
/* : nullable Object */;
4170 val
* var_nclassdef73
/* var nclassdef: AClassdef */;
4171 val
* var76
/* : ToolContext */;
4172 val
* var78
/* : ToolContext */;
4173 long var79
/* : Int */;
4174 long var81
/* : Int */;
4175 short int var82
/* : Bool */;
4176 short int var83
/* : Bool */;
4177 short int var85
/* : Bool */;
4178 short int var86
/* : Bool */;
4179 val
* var87
/* : ANodes[AClassdef] */;
4180 val
* var89
/* : ANodes[AClassdef] */;
4181 val
* var_90
/* var : ANodes[AClassdef] */;
4182 val
* var91
/* : Iterator[ANode] */;
4183 val
* var_92
/* var : Iterator[AClassdef] */;
4184 short int var93
/* : Bool */;
4185 val
* var94
/* : nullable Object */;
4186 val
* var_nclassdef95
/* var nclassdef: AClassdef */;
4187 val
* var98
/* : ToolContext */;
4188 val
* var100
/* : ToolContext */;
4189 long var101
/* : Int */;
4190 long var103
/* : Int */;
4191 short int var104
/* : Bool */;
4192 short int var105
/* : Bool */;
4193 short int var107
/* : Bool */;
4194 short int var108
/* : Bool */;
4195 val
* var109
/* : Array[MClassDef] */;
4196 val
* var111
/* : Array[MClassDef] */;
4197 val
* var_112
/* var : Array[MClassDef] */;
4198 val
* var113
/* : ArrayIterator[nullable Object] */;
4199 val
* var_114
/* var : ArrayIterator[MClassDef] */;
4200 short int var115
/* : Bool */;
4201 val
* var116
/* : nullable Object */;
4202 val
* var_mclassdef
/* var mclassdef: MClassDef */;
4203 val
* var119
/* : ToolContext */;
4204 val
* var121
/* : ToolContext */;
4205 long var122
/* : Int */;
4206 long var124
/* : Int */;
4207 short int var125
/* : Bool */;
4208 short int var126
/* : Bool */;
4209 short int var128
/* : Bool */;
4210 short int var129
/* : Bool */;
4211 val
* var130
/* : ANodes[AClassdef] */;
4212 val
* var132
/* : ANodes[AClassdef] */;
4213 val
* var_133
/* var : ANodes[AClassdef] */;
4214 val
* var134
/* : Iterator[ANode] */;
4215 val
* var_135
/* var : Iterator[AClassdef] */;
4216 short int var136
/* : Bool */;
4217 val
* var137
/* : nullable Object */;
4218 val
* var_nclassdef138
/* var nclassdef: AClassdef */;
4219 val
* var141
/* : ToolContext */;
4220 val
* var143
/* : ToolContext */;
4221 long var144
/* : Int */;
4222 long var146
/* : Int */;
4223 short int var147
/* : Bool */;
4224 short int var148
/* : Bool */;
4225 short int var150
/* : Bool */;
4226 short int var151
/* : Bool */;
4227 val
* var152
/* : ANodes[AClassdef] */;
4228 val
* var154
/* : ANodes[AClassdef] */;
4229 val
* var_155
/* var : ANodes[AClassdef] */;
4230 val
* var156
/* : Iterator[ANode] */;
4231 val
* var_157
/* var : Iterator[AClassdef] */;
4232 short int var158
/* : Bool */;
4233 val
* var159
/* : nullable Object */;
4234 val
* var_nclassdef160
/* var nclassdef: AClassdef */;
4235 short int var161
/* : Bool */;
4238 val
* var162
/* : nullable MClassDef */;
4239 val
* var164
/* : nullable MClassDef */;
4240 val
* var_mclassdef165
/* var mclassdef: nullable MClassDef */;
4241 val
* var166
/* : ANodes[AFormaldef] */;
4242 val
* var168
/* : ANodes[AFormaldef] */;
4243 val
* var_169
/* var : ANodes[AFormaldef] */;
4244 val
* var170
/* : Iterator[ANode] */;
4245 val
* var_171
/* var : Iterator[AFormaldef] */;
4246 short int var172
/* : Bool */;
4247 val
* var173
/* : nullable Object */;
4248 val
* var_nfd
/* var nfd: AFormaldef */;
4249 val
* var174
/* : nullable AType */;
4250 val
* var176
/* : nullable AType */;
4251 val
* var_nfdt
/* var nfdt: nullable AType */;
4252 short int var177
/* : Bool */;
4253 val
* var178
/* : null */;
4254 short int var179
/* : Bool */;
4255 short int var180
/* : Bool */;
4256 val
* var_other
/* var other: nullable Object */;
4257 short int var182
/* : Bool */;
4258 short int var183
/* : Bool */;
4259 short int var184
/* : Bool */;
4260 short int var_185
/* var : Bool */;
4261 val
* var186
/* : nullable MType */;
4262 val
* var188
/* : nullable MType */;
4263 val
* var189
/* : null */;
4264 short int var190
/* : Bool */;
4265 short int var191
/* : Bool */;
4266 short int var193
/* : Bool */;
4267 short int var194
/* : Bool */;
4268 short int var195
/* : Bool */;
4269 val
* var196
/* : nullable MType */;
4270 val
* var_bound
/* var bound: nullable MType */;
4271 val
* var197
/* : null */;
4272 short int var198
/* : Bool */;
4273 short int var199
/* : Bool */;
4274 val
* var_other201
/* var other: nullable Object */;
4275 short int var202
/* : Bool */;
4276 short int var204
/* : Bool */;
4277 val
* var207
/* : ANodes[ASuperclass] */;
4278 val
* var209
/* : ANodes[ASuperclass] */;
4279 val
* var_210
/* var : ANodes[ASuperclass] */;
4280 val
* var211
/* : Iterator[ANode] */;
4281 val
* var_212
/* var : Iterator[ASuperclass] */;
4282 short int var213
/* : Bool */;
4283 val
* var214
/* : nullable Object */;
4284 val
* var_nsc
/* var nsc: ASuperclass */;
4285 val
* var215
/* : AType */;
4286 val
* var217
/* : AType */;
4287 val
* var_ntype
/* var ntype: AType */;
4288 val
* var218
/* : nullable MType */;
4289 val
* var220
/* : nullable MType */;
4290 val
* var221
/* : null */;
4291 short int var222
/* : Bool */;
4292 short int var223
/* : Bool */;
4293 short int var225
/* : Bool */;
4294 short int var226
/* : Bool */;
4295 short int var227
/* : Bool */;
4296 val
* var228
/* : nullable MType */;
4297 val
* var_mtype
/* var mtype: nullable MType */;
4298 val
* var229
/* : null */;
4299 short int var230
/* : Bool */;
4300 short int var231
/* : Bool */;
4301 short int var233
/* : Bool */;
4302 short int var235
/* : Bool */;
4303 val
* var240
/* : ToolContext */;
4304 val
* var242
/* : ToolContext */;
4305 long var243
/* : Int */;
4306 long var245
/* : Int */;
4307 short int var246
/* : Bool */;
4308 short int var247
/* : Bool */;
4309 short int var249
/* : Bool */;
4310 short int var250
/* : Bool */;
4311 val
* var251
/* : ANodes[AClassdef] */;
4312 val
* var253
/* : ANodes[AClassdef] */;
4313 val
* var_254
/* var : ANodes[AClassdef] */;
4314 val
* var255
/* : Iterator[ANode] */;
4315 val
* var_256
/* var : Iterator[AClassdef] */;
4316 short int var257
/* : Bool */;
4317 val
* var258
/* : nullable Object */;
4318 val
* var_nclassdef259
/* var nclassdef: AClassdef */;
4319 val
* var260
/* : nullable MClassDef */;
4320 val
* var262
/* : nullable MClassDef */;
4321 val
* var_mclassdef263
/* var mclassdef: MClassDef */;
4322 val
* var264
/* : HashMap[MClass, MClassType] */;
4323 val
* var_superclasses
/* var superclasses: HashMap[MClass, MClassType] */;
4324 val
* var265
/* : nullable POSetElement[MClassDef] */;
4325 val
* var267
/* : nullable POSetElement[MClassDef] */;
4326 val
* var268
/* : Collection[Object] */;
4327 val
* var_269
/* var : Collection[MClassDef] */;
4328 val
* var270
/* : Iterator[nullable Object] */;
4329 val
* var_271
/* var : Iterator[MClassDef] */;
4330 short int var272
/* : Bool */;
4331 val
* var273
/* : nullable Object */;
4332 val
* var_scd
/* var scd: MClassDef */;
4333 val
* var274
/* : Array[MClassType] */;
4334 val
* var276
/* : Array[MClassType] */;
4335 val
* var_277
/* var : Array[MClassType] */;
4336 val
* var278
/* : ArrayIterator[nullable Object] */;
4337 val
* var_279
/* var : ArrayIterator[MClassType] */;
4338 short int var280
/* : Bool */;
4339 val
* var281
/* : nullable Object */;
4340 val
* var_st
/* var st: MClassType */;
4341 val
* var282
/* : MClass */;
4342 val
* var284
/* : MClass */;
4343 short int var285
/* : Bool */;
4344 short int var286
/* : Bool */;
4345 val
* var287
/* : MClass */;
4346 val
* var289
/* : MClass */;
4347 val
* var290
/* : MClass */;
4348 val
* var292
/* : MClass */;
4349 val
* var293
/* : nullable Object */;
4350 short int var294
/* : Bool */;
4351 short int var295
/* : Bool */;
4352 short int var297
/* : Bool */;
4353 short int var298
/* : Bool */;
4354 short int var299
/* : Bool */;
4355 val
* var300
/* : MClass */;
4356 val
* var302
/* : MClass */;
4357 val
* var303
/* : nullable Object */;
4358 val
* var304
/* : MClass */;
4359 val
* var306
/* : MClass */;
4360 val
* var307
/* : MClassType */;
4361 val
* var309
/* : MClassType */;
4362 val
* var310
/* : MClassType */;
4363 val
* var312
/* : MClassType */;
4364 short int var313
/* : Bool */;
4365 val
* var314
/* : MType */;
4366 val
* var_st1
/* var st1: MClassType */;
4367 val
* var315
/* : MClass */;
4368 val
* var317
/* : MClass */;
4369 val
* var318
/* : MClassType */;
4370 val
* var320
/* : MClassType */;
4371 val
* var321
/* : MClassType */;
4372 val
* var323
/* : MClassType */;
4373 short int var324
/* : Bool */;
4374 val
* var325
/* : MType */;
4375 val
* var_st2
/* var st2: MClassType */;
4376 short int var326
/* : Bool */;
4377 short int var327
/* : Bool */;
4378 short int var329
/* : Bool */;
4379 short int var330
/* : Bool */;
4380 short int var331
/* : Bool */;
4381 static val
* varonce
;
4382 val
* var332
/* : String */;
4383 char* var333
/* : NativeString */;
4384 long var334
/* : Int */;
4385 val
* var335
/* : FlatString */;
4386 val
* var336
/* : MClass */;
4387 val
* var338
/* : MClass */;
4388 static val
* varonce339
;
4389 val
* var340
/* : String */;
4390 char* var341
/* : NativeString */;
4391 long var342
/* : Int */;
4392 val
* var343
/* : FlatString */;
4393 static val
* varonce344
;
4394 val
* var345
/* : String */;
4395 char* var346
/* : NativeString */;
4396 long var347
/* : Int */;
4397 val
* var348
/* : FlatString */;
4398 val
* var349
/* : Array[Object] */;
4399 long var350
/* : Int */;
4400 val
* var351
/* : NativeArray[Object] */;
4401 val
* var352
/* : String */;
4402 val
* var359
/* : ToolContext */;
4403 val
* var361
/* : ToolContext */;
4404 long var362
/* : Int */;
4405 long var364
/* : Int */;
4406 short int var365
/* : Bool */;
4407 short int var366
/* : Bool */;
4408 short int var368
/* : Bool */;
4409 short int var369
/* : Bool */;
4410 val
* var370
/* : ANodes[AClassdef] */;
4411 val
* var372
/* : ANodes[AClassdef] */;
4412 val
* var_373
/* var : ANodes[AClassdef] */;
4413 val
* var374
/* : Iterator[ANode] */;
4414 val
* var_375
/* var : Iterator[AClassdef] */;
4415 short int var376
/* : Bool */;
4416 val
* var377
/* : nullable Object */;
4417 val
* var_nclassdef378
/* var nclassdef: AClassdef */;
4418 short int var379
/* : Bool */;
4421 short int var382
/* : Bool */;
4422 val
* var384
/* : nullable MClassDef */;
4423 val
* var386
/* : nullable MClassDef */;
4424 val
* var_mclassdef387
/* var mclassdef: MClassDef */;
4425 val
* var388
/* : Array[MClass] */;
4426 val
* var_parents
/* var parents: Array[MClass] */;
4427 val
* var389
/* : nullable POSetElement[MClassDef] */;
4428 val
* var391
/* : nullable POSetElement[MClassDef] */;
4429 val
* var392
/* : Collection[Object] */;
4430 val
* var_393
/* var : Collection[MClassDef] */;
4431 val
* var394
/* : Iterator[nullable Object] */;
4432 val
* var_395
/* var : Iterator[MClassDef] */;
4433 short int var396
/* : Bool */;
4434 val
* var397
/* : nullable Object */;
4435 val
* var_sup
/* var sup: MClassDef */;
4436 val
* var398
/* : MClass */;
4437 val
* var400
/* : MClass */;
4438 val
* var403
/* : ArrayMap[MClass, AType] */;
4439 val
* var_seen_parents
/* var seen_parents: ArrayMap[MClass, AType] */;
4440 static val
* varonce404
;
4441 val
* var405
/* : String */;
4442 char* var406
/* : NativeString */;
4443 long var407
/* : Int */;
4444 val
* var408
/* : FlatString */;
4445 val
* var409
/* : nullable MClass */;
4446 val
* var_objectclass
/* var objectclass: nullable MClass */;
4447 val
* var410
/* : ANodes[ASuperclass] */;
4448 val
* var412
/* : ANodes[ASuperclass] */;
4449 val
* var_413
/* var : ANodes[ASuperclass] */;
4450 val
* var414
/* : Iterator[ANode] */;
4451 val
* var_415
/* var : Iterator[ASuperclass] */;
4452 short int var416
/* : Bool */;
4453 val
* var417
/* : nullable Object */;
4454 val
* var_nsc418
/* var nsc: ASuperclass */;
4455 val
* var419
/* : AType */;
4456 val
* var421
/* : AType */;
4457 val
* var_ntype422
/* var ntype: AType */;
4458 val
* var423
/* : nullable MType */;
4459 val
* var425
/* : nullable MType */;
4460 val
* var_mtype426
/* var mtype: nullable MType */;
4461 val
* var427
/* : null */;
4462 short int var428
/* : Bool */;
4463 short int var429
/* : Bool */;
4464 short int var431
/* : Bool */;
4465 short int var433
/* : Bool */;
4466 short int var435
/* : Bool */;
4469 val
* var438
/* : MClass */;
4470 val
* var440
/* : MClass */;
4471 val
* var_sc
/* var sc: MClass */;
4472 short int var441
/* : Bool */;
4473 short int var442
/* : Bool */;
4474 short int var443
/* : Bool */;
4475 short int var_444
/* var : Bool */;
4476 short int var445
/* : Bool */;
4477 short int var446
/* : Bool */;
4478 short int var448
/* : Bool */;
4479 short int var450
/* : Bool */;
4480 short int var451
/* : Bool */;
4481 val
* var452
/* : Location */;
4482 val
* var454
/* : Location */;
4483 val
* var455
/* : nullable SourceFile */;
4484 val
* var457
/* : nullable SourceFile */;
4485 val
* var458
/* : null */;
4486 short int var459
/* : Bool */;
4487 short int var460
/* : Bool */;
4488 short int var462
/* : Bool */;
4489 short int var463
/* : Bool */;
4490 short int var464
/* : Bool */;
4491 short int var_465
/* var : Bool */;
4492 val
* var466
/* : Location */;
4493 val
* var468
/* : Location */;
4494 val
* var469
/* : nullable SourceFile */;
4495 val
* var471
/* : nullable SourceFile */;
4496 val
* var472
/* : String */;
4497 val
* var474
/* : String */;
4498 short int var475
/* : Bool */;
4499 short int var476
/* : Bool */;
4500 static val
* varonce477
;
4501 val
* var478
/* : String */;
4502 char* var479
/* : NativeString */;
4503 long var480
/* : Int */;
4504 val
* var481
/* : FlatString */;
4505 static val
* varonce482
;
4506 val
* var483
/* : String */;
4507 char* var484
/* : NativeString */;
4508 long var485
/* : Int */;
4509 val
* var486
/* : FlatString */;
4510 static val
* varonce487
;
4511 val
* var488
/* : String */;
4512 char* var489
/* : NativeString */;
4513 long var490
/* : Int */;
4514 val
* var491
/* : FlatString */;
4515 val
* var492
/* : MClass */;
4516 val
* var494
/* : MClass */;
4517 static val
* varonce495
;
4518 val
* var496
/* : String */;
4519 char* var497
/* : NativeString */;
4520 long var498
/* : Int */;
4521 val
* var499
/* : FlatString */;
4522 val
* var500
/* : Array[Object] */;
4523 long var501
/* : Int */;
4524 val
* var502
/* : NativeArray[Object] */;
4525 val
* var503
/* : String */;
4526 short int var504
/* : Bool */;
4527 short int var505
/* : Bool */;
4528 static val
* varonce506
;
4529 val
* var507
/* : String */;
4530 char* var508
/* : NativeString */;
4531 long var509
/* : Int */;
4532 val
* var510
/* : FlatString */;
4533 static val
* varonce511
;
4534 val
* var512
/* : String */;
4535 char* var513
/* : NativeString */;
4536 long var514
/* : Int */;
4537 val
* var515
/* : FlatString */;
4538 static val
* varonce516
;
4539 val
* var517
/* : String */;
4540 char* var518
/* : NativeString */;
4541 long var519
/* : Int */;
4542 val
* var520
/* : FlatString */;
4543 val
* var521
/* : MClass */;
4544 val
* var523
/* : MClass */;
4545 static val
* varonce524
;
4546 val
* var525
/* : String */;
4547 char* var526
/* : NativeString */;
4548 long var527
/* : Int */;
4549 val
* var528
/* : FlatString */;
4550 val
* var529
/* : Array[Object] */;
4551 long var530
/* : Int */;
4552 val
* var531
/* : NativeArray[Object] */;
4553 val
* var532
/* : String */;
4556 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
4557 var2
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
4558 if (unlikely(var2
== NULL
)) {
4559 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4560 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
4568 { /* Inline toolcontext#ToolContext#error_count (var) on <var:ToolContext> */
4569 var5
= var
->attrs
[COLOR_toolcontext__ToolContext___error_count
].l
; /* _error_count on <var:ToolContext> */
4574 var_errcount
= var3
;
4576 { /* Inline modelize_class#AModule#build_classes_is_done (var_nmodule) on <var_nmodule:AModule> */
4577 var8
= var_nmodule
->attrs
[COLOR_modelize_class__AModule___build_classes_is_done
].s
; /* _build_classes_is_done on <var_nmodule:AModule> */
4588 { /* Inline modelize_class#AModule#build_classes_is_done= (var_nmodule,var9) on <var_nmodule:AModule> */
4589 var_nmodule
->attrs
[COLOR_modelize_class__AModule___build_classes_is_done
].s
= var9
; /* _build_classes_is_done on <var_nmodule:AModule> */
4590 RET_LABEL10
:(void)0;
4594 { /* Inline modelbuilder#AModule#mmodule (var_nmodule) on <var_nmodule:AModule> */
4595 var13
= var_nmodule
->attrs
[COLOR_modelbuilder__AModule___mmodule
].val
; /* _mmodule on <var_nmodule:AModule> */
4597 RET_LABEL12
:(void)0;
4600 if (unlikely(var11
== NULL
)) {
4601 PRINT_ERROR("Runtime error: %s", "Cast failed");
4602 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 279);
4605 var_mmodule
= var11
;
4607 { /* Inline mmodule#MModule#in_importation (var_mmodule) on <var_mmodule:MModule> */
4608 var16
= var_mmodule
->attrs
[COLOR_mmodule__MModule___in_importation
].val
; /* _in_importation on <var_mmodule:MModule> */
4609 if (unlikely(var16
== NULL
)) {
4610 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
4611 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 93);
4615 RET_LABEL15
:(void)0;
4619 var17
= poset__POSetElement__direct_greaters(var14
);
4623 var18
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Collection[MModule]>*/;
4628 var20
= ((short int (*)(val
*))(var_19
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_19
) /* is_ok on <var_19:Iterator[MModule]>*/;
4632 var21
= ((val
* (*)(val
*))(var_19
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_19
) /* item on <var_19:Iterator[MModule]>*/;
4636 { /* Inline modelbuilder#ModelBuilder#mmodule2nmodule (self) on <self:ModelBuilder> */
4637 var24
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___mmodule2nmodule
].val
; /* _mmodule2nmodule on <self:ModelBuilder> */
4638 if (unlikely(var24
== NULL
)) {
4639 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule2nmodule");
4640 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 728);
4644 RET_LABEL23
:(void)0;
4648 var25
= abstract_collection__MapRead__has_key(var22
, var_imp
);
4656 { /* Inline modelbuilder#ModelBuilder#mmodule2nmodule (self) on <self:ModelBuilder> */
4657 var29
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___mmodule2nmodule
].val
; /* _mmodule2nmodule on <self:ModelBuilder> */
4658 if (unlikely(var29
== NULL
)) {
4659 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule2nmodule");
4660 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 728);
4664 RET_LABEL28
:(void)0;
4668 var30
= hash_collection__HashMap___91d_93d(var27
, var_imp
);
4671 modelize_class__ModelBuilder__build_classes(self
, var30
); /* Direct call modelize_class#ModelBuilder#build_classes on <self:ModelBuilder>*/
4673 BREAK_label
: (void)0;
4675 ((void (*)(val
*))(var_19
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_19
) /* next on <var_19:Iterator[MModule]>*/;
4681 BREAK_label31
: (void)0;
4683 { /* Inline abstract_collection#Iterator#finish (var_19) on <var_19:Iterator[MModule]> */
4684 RET_LABEL32
:(void)0;
4688 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
4689 var35
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
4690 if (unlikely(var35
== NULL
)) {
4691 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4692 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
4696 RET_LABEL34
:(void)0;
4700 { /* Inline toolcontext#ToolContext#error_count (var33) on <var33:ToolContext> */
4701 var38
= var33
->attrs
[COLOR_toolcontext__ToolContext___error_count
].l
; /* _error_count on <var33:ToolContext> */
4703 RET_LABEL37
:(void)0;
4707 { /* Inline kernel#Int#!= (var_errcount,var36) on <var_errcount:Int> */
4708 var42
= var_errcount
== var36
;
4712 RET_LABEL41
:(void)0;
4721 { /* Inline parser_nodes#AModule#n_classdefs (var_nmodule) on <var_nmodule:AModule> */
4722 var46
= var_nmodule
->attrs
[COLOR_parser_nodes__AModule___n_classdefs
].val
; /* _n_classdefs on <var_nmodule:AModule> */
4723 if (unlikely(var46
== NULL
)) {
4724 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_classdefs");
4725 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 859);
4729 RET_LABEL45
:(void)0;
4734 var48
= parser_nodes__ANodes__iterator(var_47
);
4739 var50
= ((short int (*)(val
*))(var_49
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_49
) /* is_ok on <var_49:Iterator[AClassdef]>*/;
4743 var51
= ((val
* (*)(val
*))(var_49
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_49
) /* item on <var_49:Iterator[AClassdef]>*/;
4745 var_nclassdef
= var51
;
4747 modelize_class__ModelBuilder__build_a_mclass(self
, var_nmodule
, var_nclassdef
); /* Direct call modelize_class#ModelBuilder#build_a_mclass on <self:ModelBuilder>*/
4750 ((void (*)(val
*))(var_49
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_49
) /* next on <var_49:Iterator[AClassdef]>*/;
4756 BREAK_label52
: (void)0;
4758 { /* Inline abstract_collection#Iterator#finish (var_49) on <var_49:Iterator[AClassdef]> */
4759 RET_LABEL53
:(void)0;
4763 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
4764 var56
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
4765 if (unlikely(var56
== NULL
)) {
4766 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4767 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
4771 RET_LABEL55
:(void)0;
4775 { /* Inline toolcontext#ToolContext#error_count (var54) on <var54:ToolContext> */
4776 var59
= var54
->attrs
[COLOR_toolcontext__ToolContext___error_count
].l
; /* _error_count on <var54:ToolContext> */
4778 RET_LABEL58
:(void)0;
4782 { /* Inline kernel#Int#!= (var_errcount,var57) on <var_errcount:Int> */
4783 var63
= var_errcount
== var57
;
4787 RET_LABEL62
:(void)0;
4796 { /* Inline parser_nodes#AModule#n_classdefs (var_nmodule) on <var_nmodule:AModule> */
4797 var67
= var_nmodule
->attrs
[COLOR_parser_nodes__AModule___n_classdefs
].val
; /* _n_classdefs on <var_nmodule:AModule> */
4798 if (unlikely(var67
== NULL
)) {
4799 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_classdefs");
4800 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 859);
4804 RET_LABEL66
:(void)0;
4809 var69
= parser_nodes__ANodes__iterator(var_68
);
4814 var71
= ((short int (*)(val
*))(var_70
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_70
) /* is_ok on <var_70:Iterator[AClassdef]>*/;
4818 var72
= ((val
* (*)(val
*))(var_70
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_70
) /* item on <var_70:Iterator[AClassdef]>*/;
4820 var_nclassdef73
= var72
;
4822 modelize_class__ModelBuilder__build_a_mclassdef(self
, var_nmodule
, var_nclassdef73
); /* Direct call modelize_class#ModelBuilder#build_a_mclassdef on <self:ModelBuilder>*/
4825 ((void (*)(val
*))(var_70
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_70
) /* next on <var_70:Iterator[AClassdef]>*/;
4831 BREAK_label74
: (void)0;
4833 { /* Inline abstract_collection#Iterator#finish (var_70) on <var_70:Iterator[AClassdef]> */
4834 RET_LABEL75
:(void)0;
4838 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
4839 var78
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
4840 if (unlikely(var78
== NULL
)) {
4841 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4842 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
4846 RET_LABEL77
:(void)0;
4850 { /* Inline toolcontext#ToolContext#error_count (var76) on <var76:ToolContext> */
4851 var81
= var76
->attrs
[COLOR_toolcontext__ToolContext___error_count
].l
; /* _error_count on <var76:ToolContext> */
4853 RET_LABEL80
:(void)0;
4857 { /* Inline kernel#Int#!= (var_errcount,var79) on <var_errcount:Int> */
4858 var85
= var_errcount
== var79
;
4862 RET_LABEL84
:(void)0;
4871 { /* Inline parser_nodes#AModule#n_classdefs (var_nmodule) on <var_nmodule:AModule> */
4872 var89
= var_nmodule
->attrs
[COLOR_parser_nodes__AModule___n_classdefs
].val
; /* _n_classdefs on <var_nmodule:AModule> */
4873 if (unlikely(var89
== NULL
)) {
4874 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_classdefs");
4875 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 859);
4879 RET_LABEL88
:(void)0;
4884 var91
= parser_nodes__ANodes__iterator(var_90
);
4889 var93
= ((short int (*)(val
*))(var_92
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_92
) /* is_ok on <var_92:Iterator[AClassdef]>*/;
4893 var94
= ((val
* (*)(val
*))(var_92
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_92
) /* item on <var_92:Iterator[AClassdef]>*/;
4895 var_nclassdef95
= var94
;
4897 modelize_class__ModelBuilder__collect_a_mclassdef_inheritance(self
, var_nmodule
, var_nclassdef95
); /* Direct call modelize_class#ModelBuilder#collect_a_mclassdef_inheritance on <self:ModelBuilder>*/
4900 ((void (*)(val
*))(var_92
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_92
) /* next on <var_92:Iterator[AClassdef]>*/;
4906 BREAK_label96
: (void)0;
4908 { /* Inline abstract_collection#Iterator#finish (var_92) on <var_92:Iterator[AClassdef]> */
4909 RET_LABEL97
:(void)0;
4913 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
4914 var100
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
4915 if (unlikely(var100
== NULL
)) {
4916 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4917 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
4921 RET_LABEL99
:(void)0;
4925 { /* Inline toolcontext#ToolContext#error_count (var98) on <var98:ToolContext> */
4926 var103
= var98
->attrs
[COLOR_toolcontext__ToolContext___error_count
].l
; /* _error_count on <var98:ToolContext> */
4928 RET_LABEL102
:(void)0;
4932 { /* Inline kernel#Int#!= (var_errcount,var101) on <var_errcount:Int> */
4933 var107
= var_errcount
== var101
;
4937 RET_LABEL106
:(void)0;
4946 { /* Inline model#MModule#mclassdefs (var_mmodule) on <var_mmodule:MModule> */
4947 var111
= var_mmodule
->attrs
[COLOR_model__MModule___mclassdefs
].val
; /* _mclassdefs on <var_mmodule:MModule> */
4948 if (unlikely(var111
== NULL
)) {
4949 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
4950 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 139);
4954 RET_LABEL110
:(void)0;
4959 var113
= array__AbstractArrayRead__iterator(var_112
);
4964 var115
= array__ArrayIterator__is_ok(var_114
);
4968 var116
= array__ArrayIterator__item(var_114
);
4970 var_mclassdef
= var116
;
4972 model__MClassDef__add_in_hierarchy(var_mclassdef
); /* Direct call model#MClassDef#add_in_hierarchy on <var_mclassdef:MClassDef>*/
4975 array__ArrayIterator__next(var_114
); /* Direct call array#ArrayIterator#next on <var_114:ArrayIterator[MClassDef]>*/
4978 goto BREAK_label117
;
4981 BREAK_label117
: (void)0;
4983 { /* Inline abstract_collection#Iterator#finish (var_114) on <var_114:ArrayIterator[MClassDef]> */
4984 RET_LABEL118
:(void)0;
4988 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
4989 var121
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
4990 if (unlikely(var121
== NULL
)) {
4991 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4992 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
4996 RET_LABEL120
:(void)0;
5000 { /* Inline toolcontext#ToolContext#error_count (var119) on <var119:ToolContext> */
5001 var124
= var119
->attrs
[COLOR_toolcontext__ToolContext___error_count
].l
; /* _error_count on <var119:ToolContext> */
5003 RET_LABEL123
:(void)0;
5007 { /* Inline kernel#Int#!= (var_errcount,var122) on <var_errcount:Int> */
5008 var128
= var_errcount
== var122
;
5012 RET_LABEL127
:(void)0;
5021 { /* Inline parser_nodes#AModule#n_classdefs (var_nmodule) on <var_nmodule:AModule> */
5022 var132
= var_nmodule
->attrs
[COLOR_parser_nodes__AModule___n_classdefs
].val
; /* _n_classdefs on <var_nmodule:AModule> */
5023 if (unlikely(var132
== NULL
)) {
5024 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_classdefs");
5025 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 859);
5029 RET_LABEL131
:(void)0;
5034 var134
= parser_nodes__ANodes__iterator(var_133
);
5039 var136
= ((short int (*)(val
*))(var_135
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_135
) /* is_ok on <var_135:Iterator[AClassdef]>*/;
5043 var137
= ((val
* (*)(val
*))(var_135
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_135
) /* item on <var_135:Iterator[AClassdef]>*/;
5045 var_nclassdef138
= var137
;
5047 modelize_class__ModelBuilder__check_supertypes(self
, var_nmodule
, var_nclassdef138
); /* Direct call modelize_class#ModelBuilder#check_supertypes on <self:ModelBuilder>*/
5050 ((void (*)(val
*))(var_135
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_135
) /* next on <var_135:Iterator[AClassdef]>*/;
5053 goto BREAK_label139
;
5056 BREAK_label139
: (void)0;
5058 { /* Inline abstract_collection#Iterator#finish (var_135) on <var_135:Iterator[AClassdef]> */
5059 RET_LABEL140
:(void)0;
5063 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
5064 var143
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
5065 if (unlikely(var143
== NULL
)) {
5066 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
5067 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
5071 RET_LABEL142
:(void)0;
5075 { /* Inline toolcontext#ToolContext#error_count (var141) on <var141:ToolContext> */
5076 var146
= var141
->attrs
[COLOR_toolcontext__ToolContext___error_count
].l
; /* _error_count on <var141:ToolContext> */
5078 RET_LABEL145
:(void)0;
5082 { /* Inline kernel#Int#!= (var_errcount,var144) on <var_errcount:Int> */
5083 var150
= var_errcount
== var144
;
5087 RET_LABEL149
:(void)0;
5096 { /* Inline parser_nodes#AModule#n_classdefs (var_nmodule) on <var_nmodule:AModule> */
5097 var154
= var_nmodule
->attrs
[COLOR_parser_nodes__AModule___n_classdefs
].val
; /* _n_classdefs on <var_nmodule:AModule> */
5098 if (unlikely(var154
== NULL
)) {
5099 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_classdefs");
5100 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 859);
5104 RET_LABEL153
:(void)0;
5109 var156
= parser_nodes__ANodes__iterator(var_155
);
5114 var158
= ((short int (*)(val
*))(var_157
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_157
) /* is_ok on <var_157:Iterator[AClassdef]>*/;
5118 var159
= ((val
* (*)(val
*))(var_157
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_157
) /* item on <var_157:Iterator[AClassdef]>*/;
5120 var_nclassdef160
= var159
;
5121 /* <var_nclassdef160:AClassdef> isa AStdClassdef */
5122 cltype
= type_parser_nodes__AStdClassdef
.color
;
5123 idtype
= type_parser_nodes__AStdClassdef
.id
;
5124 if(cltype
>= var_nclassdef160
->type
->table_size
) {
5127 var161
= var_nclassdef160
->type
->type_table
[cltype
] == idtype
;
5131 { /* Inline modelize_class#AClassdef#mclassdef (var_nclassdef160) on <var_nclassdef160:AClassdef(AStdClassdef)> */
5132 var164
= var_nclassdef160
->attrs
[COLOR_modelize_class__AClassdef___mclassdef
].val
; /* _mclassdef on <var_nclassdef160:AClassdef(AStdClassdef)> */
5134 RET_LABEL163
:(void)0;
5137 var_mclassdef165
= var162
;
5139 { /* Inline parser_nodes#AStdClassdef#n_formaldefs (var_nclassdef160) on <var_nclassdef160:AClassdef(AStdClassdef)> */
5140 var168
= var_nclassdef160
->attrs
[COLOR_parser_nodes__AStdClassdef___n_formaldefs
].val
; /* _n_formaldefs on <var_nclassdef160:AClassdef(AStdClassdef)> */
5141 if (unlikely(var168
== NULL
)) {
5142 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_formaldefs");
5143 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 940);
5147 RET_LABEL167
:(void)0;
5152 var170
= parser_nodes__ANodes__iterator(var_169
);
5157 var172
= ((short int (*)(val
*))(var_171
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_171
) /* is_ok on <var_171:Iterator[AFormaldef]>*/;
5161 var173
= ((val
* (*)(val
*))(var_171
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_171
) /* item on <var_171:Iterator[AFormaldef]>*/;
5165 { /* Inline parser_nodes#AFormaldef#n_type (var_nfd) on <var_nfd:AFormaldef> */
5166 var176
= var_nfd
->attrs
[COLOR_parser_nodes__AFormaldef___n_type
].val
; /* _n_type on <var_nfd:AFormaldef> */
5168 RET_LABEL175
:(void)0;
5173 if (var_nfdt
== NULL
) {
5174 var179
= 0; /* is null */
5176 var179
= 1; /* arg is null and recv is not */
5179 { /* Inline kernel#Object#!= (var_nfdt,var178) on <var_nfdt:nullable AType> */
5182 var183
= ((short int (*)(val
*, val
*))(var_nfdt
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_nfdt
, var_other
) /* == on <var_nfdt:nullable AType(AType)>*/;
5188 RET_LABEL181
:(void)0;
5195 { /* Inline modelize_class#AType#mtype (var_nfdt) on <var_nfdt:nullable AType(AType)> */
5196 var188
= var_nfdt
->attrs
[COLOR_modelize_class__AType___mtype
].val
; /* _mtype on <var_nfdt:nullable AType(AType)> */
5198 RET_LABEL187
:(void)0;
5202 if (var186
== NULL
) {
5203 var190
= 0; /* is null */
5205 var190
= 1; /* arg is null and recv is not */
5208 { /* Inline kernel#Object#!= (var186,var189) on <var186:nullable MType> */
5211 var194
= ((short int (*)(val
*, val
*))(var186
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var186
, var_other
) /* == on <var186:nullable MType(MType)>*/;
5217 RET_LABEL192
:(void)0;
5227 var196
= modelize_class__ModelBuilder__resolve_mtype(self
, var_mmodule
, var_mclassdef165
, var_nfdt
);
5231 if (var_bound
== NULL
) {
5232 var198
= 1; /* is null */
5234 var198
= 0; /* arg is null but recv is not */
5237 { /* Inline kernel#Object#== (var_bound,var197) on <var_bound:nullable MType> */
5238 var_other201
= var197
;
5240 { /* Inline kernel#Object#is_same_instance (var_bound,var_other201) on <var_bound:nullable MType(MType)> */
5241 var204
= var_bound
== var_other201
;
5244 RET_LABEL203
:(void)0;
5249 RET_LABEL200
:(void)0;
5260 ((void (*)(val
*))(var_171
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_171
) /* next on <var_171:Iterator[AFormaldef]>*/;
5263 goto BREAK_label205
;
5266 BREAK_label205
: (void)0;
5268 { /* Inline abstract_collection#Iterator#finish (var_171) on <var_171:Iterator[AFormaldef]> */
5269 RET_LABEL206
:(void)0;
5273 { /* Inline parser_nodes#AStdClassdef#n_superclasses (var_nclassdef160) on <var_nclassdef160:AClassdef(AStdClassdef)> */
5274 var209
= var_nclassdef160
->attrs
[COLOR_parser_nodes__AStdClassdef___n_superclasses
].val
; /* _n_superclasses on <var_nclassdef160:AClassdef(AStdClassdef)> */
5275 if (unlikely(var209
== NULL
)) {
5276 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_superclasses");
5277 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 942);
5281 RET_LABEL208
:(void)0;
5286 var211
= parser_nodes__ANodes__iterator(var_210
);
5291 var213
= ((short int (*)(val
*))(var_212
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_212
) /* is_ok on <var_212:Iterator[ASuperclass]>*/;
5295 var214
= ((val
* (*)(val
*))(var_212
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_212
) /* item on <var_212:Iterator[ASuperclass]>*/;
5299 { /* Inline parser_nodes#ASuperclass#n_type (var_nsc) on <var_nsc:ASuperclass> */
5300 var217
= var_nsc
->attrs
[COLOR_parser_nodes__ASuperclass___n_type
].val
; /* _n_type on <var_nsc:ASuperclass> */
5301 if (unlikely(var217
== NULL
)) {
5302 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
5303 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1006);
5307 RET_LABEL216
:(void)0;
5312 { /* Inline modelize_class#AType#mtype (var_ntype) on <var_ntype:AType> */
5313 var220
= var_ntype
->attrs
[COLOR_modelize_class__AType___mtype
].val
; /* _mtype on <var_ntype:AType> */
5315 RET_LABEL219
:(void)0;
5319 if (var218
== NULL
) {
5320 var222
= 0; /* is null */
5322 var222
= 1; /* arg is null and recv is not */
5325 { /* Inline kernel#Object#!= (var218,var221) on <var218:nullable MType> */
5328 var226
= ((short int (*)(val
*, val
*))(var218
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var218
, var_other
) /* == on <var218:nullable MType(MType)>*/;
5334 RET_LABEL224
:(void)0;
5340 var228
= modelize_class__ModelBuilder__resolve_mtype(self
, var_mmodule
, var_mclassdef165
, var_ntype
);
5344 if (var_mtype
== NULL
) {
5345 var230
= 1; /* is null */
5347 var230
= 0; /* arg is null but recv is not */
5350 { /* Inline kernel#Object#== (var_mtype,var229) on <var_mtype:nullable MType> */
5351 var_other201
= var229
;
5353 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other201) on <var_mtype:nullable MType(MType)> */
5354 var235
= var_mtype
== var_other201
;
5357 RET_LABEL234
:(void)0;
5362 RET_LABEL232
:(void)0;
5373 ((void (*)(val
*))(var_212
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_212
) /* next on <var_212:Iterator[ASuperclass]>*/;
5376 goto BREAK_label236
;
5379 BREAK_label236
: (void)0;
5381 { /* Inline abstract_collection#Iterator#finish (var_212) on <var_212:Iterator[ASuperclass]> */
5382 RET_LABEL237
:(void)0;
5388 ((void (*)(val
*))(var_157
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_157
) /* next on <var_157:Iterator[AClassdef]>*/;
5391 goto BREAK_label238
;
5394 BREAK_label238
: (void)0;
5396 { /* Inline abstract_collection#Iterator#finish (var_157) on <var_157:Iterator[AClassdef]> */
5397 RET_LABEL239
:(void)0;
5401 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
5402 var242
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
5403 if (unlikely(var242
== NULL
)) {
5404 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
5405 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
5409 RET_LABEL241
:(void)0;
5413 { /* Inline toolcontext#ToolContext#error_count (var240) on <var240:ToolContext> */
5414 var245
= var240
->attrs
[COLOR_toolcontext__ToolContext___error_count
].l
; /* _error_count on <var240:ToolContext> */
5416 RET_LABEL244
:(void)0;
5420 { /* Inline kernel#Int#!= (var_errcount,var243) on <var_errcount:Int> */
5421 var249
= var_errcount
== var243
;
5425 RET_LABEL248
:(void)0;
5434 { /* Inline parser_nodes#AModule#n_classdefs (var_nmodule) on <var_nmodule:AModule> */
5435 var253
= var_nmodule
->attrs
[COLOR_parser_nodes__AModule___n_classdefs
].val
; /* _n_classdefs on <var_nmodule:AModule> */
5436 if (unlikely(var253
== NULL
)) {
5437 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_classdefs");
5438 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 859);
5442 RET_LABEL252
:(void)0;
5447 var255
= parser_nodes__ANodes__iterator(var_254
);
5452 var257
= ((short int (*)(val
*))(var_256
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_256
) /* is_ok on <var_256:Iterator[AClassdef]>*/;
5456 var258
= ((val
* (*)(val
*))(var_256
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_256
) /* item on <var_256:Iterator[AClassdef]>*/;
5458 var_nclassdef259
= var258
;
5460 { /* Inline modelize_class#AClassdef#mclassdef (var_nclassdef259) on <var_nclassdef259:AClassdef> */
5461 var262
= var_nclassdef259
->attrs
[COLOR_modelize_class__AClassdef___mclassdef
].val
; /* _mclassdef on <var_nclassdef259:AClassdef> */
5463 RET_LABEL261
:(void)0;
5466 if (unlikely(var260
== NULL
)) {
5467 PRINT_ERROR("Runtime error: %s", "Cast failed");
5468 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 350);
5471 var_mclassdef263
= var260
;
5472 var264
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassmodel__MClassType
);
5474 ((void (*)(val
*))(var264
->class->vft
[COLOR_kernel__Object__init
]))(var264
) /* init on <var264:HashMap[MClass, MClassType]>*/;
5476 var_superclasses
= var264
;
5478 { /* Inline model#MClassDef#in_hierarchy (var_mclassdef263) on <var_mclassdef263:MClassDef> */
5479 var267
= var_mclassdef263
->attrs
[COLOR_model__MClassDef___in_hierarchy
].val
; /* _in_hierarchy on <var_mclassdef263:MClassDef> */
5481 RET_LABEL266
:(void)0;
5484 if (var265
== NULL
) {
5485 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5486 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 352);
5489 var268
= poset__POSetElement__greaters(var265
);
5493 var270
= ((val
* (*)(val
*))(var_269
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_269
) /* iterator on <var_269:Collection[MClassDef]>*/;
5498 var272
= ((short int (*)(val
*))(var_271
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_271
) /* is_ok on <var_271:Iterator[MClassDef]>*/;
5502 var273
= ((val
* (*)(val
*))(var_271
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_271
) /* item on <var_271:Iterator[MClassDef]>*/;
5506 { /* Inline model#MClassDef#supertypes (var_scd) on <var_scd:MClassDef> */
5507 var276
= var_scd
->attrs
[COLOR_model__MClassDef___supertypes
].val
; /* _supertypes on <var_scd:MClassDef> */
5508 if (unlikely(var276
== NULL
)) {
5509 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes");
5510 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 534);
5514 RET_LABEL275
:(void)0;
5519 var278
= array__AbstractArrayRead__iterator(var_277
);
5524 var280
= array__ArrayIterator__is_ok(var_279
);
5528 var281
= array__ArrayIterator__item(var_279
);
5532 { /* Inline model#MClassType#mclass (var_st) on <var_st:MClassType> */
5533 var284
= var_st
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_st:MClassType> */
5534 if (unlikely(var284
== NULL
)) {
5535 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5536 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
5540 RET_LABEL283
:(void)0;
5544 var285
= abstract_collection__MapRead__has_key(var_superclasses
, var282
);
5549 { /* Inline model#MClassType#mclass (var_st) on <var_st:MClassType> */
5550 var289
= var_st
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_st:MClassType> */
5551 if (unlikely(var289
== NULL
)) {
5552 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5553 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
5557 RET_LABEL288
:(void)0;
5561 hash_collection__HashMap___91d_93d_61d(var_superclasses
, var287
, var_st
); /* Direct call hash_collection#HashMap#[]= on <var_superclasses:HashMap[MClass, MClassType]>*/
5565 { /* Inline model#MClassType#mclass (var_st) on <var_st:MClassType> */
5566 var292
= var_st
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_st:MClassType> */
5567 if (unlikely(var292
== NULL
)) {
5568 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5569 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
5573 RET_LABEL291
:(void)0;
5577 var293
= hash_collection__HashMap___91d_93d(var_superclasses
, var290
);
5580 { /* Inline kernel#Object#!= (var293,var_st) on <var293:nullable Object(MClassType)> */
5583 var298
= ((short int (*)(val
*, val
*))(var293
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var293
, var_other
) /* == on <var293:nullable Object(MClassType)>*/;
5589 RET_LABEL296
:(void)0;
5595 { /* Inline model#MClassType#mclass (var_st) on <var_st:MClassType> */
5596 var302
= var_st
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_st:MClassType> */
5597 if (unlikely(var302
== NULL
)) {
5598 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5599 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
5603 RET_LABEL301
:(void)0;
5607 var303
= hash_collection__HashMap___91d_93d(var_superclasses
, var300
);
5610 { /* Inline model#MClassDef#mclass (var_mclassdef263) on <var_mclassdef263:MClassDef> */
5611 var306
= var_mclassdef263
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var_mclassdef263:MClassDef> */
5612 if (unlikely(var306
== NULL
)) {
5613 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5614 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
5618 RET_LABEL305
:(void)0;
5622 { /* Inline model#MClass#mclass_type (var304) on <var304:MClass> */
5623 var309
= var304
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var304:MClass> */
5624 if (unlikely(var309
== NULL
)) {
5625 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
5626 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
5630 RET_LABEL308
:(void)0;
5634 { /* Inline model#MClassDef#bound_mtype (var_mclassdef263) on <var_mclassdef263:MClassDef> */
5635 var312
= var_mclassdef263
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var_mclassdef263:MClassDef> */
5636 if (unlikely(var312
== NULL
)) {
5637 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
5638 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
5642 RET_LABEL311
:(void)0;
5647 var314
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var303
->class->vft
[COLOR_model__MType__resolve_for
]))(var303
, var307
, var310
, var_mmodule
, var313
) /* resolve_for on <var303:nullable Object(MClassType)>*/;
5651 { /* Inline model#MClassDef#mclass (var_mclassdef263) on <var_mclassdef263:MClassDef> */
5652 var317
= var_mclassdef263
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var_mclassdef263:MClassDef> */
5653 if (unlikely(var317
== NULL
)) {
5654 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5655 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
5659 RET_LABEL316
:(void)0;
5663 { /* Inline model#MClass#mclass_type (var315) on <var315:MClass> */
5664 var320
= var315
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var315:MClass> */
5665 if (unlikely(var320
== NULL
)) {
5666 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
5667 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
5671 RET_LABEL319
:(void)0;
5675 { /* Inline model#MClassDef#bound_mtype (var_mclassdef263) on <var_mclassdef263:MClassDef> */
5676 var323
= var_mclassdef263
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var_mclassdef263:MClassDef> */
5677 if (unlikely(var323
== NULL
)) {
5678 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
5679 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
5683 RET_LABEL322
:(void)0;
5688 var325
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_st
->class->vft
[COLOR_model__MType__resolve_for
]))(var_st
, var318
, var321
, var_mmodule
, var324
) /* resolve_for on <var_st:MClassType>*/;
5692 { /* Inline kernel#Object#!= (var_st1,var_st2) on <var_st1:MClassType> */
5693 var_other
= var_st2
;
5695 var330
= ((short int (*)(val
*, val
*))(var_st1
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_st1
, var_other
) /* == on <var_st1:MClassType>*/;
5701 RET_LABEL328
:(void)0;
5709 var333
= "Error: Incompatibles ancestors for ";
5711 var335
= string__NativeString__to_s_with_length(var333
, var334
);
5716 { /* Inline model#MClassDef#mclass (var_mclassdef263) on <var_mclassdef263:MClassDef> */
5717 var338
= var_mclassdef263
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var_mclassdef263:MClassDef> */
5718 if (unlikely(var338
== NULL
)) {
5719 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5720 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
5724 RET_LABEL337
:(void)0;
5728 var340
= varonce339
;
5732 var343
= string__NativeString__to_s_with_length(var341
, var342
);
5734 varonce339
= var340
;
5737 var345
= varonce344
;
5741 var348
= string__NativeString__to_s_with_length(var346
, var347
);
5743 varonce344
= var345
;
5745 var349
= NEW_array__Array(&type_array__Arraykernel__Object
);
5746 { /* var349 = array_instance Array[Object] */
5748 var351
= NEW_array__NativeArray(var350
, &type_array__NativeArraykernel__Object
);
5749 ((struct instance_array__NativeArray
*)var351
)->values
[0] = (val
*) var332
;
5750 ((struct instance_array__NativeArray
*)var351
)->values
[1] = (val
*) var336
;
5751 ((struct instance_array__NativeArray
*)var351
)->values
[2] = (val
*) var340
;
5752 ((struct instance_array__NativeArray
*)var351
)->values
[3] = (val
*) var_st1
;
5753 ((struct instance_array__NativeArray
*)var351
)->values
[4] = (val
*) var345
;
5754 ((struct instance_array__NativeArray
*)var351
)->values
[5] = (val
*) var_st2
;
5756 ((void (*)(val
*, val
*, long))(var349
->class->vft
[COLOR_array__Array__with_native
]))(var349
, var351
, var350
) /* with_native on <var349:Array[Object]>*/;
5760 var352
= ((val
* (*)(val
*))(var349
->class->vft
[COLOR_string__Object__to_s
]))(var349
) /* to_s on <var349:Array[Object]>*/;
5763 modelbuilder__ModelBuilder__error(self
, var_nclassdef259
, var352
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
5771 array__ArrayIterator__next(var_279
); /* Direct call array#ArrayIterator#next on <var_279:ArrayIterator[MClassType]>*/
5774 goto BREAK_label353
;
5777 BREAK_label353
: (void)0;
5779 { /* Inline abstract_collection#Iterator#finish (var_279) on <var_279:ArrayIterator[MClassType]> */
5780 RET_LABEL354
:(void)0;
5784 ((void (*)(val
*))(var_271
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_271
) /* next on <var_271:Iterator[MClassDef]>*/;
5787 goto BREAK_label355
;
5790 BREAK_label355
: (void)0;
5792 { /* Inline abstract_collection#Iterator#finish (var_271) on <var_271:Iterator[MClassDef]> */
5793 RET_LABEL356
:(void)0;
5797 ((void (*)(val
*))(var_256
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_256
) /* next on <var_256:Iterator[AClassdef]>*/;
5800 goto BREAK_label357
;
5803 BREAK_label357
: (void)0;
5805 { /* Inline abstract_collection#Iterator#finish (var_256) on <var_256:Iterator[AClassdef]> */
5806 RET_LABEL358
:(void)0;
5810 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
5811 var361
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
5812 if (unlikely(var361
== NULL
)) {
5813 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
5814 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
5818 RET_LABEL360
:(void)0;
5822 { /* Inline toolcontext#ToolContext#error_count (var359) on <var359:ToolContext> */
5823 var364
= var359
->attrs
[COLOR_toolcontext__ToolContext___error_count
].l
; /* _error_count on <var359:ToolContext> */
5825 RET_LABEL363
:(void)0;
5829 { /* Inline kernel#Int#!= (var_errcount,var362) on <var_errcount:Int> */
5830 var368
= var_errcount
== var362
;
5834 RET_LABEL367
:(void)0;
5843 { /* Inline parser_nodes#AModule#n_classdefs (var_nmodule) on <var_nmodule:AModule> */
5844 var372
= var_nmodule
->attrs
[COLOR_parser_nodes__AModule___n_classdefs
].val
; /* _n_classdefs on <var_nmodule:AModule> */
5845 if (unlikely(var372
== NULL
)) {
5846 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_classdefs");
5847 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 859);
5851 RET_LABEL371
:(void)0;
5856 var374
= parser_nodes__ANodes__iterator(var_373
);
5861 var376
= ((short int (*)(val
*))(var_375
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_375
) /* is_ok on <var_375:Iterator[AClassdef]>*/;
5865 var377
= ((val
* (*)(val
*))(var_375
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_375
) /* item on <var_375:Iterator[AClassdef]>*/;
5867 var_nclassdef378
= var377
;
5868 /* <var_nclassdef378:AClassdef> isa AStdClassdef */
5869 cltype380
= type_parser_nodes__AStdClassdef
.color
;
5870 idtype381
= type_parser_nodes__AStdClassdef
.id
;
5871 if(cltype380
>= var_nclassdef378
->type
->table_size
) {
5874 var379
= var_nclassdef378
->type
->type_table
[cltype380
] == idtype381
;
5878 goto BREAK_label383
;
5882 { /* Inline modelize_class#AClassdef#mclassdef (var_nclassdef378) on <var_nclassdef378:AClassdef(AStdClassdef)> */
5883 var386
= var_nclassdef378
->attrs
[COLOR_modelize_class__AClassdef___mclassdef
].val
; /* _mclassdef on <var_nclassdef378:AClassdef(AStdClassdef)> */
5885 RET_LABEL385
:(void)0;
5888 if (unlikely(var384
== NULL
)) {
5889 PRINT_ERROR("Runtime error: %s", "Cast failed");
5890 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 374);
5893 var_mclassdef387
= var384
;
5894 var388
= NEW_array__Array(&type_array__Arraymodel__MClass
);
5896 ((void (*)(val
*))(var388
->class->vft
[COLOR_kernel__Object__init
]))(var388
) /* init on <var388:Array[MClass]>*/;
5898 var_parents
= var388
;
5900 { /* Inline model#MClassDef#in_hierarchy (var_mclassdef387) on <var_mclassdef387:MClassDef> */
5901 var391
= var_mclassdef387
->attrs
[COLOR_model__MClassDef___in_hierarchy
].val
; /* _in_hierarchy on <var_mclassdef387:MClassDef> */
5903 RET_LABEL390
:(void)0;
5906 if (var389
== NULL
) {
5907 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5908 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 379);
5911 var392
= poset__POSetElement__direct_greaters(var389
);
5915 var394
= ((val
* (*)(val
*))(var_393
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_393
) /* iterator on <var_393:Collection[MClassDef]>*/;
5920 var396
= ((short int (*)(val
*))(var_395
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_395
) /* is_ok on <var_395:Iterator[MClassDef]>*/;
5924 var397
= ((val
* (*)(val
*))(var_395
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_395
) /* item on <var_395:Iterator[MClassDef]>*/;
5928 { /* Inline model#MClassDef#mclass (var_sup) on <var_sup:MClassDef> */
5929 var400
= var_sup
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var_sup:MClassDef> */
5930 if (unlikely(var400
== NULL
)) {
5931 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5932 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
5936 RET_LABEL399
:(void)0;
5940 array__Array__add(var_parents
, var398
); /* Direct call array#Array#add on <var_parents:Array[MClass]>*/
5943 ((void (*)(val
*))(var_395
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_395
) /* next on <var_395:Iterator[MClassDef]>*/;
5946 goto BREAK_label401
;
5949 BREAK_label401
: (void)0;
5951 { /* Inline abstract_collection#Iterator#finish (var_395) on <var_395:Iterator[MClassDef]> */
5952 RET_LABEL402
:(void)0;
5955 var403
= NEW_array__ArrayMap(&type_array__ArrayMapmodel__MClassparser_nodes__AType
);
5957 ((void (*)(val
*))(var403
->class->vft
[COLOR_kernel__Object__init
]))(var403
) /* init on <var403:ArrayMap[MClass, AType]>*/;
5959 var_seen_parents
= var403
;
5961 var405
= varonce404
;
5965 var408
= string__NativeString__to_s_with_length(var406
, var407
);
5967 varonce404
= var405
;
5970 var409
= modelbuilder__ModelBuilder__try_get_mclass_by_name(self
, var_nmodule
, var_mmodule
, var405
);
5972 var_objectclass
= var409
;
5974 { /* Inline parser_nodes#AStdClassdef#n_superclasses (var_nclassdef378) on <var_nclassdef378:AClassdef(AStdClassdef)> */
5975 var412
= var_nclassdef378
->attrs
[COLOR_parser_nodes__AStdClassdef___n_superclasses
].val
; /* _n_superclasses on <var_nclassdef378:AClassdef(AStdClassdef)> */
5976 if (unlikely(var412
== NULL
)) {
5977 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_superclasses");
5978 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 942);
5982 RET_LABEL411
:(void)0;
5987 var414
= parser_nodes__ANodes__iterator(var_413
);
5992 var416
= ((short int (*)(val
*))(var_415
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_415
) /* is_ok on <var_415:Iterator[ASuperclass]>*/;
5996 var417
= ((val
* (*)(val
*))(var_415
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_415
) /* item on <var_415:Iterator[ASuperclass]>*/;
5998 var_nsc418
= var417
;
6000 { /* Inline parser_nodes#ASuperclass#n_type (var_nsc418) on <var_nsc418:ASuperclass> */
6001 var421
= var_nsc418
->attrs
[COLOR_parser_nodes__ASuperclass___n_type
].val
; /* _n_type on <var_nsc418:ASuperclass> */
6002 if (unlikely(var421
== NULL
)) {
6003 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
6004 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1006);
6008 RET_LABEL420
:(void)0;
6011 var_ntype422
= var419
;
6013 { /* Inline modelize_class#AType#mtype (var_ntype422) on <var_ntype422:AType> */
6014 var425
= var_ntype422
->attrs
[COLOR_modelize_class__AType___mtype
].val
; /* _mtype on <var_ntype422:AType> */
6016 RET_LABEL424
:(void)0;
6019 var_mtype426
= var423
;
6021 if (var_mtype426
== NULL
) {
6022 var428
= 1; /* is null */
6024 var428
= 0; /* arg is null but recv is not */
6027 { /* Inline kernel#Object#== (var_mtype426,var427) on <var_mtype426:nullable MType> */
6028 var_other201
= var427
;
6030 { /* Inline kernel#Object#is_same_instance (var_mtype426,var_other201) on <var_mtype426:nullable MType(MType)> */
6031 var433
= var_mtype426
== var_other201
;
6034 RET_LABEL432
:(void)0;
6039 RET_LABEL430
:(void)0;
6044 goto BREAK_label434
;
6047 /* <var_mtype426:nullable MType(MType)> isa MClassType */
6048 cltype436
= type_model__MClassType
.color
;
6049 idtype437
= type_model__MClassType
.id
;
6050 if(cltype436
>= var_mtype426
->type
->table_size
) {
6053 var435
= var_mtype426
->type
->type_table
[cltype436
] == idtype437
;
6055 if (unlikely(!var435
)) {
6056 PRINT_ERROR("Runtime error: %s", "Assert failed");
6057 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 394);
6061 { /* Inline model#MClassType#mclass (var_mtype426) on <var_mtype426:nullable MType(MClassType)> */
6062 var440
= var_mtype426
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype426:nullable MType(MClassType)> */
6063 if (unlikely(var440
== NULL
)) {
6064 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6065 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
6069 RET_LABEL439
:(void)0;
6074 var442
= array__AbstractArrayRead__has(var_parents
, var_sc
);
6082 { /* Inline kernel#Object#== (var_sc,var_objectclass) on <var_sc:MClass> */
6083 var_other201
= var_objectclass
;
6085 { /* Inline kernel#Object#is_same_instance (var_sc,var_other201) on <var_sc:MClass> */
6086 var450
= var_sc
== var_other201
;
6089 RET_LABEL449
:(void)0;
6094 RET_LABEL447
:(void)0;
6102 { /* Inline parser_nodes#ANode#location (var_ntype422) on <var_ntype422:AType> */
6103 var454
= var_ntype422
->attrs
[COLOR_parser_nodes__ANode___location
].val
; /* _location on <var_ntype422:AType> */
6104 if (unlikely(var454
== NULL
)) {
6105 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
6106 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 23);
6110 RET_LABEL453
:(void)0;
6114 { /* Inline location#Location#file (var452) on <var452:Location> */
6115 var457
= var452
->attrs
[COLOR_location__Location___file
].val
; /* _file on <var452:Location> */
6117 RET_LABEL456
:(void)0;
6121 if (var455
== NULL
) {
6122 var459
= 0; /* is null */
6124 var459
= 1; /* arg is null and recv is not */
6127 { /* Inline kernel#Object#!= (var455,var458) on <var455:nullable SourceFile> */
6130 var463
= ((short int (*)(val
*, val
*))(var455
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var455
, var_other
) /* == on <var455:nullable SourceFile(SourceFile)>*/;
6136 RET_LABEL461
:(void)0;
6143 { /* Inline parser_nodes#ANode#location (var_ntype422) on <var_ntype422:AType> */
6144 var468
= var_ntype422
->attrs
[COLOR_parser_nodes__ANode___location
].val
; /* _location on <var_ntype422:AType> */
6145 if (unlikely(var468
== NULL
)) {
6146 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
6147 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 23);
6151 RET_LABEL467
:(void)0;
6155 { /* Inline location#Location#file (var466) on <var466:Location> */
6156 var471
= var466
->attrs
[COLOR_location__Location___file
].val
; /* _file on <var466:Location> */
6158 RET_LABEL470
:(void)0;
6161 if (var469
== NULL
) {
6162 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6163 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 398);
6166 { /* Inline location#SourceFile#filename (var469) on <var469:nullable SourceFile> */
6167 if (unlikely(var469
== NULL
)) {
6168 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6169 PRINT_ERROR(" (%s:%d)\n", "location.nit", 22);
6172 var474
= var469
->attrs
[COLOR_location__SourceFile___filename
].val
; /* _filename on <var469:nullable SourceFile> */
6173 if (unlikely(var474
== NULL
)) {
6174 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
6175 PRINT_ERROR(" (%s:%d)\n", "location.nit", 22);
6179 RET_LABEL473
:(void)0;
6183 var475
= string__Text__is_empty(var472
);
6192 var478
= varonce477
;
6194 var479
= "useless-superclass";
6196 var481
= string__NativeString__to_s_with_length(var479
, var480
);
6198 varonce477
= var478
;
6201 var483
= varonce482
;
6203 var484
= "Warning: superfluous super-class ";
6205 var486
= string__NativeString__to_s_with_length(var484
, var485
);
6207 varonce482
= var483
;
6210 var488
= varonce487
;
6212 var489
= " in class ";
6214 var491
= string__NativeString__to_s_with_length(var489
, var490
);
6216 varonce487
= var488
;
6219 { /* Inline model#MClassDef#mclass (var_mclassdef387) on <var_mclassdef387:MClassDef> */
6220 var494
= var_mclassdef387
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var_mclassdef387:MClassDef> */
6221 if (unlikely(var494
== NULL
)) {
6222 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6223 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
6227 RET_LABEL493
:(void)0;
6231 var496
= varonce495
;
6235 var499
= string__NativeString__to_s_with_length(var497
, var498
);
6237 varonce495
= var496
;
6239 var500
= NEW_array__Array(&type_array__Arraykernel__Object
);
6240 { /* var500 = array_instance Array[Object] */
6242 var502
= NEW_array__NativeArray(var501
, &type_array__NativeArraykernel__Object
);
6243 ((struct instance_array__NativeArray
*)var502
)->values
[0] = (val
*) var483
;
6244 ((struct instance_array__NativeArray
*)var502
)->values
[1] = (val
*) var_mtype426
;
6245 ((struct instance_array__NativeArray
*)var502
)->values
[2] = (val
*) var488
;
6246 ((struct instance_array__NativeArray
*)var502
)->values
[3] = (val
*) var492
;
6247 ((struct instance_array__NativeArray
*)var502
)->values
[4] = (val
*) var496
;
6249 ((void (*)(val
*, val
*, long))(var500
->class->vft
[COLOR_array__Array__with_native
]))(var500
, var502
, var501
) /* with_native on <var500:Array[Object]>*/;
6253 var503
= ((val
* (*)(val
*))(var500
->class->vft
[COLOR_string__Object__to_s
]))(var500
) /* to_s on <var500:Array[Object]>*/;
6256 modelbuilder__ModelBuilder__warning(self
, var_ntype422
, var478
, var503
); /* Direct call modelbuilder#ModelBuilder#warning on <self:ModelBuilder>*/
6262 var504
= abstract_collection__MapRead__has_key(var_seen_parents
, var_sc
);
6267 array__ArrayMap___91d_93d_61d(var_seen_parents
, var_sc
, var_ntype422
); /* Direct call array#ArrayMap#[]= on <var_seen_parents:ArrayMap[MClass, AType]>*/
6271 var507
= varonce506
;
6273 var508
= "useless-superclass";
6275 var510
= string__NativeString__to_s_with_length(var508
, var509
);
6277 varonce506
= var507
;
6280 var512
= varonce511
;
6282 var513
= "Warning: duplicated super-class ";
6284 var515
= string__NativeString__to_s_with_length(var513
, var514
);
6286 varonce511
= var512
;
6289 var517
= varonce516
;
6291 var518
= " in class ";
6293 var520
= string__NativeString__to_s_with_length(var518
, var519
);
6295 varonce516
= var517
;
6298 { /* Inline model#MClassDef#mclass (var_mclassdef387) on <var_mclassdef387:MClassDef> */
6299 var523
= var_mclassdef387
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var_mclassdef387:MClassDef> */
6300 if (unlikely(var523
== NULL
)) {
6301 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6302 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
6306 RET_LABEL522
:(void)0;
6310 var525
= varonce524
;
6314 var528
= string__NativeString__to_s_with_length(var526
, var527
);
6316 varonce524
= var525
;
6318 var529
= NEW_array__Array(&type_array__Arraykernel__Object
);
6319 { /* var529 = array_instance Array[Object] */
6321 var531
= NEW_array__NativeArray(var530
, &type_array__NativeArraykernel__Object
);
6322 ((struct instance_array__NativeArray
*)var531
)->values
[0] = (val
*) var512
;
6323 ((struct instance_array__NativeArray
*)var531
)->values
[1] = (val
*) var_mtype426
;
6324 ((struct instance_array__NativeArray
*)var531
)->values
[2] = (val
*) var517
;
6325 ((struct instance_array__NativeArray
*)var531
)->values
[3] = (val
*) var521
;
6326 ((struct instance_array__NativeArray
*)var531
)->values
[4] = (val
*) var525
;
6328 ((void (*)(val
*, val
*, long))(var529
->class->vft
[COLOR_array__Array__with_native
]))(var529
, var531
, var530
) /* with_native on <var529:Array[Object]>*/;
6332 var532
= ((val
* (*)(val
*))(var529
->class->vft
[COLOR_string__Object__to_s
]))(var529
) /* to_s on <var529:Array[Object]>*/;
6335 modelbuilder__ModelBuilder__warning(self
, var_ntype422
, var507
, var532
); /* Direct call modelbuilder#ModelBuilder#warning on <self:ModelBuilder>*/
6339 BREAK_label434
: (void)0;
6341 ((void (*)(val
*))(var_415
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_415
) /* next on <var_415:Iterator[ASuperclass]>*/;
6344 goto BREAK_label533
;
6347 BREAK_label533
: (void)0;
6349 { /* Inline abstract_collection#Iterator#finish (var_415) on <var_415:Iterator[ASuperclass]> */
6350 RET_LABEL534
:(void)0;
6353 BREAK_label383
: (void)0;
6355 ((void (*)(val
*))(var_375
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_375
) /* next on <var_375:Iterator[AClassdef]>*/;
6358 goto BREAK_label535
;
6361 BREAK_label535
: (void)0;
6363 { /* Inline abstract_collection#Iterator#finish (var_375) on <var_375:Iterator[AClassdef]> */
6364 RET_LABEL536
:(void)0;
6369 /* method modelize_class#ModelBuilder#build_classes for (self: Object, AModule) */
6370 void VIRTUAL_modelize_class__ModelBuilder__build_classes(val
* self
, val
* p0
) {
6371 modelize_class__ModelBuilder__build_classes(self
, p0
); /* Direct call modelize_class#ModelBuilder#build_classes on <self:Object(ModelBuilder)>*/
6374 /* method modelize_class#ModelBuilder#mclassdef2nclassdef for (self: ModelBuilder): HashMap[MClassDef, AClassdef] */
6375 val
* modelize_class__ModelBuilder__mclassdef2nclassdef(val
* self
) {
6376 val
* var
/* : HashMap[MClassDef, AClassdef] */;
6377 val
* var1
/* : HashMap[MClassDef, AClassdef] */;
6378 var1
= self
->attrs
[COLOR_modelize_class__ModelBuilder___mclassdef2nclassdef
].val
; /* _mclassdef2nclassdef on <self:ModelBuilder> */
6379 if (unlikely(var1
== NULL
)) {
6380 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef2nclassdef");
6381 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 410);
6388 /* method modelize_class#ModelBuilder#mclassdef2nclassdef for (self: Object): HashMap[MClassDef, AClassdef] */
6389 val
* VIRTUAL_modelize_class__ModelBuilder__mclassdef2nclassdef(val
* self
) {
6390 val
* var
/* : HashMap[MClassDef, AClassdef] */;
6391 val
* var1
/* : HashMap[MClassDef, AClassdef] */;
6392 val
* var3
/* : HashMap[MClassDef, AClassdef] */;
6393 { /* Inline modelize_class#ModelBuilder#mclassdef2nclassdef (self) on <self:Object(ModelBuilder)> */
6394 var3
= self
->attrs
[COLOR_modelize_class__ModelBuilder___mclassdef2nclassdef
].val
; /* _mclassdef2nclassdef on <self:Object(ModelBuilder)> */
6395 if (unlikely(var3
== NULL
)) {
6396 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef2nclassdef");
6397 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 410);
6407 /* method modelize_class#ModelBuilder#resolve_mtype_unchecked for (self: ModelBuilder, MModule, nullable MClassDef, AType, Bool): nullable MType */
6408 val
* modelize_class__ModelBuilder__resolve_mtype_unchecked(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
6409 val
* var
/* : nullable MType */;
6410 val
* var_mmodule
/* var mmodule: MModule */;
6411 val
* var_mclassdef
/* var mclassdef: nullable MClassDef */;
6412 val
* var_ntype
/* var ntype: AType */;
6413 short int var_with_virtual
/* var with_virtual: Bool */;
6414 val
* var1
/* : TClassid */;
6415 val
* var3
/* : TClassid */;
6416 val
* var4
/* : String */;
6417 val
* var_name
/* var name: String */;
6418 short int var5
/* : Bool */;
6419 val
* var6
/* : null */;
6420 short int var7
/* : Bool */;
6421 short int var8
/* : Bool */;
6422 val
* var_other
/* var other: nullable Object */;
6423 short int var10
/* : Bool */;
6424 short int var11
/* : Bool */;
6425 short int var12
/* : Bool */;
6426 short int var_
/* var : Bool */;
6427 val
* var13
/* : nullable MProperty */;
6428 short int var14
/* : Bool */;
6431 const char* var_class_name
;
6432 val
* var_prop
/* var prop: nullable MVirtualTypeProp */;
6433 val
* var15
/* : null */;
6434 short int var16
/* : Bool */;
6435 short int var17
/* : Bool */;
6436 short int var19
/* : Bool */;
6437 short int var20
/* : Bool */;
6438 short int var21
/* : Bool */;
6439 val
* var22
/* : ANodes[AType] */;
6440 val
* var24
/* : ANodes[AType] */;
6441 short int var25
/* : Bool */;
6442 short int var26
/* : Bool */;
6443 static val
* varonce
;
6444 val
* var27
/* : String */;
6445 char* var28
/* : NativeString */;
6446 long var29
/* : Int */;
6447 val
* var30
/* : FlatString */;
6448 static val
* varonce31
;
6449 val
* var32
/* : String */;
6450 char* var33
/* : NativeString */;
6451 long var34
/* : Int */;
6452 val
* var35
/* : FlatString */;
6453 val
* var36
/* : Array[Object] */;
6454 long var37
/* : Int */;
6455 val
* var38
/* : NativeArray[Object] */;
6456 val
* var39
/* : String */;
6457 val
* var40
/* : MVirtualType */;
6458 val
* var42
/* : MVirtualType */;
6459 val
* var_res
/* var res: MType */;
6460 val
* var43
/* : nullable TKwnullable */;
6461 val
* var45
/* : nullable TKwnullable */;
6462 val
* var46
/* : null */;
6463 short int var47
/* : Bool */;
6464 short int var48
/* : Bool */;
6465 short int var50
/* : Bool */;
6466 short int var51
/* : Bool */;
6467 short int var52
/* : Bool */;
6468 val
* var53
/* : MType */;
6469 val
* var55
/* : null */;
6470 short int var56
/* : Bool */;
6471 short int var57
/* : Bool */;
6472 short int var59
/* : Bool */;
6473 short int var60
/* : Bool */;
6474 short int var61
/* : Bool */;
6475 val
* var62
/* : MClass */;
6476 val
* var64
/* : MClass */;
6477 val
* var65
/* : Array[MParameterType] */;
6478 val
* var67
/* : Array[MParameterType] */;
6479 val
* var_68
/* var : Array[MParameterType] */;
6480 val
* var69
/* : ArrayIterator[nullable Object] */;
6481 val
* var_70
/* var : ArrayIterator[MParameterType] */;
6482 short int var71
/* : Bool */;
6483 val
* var72
/* : nullable Object */;
6484 val
* var_p
/* var p: MParameterType */;
6485 val
* var73
/* : String */;
6486 val
* var75
/* : String */;
6487 short int var76
/* : Bool */;
6488 short int var77
/* : Bool */;
6489 short int var79
/* : Bool */;
6490 short int var80
/* : Bool */;
6491 short int var81
/* : Bool */;
6492 val
* var82
/* : ANodes[AType] */;
6493 val
* var84
/* : ANodes[AType] */;
6494 short int var85
/* : Bool */;
6495 short int var86
/* : Bool */;
6496 static val
* varonce87
;
6497 val
* var88
/* : String */;
6498 char* var89
/* : NativeString */;
6499 long var90
/* : Int */;
6500 val
* var91
/* : FlatString */;
6501 static val
* varonce92
;
6502 val
* var93
/* : String */;
6503 char* var94
/* : NativeString */;
6504 long var95
/* : Int */;
6505 val
* var96
/* : FlatString */;
6506 val
* var97
/* : Array[Object] */;
6507 long var98
/* : Int */;
6508 val
* var99
/* : NativeArray[Object] */;
6509 val
* var100
/* : String */;
6510 val
* var101
/* : nullable TKwnullable */;
6511 val
* var103
/* : nullable TKwnullable */;
6512 val
* var104
/* : null */;
6513 short int var105
/* : Bool */;
6514 short int var106
/* : Bool */;
6515 short int var108
/* : Bool */;
6516 short int var109
/* : Bool */;
6517 short int var110
/* : Bool */;
6518 val
* var111
/* : MType */;
6519 val
* var115
/* : nullable MClass */;
6520 val
* var_mclass
/* var mclass: nullable MClass */;
6521 val
* var116
/* : null */;
6522 short int var117
/* : Bool */;
6523 short int var118
/* : Bool */;
6524 short int var120
/* : Bool */;
6525 short int var121
/* : Bool */;
6526 short int var122
/* : Bool */;
6527 val
* var123
/* : ANodes[AType] */;
6528 val
* var125
/* : ANodes[AType] */;
6529 long var126
/* : Int */;
6530 long var_arity
/* var arity: Int */;
6531 long var127
/* : Int */;
6532 long var129
/* : Int */;
6533 short int var130
/* : Bool */;
6534 short int var131
/* : Bool */;
6535 short int var133
/* : Bool */;
6536 short int var134
/* : Bool */;
6537 long var135
/* : Int */;
6538 short int var136
/* : Bool */;
6539 short int var137
/* : Bool */;
6540 short int var139
/* : Bool */;
6541 static val
* varonce140
;
6542 val
* var141
/* : String */;
6543 char* var142
/* : NativeString */;
6544 long var143
/* : Int */;
6545 val
* var144
/* : FlatString */;
6546 static val
* varonce145
;
6547 val
* var146
/* : String */;
6548 char* var147
/* : NativeString */;
6549 long var148
/* : Int */;
6550 val
* var149
/* : FlatString */;
6551 val
* var150
/* : Array[Object] */;
6552 long var151
/* : Int */;
6553 val
* var152
/* : NativeArray[Object] */;
6554 val
* var153
/* : String */;
6555 long var154
/* : Int */;
6556 long var156
/* : Int */;
6557 long var157
/* : Int */;
6558 short int var158
/* : Bool */;
6559 short int var159
/* : Bool */;
6560 short int var161
/* : Bool */;
6561 static val
* varonce162
;
6562 val
* var163
/* : String */;
6563 char* var164
/* : NativeString */;
6564 long var165
/* : Int */;
6565 val
* var166
/* : FlatString */;
6566 static val
* varonce167
;
6567 val
* var168
/* : String */;
6568 char* var169
/* : NativeString */;
6569 long var170
/* : Int */;
6570 val
* var171
/* : FlatString */;
6571 val
* var172
/* : Array[Object] */;
6572 long var173
/* : Int */;
6573 val
* var174
/* : NativeArray[Object] */;
6574 val
* var175
/* : String */;
6575 static val
* varonce176
;
6576 val
* var177
/* : String */;
6577 char* var178
/* : NativeString */;
6578 long var179
/* : Int */;
6579 val
* var180
/* : FlatString */;
6580 static val
* varonce181
;
6581 val
* var182
/* : String */;
6582 char* var183
/* : NativeString */;
6583 long var184
/* : Int */;
6584 val
* var185
/* : FlatString */;
6585 long var186
/* : Int */;
6586 long var188
/* : Int */;
6587 static val
* varonce189
;
6588 val
* var190
/* : String */;
6589 char* var191
/* : NativeString */;
6590 long var192
/* : Int */;
6591 val
* var193
/* : FlatString */;
6592 static val
* varonce194
;
6593 val
* var195
/* : String */;
6594 char* var196
/* : NativeString */;
6595 long var197
/* : Int */;
6596 val
* var198
/* : FlatString */;
6597 val
* var199
/* : Array[Object] */;
6598 long var200
/* : Int */;
6599 val
* var201
/* : NativeArray[Object] */;
6600 val
* var202
/* : Object */;
6601 val
* var203
/* : Object */;
6602 val
* var204
/* : String */;
6603 val
* var205
/* : null */;
6604 long var206
/* : Int */;
6605 short int var207
/* : Bool */;
6606 short int var208
/* : Bool */;
6607 short int var210
/* : Bool */;
6608 val
* var211
/* : MClassType */;
6609 val
* var213
/* : MClassType */;
6610 val
* var214
/* : nullable TKwnullable */;
6611 val
* var216
/* : nullable TKwnullable */;
6612 val
* var217
/* : null */;
6613 short int var218
/* : Bool */;
6614 short int var219
/* : Bool */;
6615 short int var221
/* : Bool */;
6616 short int var222
/* : Bool */;
6617 short int var223
/* : Bool */;
6618 val
* var224
/* : MType */;
6619 val
* var226
/* : Array[MType] */;
6620 val
* var_mtypes
/* var mtypes: Array[MType] */;
6621 val
* var227
/* : ANodes[AType] */;
6622 val
* var229
/* : ANodes[AType] */;
6623 val
* var_230
/* var : ANodes[AType] */;
6624 val
* var231
/* : Iterator[ANode] */;
6625 val
* var_232
/* var : Iterator[AType] */;
6626 short int var233
/* : Bool */;
6627 val
* var234
/* : nullable Object */;
6628 val
* var_nt
/* var nt: AType */;
6629 val
* var235
/* : nullable MType */;
6630 val
* var_mt
/* var mt: nullable MType */;
6631 val
* var236
/* : null */;
6632 short int var237
/* : Bool */;
6633 short int var238
/* : Bool */;
6634 val
* var_other240
/* var other: nullable Object */;
6635 short int var241
/* : Bool */;
6636 short int var243
/* : Bool */;
6637 val
* var244
/* : null */;
6638 val
* var247
/* : MClassType */;
6639 val
* var248
/* : nullable TKwnullable */;
6640 val
* var250
/* : nullable TKwnullable */;
6641 val
* var251
/* : null */;
6642 short int var252
/* : Bool */;
6643 short int var253
/* : Bool */;
6644 short int var255
/* : Bool */;
6645 short int var256
/* : Bool */;
6646 short int var257
/* : Bool */;
6647 val
* var258
/* : MType */;
6648 static val
* varonce260
;
6649 val
* var261
/* : String */;
6650 char* var262
/* : NativeString */;
6651 long var263
/* : Int */;
6652 val
* var264
/* : FlatString */;
6653 static val
* varonce265
;
6654 val
* var266
/* : String */;
6655 char* var267
/* : NativeString */;
6656 long var268
/* : Int */;
6657 val
* var269
/* : FlatString */;
6658 static val
* varonce270
;
6659 val
* var271
/* : String */;
6660 char* var272
/* : NativeString */;
6661 long var273
/* : Int */;
6662 val
* var274
/* : FlatString */;
6663 val
* var275
/* : Array[Object] */;
6664 long var276
/* : Int */;
6665 val
* var277
/* : NativeArray[Object] */;
6666 val
* var278
/* : String */;
6667 val
* var279
/* : null */;
6671 var_with_virtual
= p3
;
6673 { /* Inline parser_nodes#AType#n_id (var_ntype) on <var_ntype:AType> */
6674 var3
= var_ntype
->attrs
[COLOR_parser_nodes__AType___n_id
].val
; /* _n_id on <var_ntype:AType> */
6675 if (unlikely(var3
== NULL
)) {
6676 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
6677 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1297);
6685 var4
= lexer_work__Token__text(var1
);
6689 if (var_mclassdef
== NULL
) {
6690 var7
= 0; /* is null */
6692 var7
= 1; /* arg is null and recv is not */
6695 { /* Inline kernel#Object#!= (var_mclassdef,var6) on <var_mclassdef:nullable MClassDef> */
6698 var11
= ((short int (*)(val
*, val
*))(var_mclassdef
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mclassdef
, var_other
) /* == on <var_mclassdef:nullable MClassDef(MClassDef)>*/;
6710 var5
= var_with_virtual
;
6716 var13
= modelbuilder__ModelBuilder__try_get_mproperty_by_name(self
, var_ntype
, var_mclassdef
, var_name
);
6718 /* <var13:nullable MProperty> isa nullable MVirtualTypeProp */
6719 cltype
= type_nullable_model__MVirtualTypeProp
.color
;
6720 idtype
= type_nullable_model__MVirtualTypeProp
.id
;
6724 if(cltype
>= var13
->type
->table_size
) {
6727 var14
= var13
->type
->type_table
[cltype
] == idtype
;
6730 if (unlikely(!var14
)) {
6731 var_class_name
= var13
== NULL ?
"null" : var13
->type
->name
;
6732 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MVirtualTypeProp", var_class_name
);
6733 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 425);
6738 if (var_prop
== NULL
) {
6739 var16
= 0; /* is null */
6741 var16
= 1; /* arg is null and recv is not */
6744 { /* Inline kernel#Object#!= (var_prop,var15) on <var_prop:nullable MVirtualTypeProp> */
6747 var20
= ((short int (*)(val
*, val
*))(var_prop
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_prop
, var_other
) /* == on <var_prop:nullable MVirtualTypeProp(MVirtualTypeProp)>*/;
6753 RET_LABEL18
:(void)0;
6759 { /* Inline parser_nodes#AType#n_types (var_ntype) on <var_ntype:AType> */
6760 var24
= var_ntype
->attrs
[COLOR_parser_nodes__AType___n_types
].val
; /* _n_types on <var_ntype:AType> */
6761 if (unlikely(var24
== NULL
)) {
6762 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types");
6763 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1300);
6767 RET_LABEL23
:(void)0;
6771 var25
= parser_nodes__ANodes__is_empty(var22
);
6778 var28
= "Type error: formal type ";
6780 var30
= string__NativeString__to_s_with_length(var28
, var29
);
6787 var33
= " cannot have formal parameters.";
6789 var35
= string__NativeString__to_s_with_length(var33
, var34
);
6793 var36
= NEW_array__Array(&type_array__Arraykernel__Object
);
6794 { /* var36 = array_instance Array[Object] */
6796 var38
= NEW_array__NativeArray(var37
, &type_array__NativeArraykernel__Object
);
6797 ((struct instance_array__NativeArray
*)var38
)->values
[0] = (val
*) var27
;
6798 ((struct instance_array__NativeArray
*)var38
)->values
[1] = (val
*) var_name
;
6799 ((struct instance_array__NativeArray
*)var38
)->values
[2] = (val
*) var32
;
6801 ((void (*)(val
*, val
*, long))(var36
->class->vft
[COLOR_array__Array__with_native
]))(var36
, var38
, var37
) /* with_native on <var36:Array[Object]>*/;
6805 var39
= ((val
* (*)(val
*))(var36
->class->vft
[COLOR_string__Object__to_s
]))(var36
) /* to_s on <var36:Array[Object]>*/;
6808 modelbuilder__ModelBuilder__error(self
, var_ntype
, var39
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
6813 { /* Inline model#MVirtualTypeProp#mvirtualtype (var_prop) on <var_prop:nullable MVirtualTypeProp(MVirtualTypeProp)> */
6814 var42
= var_prop
->attrs
[COLOR_model__MVirtualTypeProp___mvirtualtype
].val
; /* _mvirtualtype on <var_prop:nullable MVirtualTypeProp(MVirtualTypeProp)> */
6815 if (unlikely(var42
== NULL
)) {
6816 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mvirtualtype");
6817 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1874);
6821 RET_LABEL41
:(void)0;
6826 { /* Inline parser_nodes#AType#n_kwnullable (var_ntype) on <var_ntype:AType> */
6827 var45
= var_ntype
->attrs
[COLOR_parser_nodes__AType___n_kwnullable
].val
; /* _n_kwnullable on <var_ntype:AType> */
6829 RET_LABEL44
:(void)0;
6833 if (var43
== NULL
) {
6834 var47
= 0; /* is null */
6836 var47
= 1; /* arg is null and recv is not */
6839 { /* Inline kernel#Object#!= (var43,var46) on <var43:nullable TKwnullable> */
6842 var51
= ((short int (*)(val
*, val
*))(var43
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var43
, var_other
) /* == on <var43:nullable TKwnullable(TKwnullable)>*/;
6848 RET_LABEL49
:(void)0;
6854 var53
= model__MType__as_nullable(var_res
);
6860 { /* Inline modelize_class#AType#mtype= (var_ntype,var_res) on <var_ntype:AType> */
6861 var_ntype
->attrs
[COLOR_modelize_class__AType___mtype
].val
= var_res
; /* _mtype on <var_ntype:AType> */
6862 RET_LABEL54
:(void)0;
6872 if (var_mclassdef
== NULL
) {
6873 var56
= 0; /* is null */
6875 var56
= 1; /* arg is null and recv is not */
6878 { /* Inline kernel#Object#!= (var_mclassdef,var55) on <var_mclassdef:nullable MClassDef> */
6881 var60
= ((short int (*)(val
*, val
*))(var_mclassdef
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mclassdef
, var_other
) /* == on <var_mclassdef:nullable MClassDef(MClassDef)>*/;
6887 RET_LABEL58
:(void)0;
6893 { /* Inline model#MClassDef#mclass (var_mclassdef) on <var_mclassdef:nullable MClassDef(MClassDef)> */
6894 var64
= var_mclassdef
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var_mclassdef:nullable MClassDef(MClassDef)> */
6895 if (unlikely(var64
== NULL
)) {
6896 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6897 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
6901 RET_LABEL63
:(void)0;
6905 { /* Inline model#MClass#mparameters (var62) on <var62:MClass> */
6906 var67
= var62
->attrs
[COLOR_model__MClass___mparameters
].val
; /* _mparameters on <var62:MClass> */
6907 if (unlikely(var67
== NULL
)) {
6908 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
6909 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 367);
6913 RET_LABEL66
:(void)0;
6918 var69
= array__AbstractArrayRead__iterator(var_68
);
6923 var71
= array__ArrayIterator__is_ok(var_70
);
6927 var72
= array__ArrayIterator__item(var_70
);
6931 { /* Inline model#MParameterType#name (var_p) on <var_p:MParameterType> */
6932 var75
= var_p
->attrs
[COLOR_model__MParameterType___name
].val
; /* _name on <var_p:MParameterType> */
6933 if (unlikely(var75
== NULL
)) {
6934 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6935 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1289);
6939 RET_LABEL74
:(void)0;
6943 { /* Inline kernel#Object#!= (var73,var_name) on <var73:String> */
6944 var_other
= var_name
;
6946 var80
= ((short int (*)(val
*, val
*))(var73
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var73
, var_other
) /* == on <var73:String>*/;
6952 RET_LABEL78
:(void)0;
6961 { /* Inline parser_nodes#AType#n_types (var_ntype) on <var_ntype:AType> */
6962 var84
= var_ntype
->attrs
[COLOR_parser_nodes__AType___n_types
].val
; /* _n_types on <var_ntype:AType> */
6963 if (unlikely(var84
== NULL
)) {
6964 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types");
6965 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1300);
6969 RET_LABEL83
:(void)0;
6973 var85
= parser_nodes__ANodes__is_empty(var82
);
6980 var89
= "Type error: formal type ";
6982 var91
= string__NativeString__to_s_with_length(var89
, var90
);
6989 var94
= " cannot have formal parameters.";
6991 var96
= string__NativeString__to_s_with_length(var94
, var95
);
6995 var97
= NEW_array__Array(&type_array__Arraykernel__Object
);
6996 { /* var97 = array_instance Array[Object] */
6998 var99
= NEW_array__NativeArray(var98
, &type_array__NativeArraykernel__Object
);
6999 ((struct instance_array__NativeArray
*)var99
)->values
[0] = (val
*) var88
;
7000 ((struct instance_array__NativeArray
*)var99
)->values
[1] = (val
*) var_name
;
7001 ((struct instance_array__NativeArray
*)var99
)->values
[2] = (val
*) var93
;
7003 ((void (*)(val
*, val
*, long))(var97
->class->vft
[COLOR_array__Array__with_native
]))(var97
, var99
, var98
) /* with_native on <var97:Array[Object]>*/;
7007 var100
= ((val
* (*)(val
*))(var97
->class->vft
[COLOR_string__Object__to_s
]))(var97
) /* to_s on <var97:Array[Object]>*/;
7010 modelbuilder__ModelBuilder__error(self
, var_ntype
, var100
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
7016 { /* Inline parser_nodes#AType#n_kwnullable (var_ntype) on <var_ntype:AType> */
7017 var103
= var_ntype
->attrs
[COLOR_parser_nodes__AType___n_kwnullable
].val
; /* _n_kwnullable on <var_ntype:AType> */
7019 RET_LABEL102
:(void)0;
7023 if (var101
== NULL
) {
7024 var105
= 0; /* is null */
7026 var105
= 1; /* arg is null and recv is not */
7029 { /* Inline kernel#Object#!= (var101,var104) on <var101:nullable TKwnullable> */
7032 var109
= ((short int (*)(val
*, val
*))(var101
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var101
, var_other
) /* == on <var101:nullable TKwnullable(TKwnullable)>*/;
7038 RET_LABEL107
:(void)0;
7044 var111
= model__MType__as_nullable(var_res
);
7050 { /* Inline modelize_class#AType#mtype= (var_ntype,var_res) on <var_ntype:AType> */
7051 var_ntype
->attrs
[COLOR_modelize_class__AType___mtype
].val
= var_res
; /* _mtype on <var_ntype:AType> */
7052 RET_LABEL112
:(void)0;
7057 BREAK_label
: (void)0;
7059 array__ArrayIterator__next(var_70
); /* Direct call array#ArrayIterator#next on <var_70:ArrayIterator[MParameterType]>*/
7062 goto BREAK_label113
;
7065 BREAK_label113
: (void)0;
7067 { /* Inline abstract_collection#Iterator#finish (var_70) on <var_70:ArrayIterator[MParameterType]> */
7068 RET_LABEL114
:(void)0;
7074 var115
= modelbuilder__ModelBuilder__try_get_mclass_by_name(self
, var_ntype
, var_mmodule
, var_name
);
7076 var_mclass
= var115
;
7078 if (var_mclass
== NULL
) {
7079 var117
= 0; /* is null */
7081 var117
= 1; /* arg is null and recv is not */
7084 { /* Inline kernel#Object#!= (var_mclass,var116) on <var_mclass:nullable MClass> */
7087 var121
= ((short int (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mclass
, var_other
) /* == on <var_mclass:nullable MClass(MClass)>*/;
7093 RET_LABEL119
:(void)0;
7099 { /* Inline parser_nodes#AType#n_types (var_ntype) on <var_ntype:AType> */
7100 var125
= var_ntype
->attrs
[COLOR_parser_nodes__AType___n_types
].val
; /* _n_types on <var_ntype:AType> */
7101 if (unlikely(var125
== NULL
)) {
7102 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types");
7103 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1300);
7107 RET_LABEL124
:(void)0;
7111 var126
= parser_nodes__ANodes__length(var123
);
7115 { /* Inline model#MClass#arity (var_mclass) on <var_mclass:nullable MClass(MClass)> */
7116 var129
= var_mclass
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <var_mclass:nullable MClass(MClass)> */
7118 RET_LABEL128
:(void)0;
7122 { /* Inline kernel#Int#!= (var_arity,var127) on <var_arity:Int> */
7123 var133
= var_arity
== var127
;
7127 RET_LABEL132
:(void)0;
7134 { /* Inline kernel#Int#== (var_arity,var135) on <var_arity:Int> */
7135 var139
= var_arity
== var135
;
7138 RET_LABEL138
:(void)0;
7144 var141
= varonce140
;
7146 var142
= "Type error: \'";
7148 var144
= string__NativeString__to_s_with_length(var142
, var143
);
7150 varonce140
= var141
;
7153 var146
= varonce145
;
7155 var147
= "\' is a generic class.";
7157 var149
= string__NativeString__to_s_with_length(var147
, var148
);
7159 varonce145
= var146
;
7161 var150
= NEW_array__Array(&type_array__Arraykernel__Object
);
7162 { /* var150 = array_instance Array[Object] */
7164 var152
= NEW_array__NativeArray(var151
, &type_array__NativeArraykernel__Object
);
7165 ((struct instance_array__NativeArray
*)var152
)->values
[0] = (val
*) var141
;
7166 ((struct instance_array__NativeArray
*)var152
)->values
[1] = (val
*) var_name
;
7167 ((struct instance_array__NativeArray
*)var152
)->values
[2] = (val
*) var146
;
7169 ((void (*)(val
*, val
*, long))(var150
->class->vft
[COLOR_array__Array__with_native
]))(var150
, var152
, var151
) /* with_native on <var150:Array[Object]>*/;
7173 var153
= ((val
* (*)(val
*))(var150
->class->vft
[COLOR_string__Object__to_s
]))(var150
) /* to_s on <var150:Array[Object]>*/;
7176 modelbuilder__ModelBuilder__error(self
, var_ntype
, var153
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
7180 { /* Inline model#MClass#arity (var_mclass) on <var_mclass:nullable MClass(MClass)> */
7181 var156
= var_mclass
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <var_mclass:nullable MClass(MClass)> */
7183 RET_LABEL155
:(void)0;
7188 { /* Inline kernel#Int#== (var154,var157) on <var154:Int> */
7189 var161
= var154
== var157
;
7192 RET_LABEL160
:(void)0;
7198 var163
= varonce162
;
7200 var164
= "Type error: \'";
7202 var166
= string__NativeString__to_s_with_length(var164
, var165
);
7204 varonce162
= var163
;
7207 var168
= varonce167
;
7209 var169
= "\' is not a generic class.";
7211 var171
= string__NativeString__to_s_with_length(var169
, var170
);
7213 varonce167
= var168
;
7215 var172
= NEW_array__Array(&type_array__Arraykernel__Object
);
7216 { /* var172 = array_instance Array[Object] */
7218 var174
= NEW_array__NativeArray(var173
, &type_array__NativeArraykernel__Object
);
7219 ((struct instance_array__NativeArray
*)var174
)->values
[0] = (val
*) var163
;
7220 ((struct instance_array__NativeArray
*)var174
)->values
[1] = (val
*) var_name
;
7221 ((struct instance_array__NativeArray
*)var174
)->values
[2] = (val
*) var168
;
7223 ((void (*)(val
*, val
*, long))(var172
->class->vft
[COLOR_array__Array__with_native
]))(var172
, var174
, var173
) /* with_native on <var172:Array[Object]>*/;
7227 var175
= ((val
* (*)(val
*))(var172
->class->vft
[COLOR_string__Object__to_s
]))(var172
) /* to_s on <var172:Array[Object]>*/;
7230 modelbuilder__ModelBuilder__error(self
, var_ntype
, var175
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
7234 var177
= varonce176
;
7236 var178
= "Type error: \'";
7238 var180
= string__NativeString__to_s_with_length(var178
, var179
);
7240 varonce176
= var177
;
7243 var182
= varonce181
;
7247 var185
= string__NativeString__to_s_with_length(var183
, var184
);
7249 varonce181
= var182
;
7252 { /* Inline model#MClass#arity (var_mclass) on <var_mclass:nullable MClass(MClass)> */
7253 var188
= var_mclass
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <var_mclass:nullable MClass(MClass)> */
7255 RET_LABEL187
:(void)0;
7259 var190
= varonce189
;
7261 var191
= " parameters (";
7263 var193
= string__NativeString__to_s_with_length(var191
, var192
);
7265 varonce189
= var190
;
7268 var195
= varonce194
;
7270 var196
= " are provided).";
7272 var198
= string__NativeString__to_s_with_length(var196
, var197
);
7274 varonce194
= var195
;
7276 var199
= NEW_array__Array(&type_array__Arraykernel__Object
);
7277 { /* var199 = array_instance Array[Object] */
7279 var201
= NEW_array__NativeArray(var200
, &type_array__NativeArraykernel__Object
);
7280 ((struct instance_array__NativeArray
*)var201
)->values
[0] = (val
*) var177
;
7281 ((struct instance_array__NativeArray
*)var201
)->values
[1] = (val
*) var_name
;
7282 ((struct instance_array__NativeArray
*)var201
)->values
[2] = (val
*) var182
;
7283 var202
= BOX_kernel__Int(var186
); /* autobox from Int to Object */
7284 ((struct instance_array__NativeArray
*)var201
)->values
[3] = (val
*) var202
;
7285 ((struct instance_array__NativeArray
*)var201
)->values
[4] = (val
*) var190
;
7286 var203
= BOX_kernel__Int(var_arity
); /* autobox from Int to Object */
7287 ((struct instance_array__NativeArray
*)var201
)->values
[5] = (val
*) var203
;
7288 ((struct instance_array__NativeArray
*)var201
)->values
[6] = (val
*) var195
;
7290 ((void (*)(val
*, val
*, long))(var199
->class->vft
[COLOR_array__Array__with_native
]))(var199
, var201
, var200
) /* with_native on <var199:Array[Object]>*/;
7294 var204
= ((val
* (*)(val
*))(var199
->class->vft
[COLOR_string__Object__to_s
]))(var199
) /* to_s on <var199:Array[Object]>*/;
7297 modelbuilder__ModelBuilder__error(self
, var_ntype
, var204
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
7308 { /* Inline kernel#Int#== (var_arity,var206) on <var_arity:Int> */
7309 var210
= var_arity
== var206
;
7312 RET_LABEL209
:(void)0;
7318 { /* Inline model#MClass#mclass_type (var_mclass) on <var_mclass:nullable MClass(MClass)> */
7319 var213
= var_mclass
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_mclass:nullable MClass(MClass)> */
7320 if (unlikely(var213
== NULL
)) {
7321 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
7322 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
7326 RET_LABEL212
:(void)0;
7331 { /* Inline parser_nodes#AType#n_kwnullable (var_ntype) on <var_ntype:AType> */
7332 var216
= var_ntype
->attrs
[COLOR_parser_nodes__AType___n_kwnullable
].val
; /* _n_kwnullable on <var_ntype:AType> */
7334 RET_LABEL215
:(void)0;
7338 if (var214
== NULL
) {
7339 var218
= 0; /* is null */
7341 var218
= 1; /* arg is null and recv is not */
7344 { /* Inline kernel#Object#!= (var214,var217) on <var214:nullable TKwnullable> */
7347 var222
= ((short int (*)(val
*, val
*))(var214
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var214
, var_other
) /* == on <var214:nullable TKwnullable(TKwnullable)>*/;
7353 RET_LABEL220
:(void)0;
7359 var224
= model__MType__as_nullable(var_res
);
7365 { /* Inline modelize_class#AType#mtype= (var_ntype,var_res) on <var_ntype:AType> */
7366 var_ntype
->attrs
[COLOR_modelize_class__AType___mtype
].val
= var_res
; /* _mtype on <var_ntype:AType> */
7367 RET_LABEL225
:(void)0;
7373 var226
= NEW_array__Array(&type_array__Arraymodel__MType
);
7375 ((void (*)(val
*))(var226
->class->vft
[COLOR_kernel__Object__init
]))(var226
) /* init on <var226:Array[MType]>*/;
7377 var_mtypes
= var226
;
7379 { /* Inline parser_nodes#AType#n_types (var_ntype) on <var_ntype:AType> */
7380 var229
= var_ntype
->attrs
[COLOR_parser_nodes__AType___n_types
].val
; /* _n_types on <var_ntype:AType> */
7381 if (unlikely(var229
== NULL
)) {
7382 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types");
7383 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1300);
7387 RET_LABEL228
:(void)0;
7392 var231
= parser_nodes__ANodes__iterator(var_230
);
7397 var233
= ((short int (*)(val
*))(var_232
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_232
) /* is_ok on <var_232:Iterator[AType]>*/;
7401 var234
= ((val
* (*)(val
*))(var_232
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_232
) /* item on <var_232:Iterator[AType]>*/;
7405 var235
= modelize_class__ModelBuilder__resolve_mtype_unchecked(self
, var_mmodule
, var_mclassdef
, var_nt
, var_with_virtual
);
7409 if (var_mt
== NULL
) {
7410 var237
= 1; /* is null */
7412 var237
= 0; /* arg is null but recv is not */
7415 { /* Inline kernel#Object#== (var_mt,var236) on <var_mt:nullable MType> */
7416 var_other240
= var236
;
7418 { /* Inline kernel#Object#is_same_instance (var_mt,var_other240) on <var_mt:nullable MType(MType)> */
7419 var243
= var_mt
== var_other240
;
7422 RET_LABEL242
:(void)0;
7427 RET_LABEL239
:(void)0;
7438 array__Array__add(var_mtypes
, var_mt
); /* Direct call array#Array#add on <var_mtypes:Array[MType]>*/
7441 ((void (*)(val
*))(var_232
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_232
) /* next on <var_232:Iterator[AType]>*/;
7444 goto BREAK_label245
;
7447 BREAK_label245
: (void)0;
7449 { /* Inline abstract_collection#Iterator#finish (var_232) on <var_232:Iterator[AType]> */
7450 RET_LABEL246
:(void)0;
7454 var247
= model__MClass__get_mtype(var_mclass
, var_mtypes
);
7458 { /* Inline parser_nodes#AType#n_kwnullable (var_ntype) on <var_ntype:AType> */
7459 var250
= var_ntype
->attrs
[COLOR_parser_nodes__AType___n_kwnullable
].val
; /* _n_kwnullable on <var_ntype:AType> */
7461 RET_LABEL249
:(void)0;
7465 if (var248
== NULL
) {
7466 var252
= 0; /* is null */
7468 var252
= 1; /* arg is null and recv is not */
7471 { /* Inline kernel#Object#!= (var248,var251) on <var248:nullable TKwnullable> */
7474 var256
= ((short int (*)(val
*, val
*))(var248
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var248
, var_other
) /* == on <var248:nullable TKwnullable(TKwnullable)>*/;
7480 RET_LABEL254
:(void)0;
7486 var258
= model__MType__as_nullable(var_res
);
7492 { /* Inline modelize_class#AType#mtype= (var_ntype,var_res) on <var_ntype:AType> */
7493 var_ntype
->attrs
[COLOR_modelize_class__AType___mtype
].val
= var_res
; /* _mtype on <var_ntype:AType> */
7494 RET_LABEL259
:(void)0;
7503 var261
= varonce260
;
7505 var262
= "Type error: class ";
7507 var264
= string__NativeString__to_s_with_length(var262
, var263
);
7509 varonce260
= var261
;
7512 var266
= varonce265
;
7514 var267
= " not found in module ";
7516 var269
= string__NativeString__to_s_with_length(var267
, var268
);
7518 varonce265
= var266
;
7521 var271
= varonce270
;
7525 var274
= string__NativeString__to_s_with_length(var272
, var273
);
7527 varonce270
= var271
;
7529 var275
= NEW_array__Array(&type_array__Arraykernel__Object
);
7530 { /* var275 = array_instance Array[Object] */
7532 var277
= NEW_array__NativeArray(var276
, &type_array__NativeArraykernel__Object
);
7533 ((struct instance_array__NativeArray
*)var277
)->values
[0] = (val
*) var261
;
7534 ((struct instance_array__NativeArray
*)var277
)->values
[1] = (val
*) var_name
;
7535 ((struct instance_array__NativeArray
*)var277
)->values
[2] = (val
*) var266
;
7536 ((struct instance_array__NativeArray
*)var277
)->values
[3] = (val
*) var_mmodule
;
7537 ((struct instance_array__NativeArray
*)var277
)->values
[4] = (val
*) var271
;
7539 ((void (*)(val
*, val
*, long))(var275
->class->vft
[COLOR_array__Array__with_native
]))(var275
, var277
, var276
) /* with_native on <var275:Array[Object]>*/;
7543 var278
= ((val
* (*)(val
*))(var275
->class->vft
[COLOR_string__Object__to_s
]))(var275
) /* to_s on <var275:Array[Object]>*/;
7546 modelbuilder__ModelBuilder__error(self
, var_ntype
, var278
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
7554 /* method modelize_class#ModelBuilder#resolve_mtype_unchecked for (self: Object, MModule, nullable MClassDef, AType, Bool): nullable MType */
7555 val
* VIRTUAL_modelize_class__ModelBuilder__resolve_mtype_unchecked(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
7556 val
* var
/* : nullable MType */;
7557 val
* var1
/* : nullable MType */;
7558 var1
= modelize_class__ModelBuilder__resolve_mtype_unchecked(self
, p0
, p1
, p2
, p3
);
7563 /* method modelize_class#ModelBuilder#resolve_mtype for (self: ModelBuilder, MModule, nullable MClassDef, AType): nullable MType */
7564 val
* modelize_class__ModelBuilder__resolve_mtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
7565 val
* var
/* : nullable MType */;
7566 val
* var_mmodule
/* var mmodule: MModule */;
7567 val
* var_mclassdef
/* var mclassdef: nullable MClassDef */;
7568 val
* var_ntype
/* var ntype: AType */;
7569 val
* var1
/* : nullable MType */;
7570 val
* var3
/* : nullable MType */;
7571 val
* var_mtype
/* var mtype: nullable MType */;
7572 val
* var4
/* : null */;
7573 short int var5
/* : Bool */;
7574 short int var6
/* : Bool */;
7575 val
* var_other
/* var other: nullable Object */;
7576 short int var8
/* : Bool */;
7577 short int var10
/* : Bool */;
7578 short int var11
/* : Bool */;
7579 val
* var12
/* : nullable MType */;
7580 val
* var13
/* : null */;
7581 short int var14
/* : Bool */;
7582 short int var15
/* : Bool */;
7583 short int var17
/* : Bool */;
7584 short int var19
/* : Bool */;
7585 val
* var20
/* : null */;
7586 short int var21
/* : Bool */;
7587 short int var23
/* : Bool */;
7588 short int var24
/* : Bool */;
7591 val
* var25
/* : MClass */;
7592 val
* var27
/* : MClass */;
7593 val
* var_mclass
/* var mclass: MClass */;
7594 long var28
/* : Int */;
7595 long var_i
/* var i: Int */;
7596 long var29
/* : Int */;
7597 long var31
/* : Int */;
7598 long var_
/* var : Int */;
7599 short int var32
/* : Bool */;
7600 short int var34
/* : Bool */;
7603 const char* var_class_name
;
7604 short int var37
/* : Bool */;
7605 val
* var38
/* : MClassDef */;
7606 val
* var40
/* : MClassDef */;
7607 val
* var41
/* : MClassType */;
7608 val
* var43
/* : MClassType */;
7609 val
* var44
/* : Array[MType] */;
7610 val
* var46
/* : Array[MType] */;
7611 val
* var47
/* : nullable Object */;
7612 val
* var_bound
/* var bound: MType */;
7613 val
* var48
/* : ANodes[AType] */;
7614 val
* var50
/* : ANodes[AType] */;
7615 val
* var51
/* : ANode */;
7616 val
* var_nt
/* var nt: AType */;
7617 val
* var52
/* : nullable MType */;
7618 val
* var_mt
/* var mt: nullable MType */;
7619 val
* var53
/* : null */;
7620 short int var54
/* : Bool */;
7621 short int var55
/* : Bool */;
7622 short int var57
/* : Bool */;
7623 short int var59
/* : Bool */;
7624 val
* var60
/* : null */;
7625 val
* var61
/* : null */;
7626 short int var62
/* : Bool */;
7627 short int var63
/* : Bool */;
7628 val
* var_other65
/* var other: nullable Object */;
7629 short int var66
/* : Bool */;
7630 short int var67
/* : Bool */;
7631 short int var68
/* : Bool */;
7632 val
* var69
/* : MClassType */;
7633 val
* var71
/* : MClassType */;
7634 val
* var_anchor
/* var anchor: nullable Object */;
7635 val
* var72
/* : null */;
7636 short int var73
/* : Bool */;
7637 short int var74
/* : Bool */;
7638 static val
* varonce
;
7639 val
* var75
/* : String */;
7640 char* var76
/* : NativeString */;
7641 long var77
/* : Int */;
7642 val
* var78
/* : FlatString */;
7643 static val
* varonce79
;
7644 val
* var80
/* : String */;
7645 char* var81
/* : NativeString */;
7646 long var82
/* : Int */;
7647 val
* var83
/* : FlatString */;
7648 val
* var84
/* : Array[Object] */;
7649 long var85
/* : Int */;
7650 val
* var86
/* : NativeArray[Object] */;
7651 val
* var87
/* : String */;
7652 val
* var88
/* : null */;
7653 long var89
/* : Int */;
7654 long var90
/* : Int */;
7655 short int var91
/* : Bool */;
7660 { /* Inline modelize_class#AType#mtype (var_ntype) on <var_ntype:AType> */
7661 var3
= var_ntype
->attrs
[COLOR_modelize_class__AType___mtype
].val
; /* _mtype on <var_ntype:AType> */
7668 if (var_mtype
== NULL
) {
7669 var5
= 1; /* is null */
7671 var5
= 0; /* arg is null but recv is not */
7674 { /* Inline kernel#Object#== (var_mtype,var4) on <var_mtype:nullable MType> */
7677 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
7678 var10
= var_mtype
== var_other
;
7693 var12
= modelize_class__ModelBuilder__resolve_mtype_unchecked(self
, var_mmodule
, var_mclassdef
, var_ntype
, var11
);
7699 if (var_mtype
== NULL
) {
7700 var14
= 1; /* is null */
7702 var14
= 0; /* arg is null but recv is not */
7705 { /* Inline kernel#Object#== (var_mtype,var13) on <var_mtype:nullable MType> */
7708 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
7709 var19
= var_mtype
== var_other
;
7712 RET_LABEL18
:(void)0;
7717 RET_LABEL16
:(void)0;
7728 { /* Inline modelize_class#AType#checked_mtype (var_ntype) on <var_ntype:AType> */
7729 var23
= var_ntype
->attrs
[COLOR_modelize_class__AType___checked_mtype
].s
; /* _checked_mtype on <var_ntype:AType> */
7731 RET_LABEL22
:(void)0;
7739 /* <var_mtype:nullable MType(MType)> isa MGenericType */
7740 cltype
= type_model__MGenericType
.color
;
7741 idtype
= type_model__MGenericType
.id
;
7742 if(cltype
>= var_mtype
->type
->table_size
) {
7745 var24
= var_mtype
->type
->type_table
[cltype
] == idtype
;
7749 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:nullable MType(MGenericType)> */
7750 var27
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:nullable MType(MGenericType)> */
7751 if (unlikely(var27
== NULL
)) {
7752 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
7753 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
7757 RET_LABEL26
:(void)0;
7764 { /* Inline model#MClass#arity (var_mclass) on <var_mclass:MClass> */
7765 var31
= var_mclass
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <var_mclass:MClass> */
7767 RET_LABEL30
:(void)0;
7773 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
7774 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
7775 /* <var_:Int> isa OTHER */
7776 var34
= 1; /* easy <var_:Int> isa OTHER*/
7777 if (unlikely(!var34
)) {
7778 var_class_name
= type_kernel__Int
.name
;
7779 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
7780 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
7783 var37
= var_i
< var_
;
7786 RET_LABEL33
:(void)0;
7791 { /* Inline model#MClass#intro (var_mclass) on <var_mclass:MClass> */
7792 var40
= var_mclass
->attrs
[COLOR_model__MClass___intro
].val
; /* _intro on <var_mclass:MClass> */
7793 if (unlikely(var40
== NULL
)) {
7794 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
7795 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 420);
7799 RET_LABEL39
:(void)0;
7803 { /* Inline model#MClassDef#bound_mtype (var38) on <var38:MClassDef> */
7804 var43
= var38
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var38:MClassDef> */
7805 if (unlikely(var43
== NULL
)) {
7806 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
7807 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
7811 RET_LABEL42
:(void)0;
7815 { /* Inline model#MClassType#arguments (var41) on <var41:MClassType> */
7816 var46
= var41
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <var41:MClassType> */
7817 if (unlikely(var46
== NULL
)) {
7818 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
7819 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 996);
7823 RET_LABEL45
:(void)0;
7827 var47
= array__Array___91d_93d(var44
, var_i
);
7831 { /* Inline parser_nodes#AType#n_types (var_ntype) on <var_ntype:AType> */
7832 var50
= var_ntype
->attrs
[COLOR_parser_nodes__AType___n_types
].val
; /* _n_types on <var_ntype:AType> */
7833 if (unlikely(var50
== NULL
)) {
7834 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types");
7835 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1300);
7839 RET_LABEL49
:(void)0;
7843 var51
= parser_nodes__ANodes___91d_93d(var48
, var_i
);
7847 var52
= modelize_class__ModelBuilder__resolve_mtype(self
, var_mmodule
, var_mclassdef
, var_nt
);
7851 if (var_mt
== NULL
) {
7852 var54
= 1; /* is null */
7854 var54
= 0; /* arg is null but recv is not */
7857 { /* Inline kernel#Object#== (var_mt,var53) on <var_mt:nullable MType> */
7860 { /* Inline kernel#Object#is_same_instance (var_mt,var_other) on <var_mt:nullable MType(MType)> */
7861 var59
= var_mt
== var_other
;
7864 RET_LABEL58
:(void)0;
7869 RET_LABEL56
:(void)0;
7880 if (var_mclassdef
== NULL
) {
7881 var62
= 0; /* is null */
7883 var62
= 1; /* arg is null and recv is not */
7886 { /* Inline kernel#Object#!= (var_mclassdef,var61) on <var_mclassdef:nullable MClassDef> */
7887 var_other65
= var61
;
7889 var67
= ((short int (*)(val
*, val
*))(var_mclassdef
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mclassdef
, var_other65
) /* == on <var_mclassdef:nullable MClassDef(MClassDef)>*/;
7895 RET_LABEL64
:(void)0;
7901 { /* Inline model#MClassDef#bound_mtype (var_mclassdef) on <var_mclassdef:nullable MClassDef(MClassDef)> */
7902 var71
= var_mclassdef
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var_mclassdef:nullable MClassDef(MClassDef)> */
7903 if (unlikely(var71
== NULL
)) {
7904 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
7905 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
7909 RET_LABEL70
:(void)0;
7918 var73
= model__MType__is_subtype(var_mt
, var_mmodule
, var_anchor
, var_bound
);
7925 var76
= "Type error: expected ";
7927 var78
= string__NativeString__to_s_with_length(var76
, var77
);
7936 var83
= string__NativeString__to_s_with_length(var81
, var82
);
7940 var84
= NEW_array__Array(&type_array__Arraykernel__Object
);
7941 { /* var84 = array_instance Array[Object] */
7943 var86
= NEW_array__NativeArray(var85
, &type_array__NativeArraykernel__Object
);
7944 ((struct instance_array__NativeArray
*)var86
)->values
[0] = (val
*) var75
;
7945 ((struct instance_array__NativeArray
*)var86
)->values
[1] = (val
*) var_bound
;
7946 ((struct instance_array__NativeArray
*)var86
)->values
[2] = (val
*) var80
;
7947 ((struct instance_array__NativeArray
*)var86
)->values
[3] = (val
*) var_mt
;
7949 ((void (*)(val
*, val
*, long))(var84
->class->vft
[COLOR_array__Array__with_native
]))(var84
, var86
, var85
) /* with_native on <var84:Array[Object]>*/;
7953 var87
= ((val
* (*)(val
*))(var84
->class->vft
[COLOR_string__Object__to_s
]))(var84
) /* to_s on <var84:Array[Object]>*/;
7956 modelbuilder__ModelBuilder__error(self
, var_nt
, var87
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
7965 var90
= kernel__Int__successor(var_i
, var89
);
7972 BREAK_label
: (void)0;
7977 { /* Inline modelize_class#AType#checked_mtype= (var_ntype,var91) on <var_ntype:AType> */
7978 var_ntype
->attrs
[COLOR_modelize_class__AType___checked_mtype
].s
= var91
; /* _checked_mtype on <var_ntype:AType> */
7979 RET_LABEL92
:(void)0;
7987 /* method modelize_class#ModelBuilder#resolve_mtype for (self: Object, MModule, nullable MClassDef, AType): nullable MType */
7988 val
* VIRTUAL_modelize_class__ModelBuilder__resolve_mtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
7989 val
* var
/* : nullable MType */;
7990 val
* var1
/* : nullable MType */;
7991 var1
= modelize_class__ModelBuilder__resolve_mtype(self
, p0
, p1
, p2
);
7996 /* method modelize_class#AModule#build_classes_is_done for (self: AModule): Bool */
7997 short int modelize_class__AModule__build_classes_is_done(val
* self
) {
7998 short int var
/* : Bool */;
7999 short int var1
/* : Bool */;
8000 var1
= self
->attrs
[COLOR_modelize_class__AModule___build_classes_is_done
].s
; /* _build_classes_is_done on <self:AModule> */
8005 /* method modelize_class#AModule#build_classes_is_done for (self: Object): Bool */
8006 short int VIRTUAL_modelize_class__AModule__build_classes_is_done(val
* self
) {
8007 short int var
/* : Bool */;
8008 short int var1
/* : Bool */;
8009 short int var3
/* : Bool */;
8010 { /* Inline modelize_class#AModule#build_classes_is_done (self) on <self:Object(AModule)> */
8011 var3
= self
->attrs
[COLOR_modelize_class__AModule___build_classes_is_done
].s
; /* _build_classes_is_done on <self:Object(AModule)> */
8019 /* method modelize_class#AModule#build_classes_is_done= for (self: AModule, Bool) */
8020 void modelize_class__AModule__build_classes_is_done_61d(val
* self
, short int p0
) {
8021 self
->attrs
[COLOR_modelize_class__AModule___build_classes_is_done
].s
= p0
; /* _build_classes_is_done on <self:AModule> */
8024 /* method modelize_class#AModule#build_classes_is_done= for (self: Object, Bool) */
8025 void VIRTUAL_modelize_class__AModule__build_classes_is_done_61d(val
* self
, short int p0
) {
8026 { /* Inline modelize_class#AModule#build_classes_is_done= (self,p0) on <self:Object(AModule)> */
8027 self
->attrs
[COLOR_modelize_class__AModule___build_classes_is_done
].s
= p0
; /* _build_classes_is_done on <self:Object(AModule)> */
8032 /* method modelize_class#AModule#mclass2nclassdef for (self: AModule): Map[MClass, AClassdef] */
8033 val
* modelize_class__AModule__mclass2nclassdef(val
* self
) {
8034 val
* var
/* : Map[MClass, AClassdef] */;
8035 val
* var1
/* : Map[MClass, AClassdef] */;
8036 var1
= self
->attrs
[COLOR_modelize_class__AModule___mclass2nclassdef
].val
; /* _mclass2nclassdef on <self:AModule> */
8037 if (unlikely(var1
== NULL
)) {
8038 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass2nclassdef");
8039 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 526);
8046 /* method modelize_class#AModule#mclass2nclassdef for (self: Object): Map[MClass, AClassdef] */
8047 val
* VIRTUAL_modelize_class__AModule__mclass2nclassdef(val
* self
) {
8048 val
* var
/* : Map[MClass, AClassdef] */;
8049 val
* var1
/* : Map[MClass, AClassdef] */;
8050 val
* var3
/* : Map[MClass, AClassdef] */;
8051 { /* Inline modelize_class#AModule#mclass2nclassdef (self) on <self:Object(AModule)> */
8052 var3
= self
->attrs
[COLOR_modelize_class__AModule___mclass2nclassdef
].val
; /* _mclass2nclassdef on <self:Object(AModule)> */
8053 if (unlikely(var3
== NULL
)) {
8054 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass2nclassdef");
8055 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 526);
8065 /* method modelize_class#AClassdef#mclass for (self: AClassdef): nullable MClass */
8066 val
* modelize_class__AClassdef__mclass(val
* self
) {
8067 val
* var
/* : nullable MClass */;
8068 val
* var1
/* : nullable MClass */;
8069 var1
= self
->attrs
[COLOR_modelize_class__AClassdef___mclass
].val
; /* _mclass on <self:AClassdef> */
8074 /* method modelize_class#AClassdef#mclass for (self: Object): nullable MClass */
8075 val
* VIRTUAL_modelize_class__AClassdef__mclass(val
* self
) {
8076 val
* var
/* : nullable MClass */;
8077 val
* var1
/* : nullable MClass */;
8078 val
* var3
/* : nullable MClass */;
8079 { /* Inline modelize_class#AClassdef#mclass (self) on <self:Object(AClassdef)> */
8080 var3
= self
->attrs
[COLOR_modelize_class__AClassdef___mclass
].val
; /* _mclass on <self:Object(AClassdef)> */
8088 /* method modelize_class#AClassdef#mclass= for (self: AClassdef, nullable MClass) */
8089 void modelize_class__AClassdef__mclass_61d(val
* self
, val
* p0
) {
8090 self
->attrs
[COLOR_modelize_class__AClassdef___mclass
].val
= p0
; /* _mclass on <self:AClassdef> */
8093 /* method modelize_class#AClassdef#mclass= for (self: Object, nullable MClass) */
8094 void VIRTUAL_modelize_class__AClassdef__mclass_61d(val
* self
, val
* p0
) {
8095 { /* Inline modelize_class#AClassdef#mclass= (self,p0) on <self:Object(AClassdef)> */
8096 self
->attrs
[COLOR_modelize_class__AClassdef___mclass
].val
= p0
; /* _mclass on <self:Object(AClassdef)> */
8101 /* method modelize_class#AClassdef#mclassdef for (self: AClassdef): nullable MClassDef */
8102 val
* modelize_class__AClassdef__mclassdef(val
* self
) {
8103 val
* var
/* : nullable MClassDef */;
8104 val
* var1
/* : nullable MClassDef */;
8105 var1
= self
->attrs
[COLOR_modelize_class__AClassdef___mclassdef
].val
; /* _mclassdef on <self:AClassdef> */
8110 /* method modelize_class#AClassdef#mclassdef for (self: Object): nullable MClassDef */
8111 val
* VIRTUAL_modelize_class__AClassdef__mclassdef(val
* self
) {
8112 val
* var
/* : nullable MClassDef */;
8113 val
* var1
/* : nullable MClassDef */;
8114 val
* var3
/* : nullable MClassDef */;
8115 { /* Inline modelize_class#AClassdef#mclassdef (self) on <self:Object(AClassdef)> */
8116 var3
= self
->attrs
[COLOR_modelize_class__AClassdef___mclassdef
].val
; /* _mclassdef on <self:Object(AClassdef)> */
8124 /* method modelize_class#AClassdef#mclassdef= for (self: AClassdef, nullable MClassDef) */
8125 void modelize_class__AClassdef__mclassdef_61d(val
* self
, val
* p0
) {
8126 self
->attrs
[COLOR_modelize_class__AClassdef___mclassdef
].val
= p0
; /* _mclassdef on <self:AClassdef> */
8129 /* method modelize_class#AClassdef#mclassdef= for (self: Object, nullable MClassDef) */
8130 void VIRTUAL_modelize_class__AClassdef__mclassdef_61d(val
* self
, val
* p0
) {
8131 { /* Inline modelize_class#AClassdef#mclassdef= (self,p0) on <self:Object(AClassdef)> */
8132 self
->attrs
[COLOR_modelize_class__AClassdef___mclassdef
].val
= p0
; /* _mclassdef on <self:Object(AClassdef)> */
8137 /* method modelize_class#AClassdef#all_defs for (self: AClassdef): nullable Array[AClassdef] */
8138 val
* modelize_class__AClassdef__all_defs(val
* self
) {
8139 val
* var
/* : nullable Array[AClassdef] */;
8140 val
* var1
/* : nullable Array[AClassdef] */;
8141 var1
= self
->attrs
[COLOR_modelize_class__AClassdef___all_defs
].val
; /* _all_defs on <self:AClassdef> */
8146 /* method modelize_class#AClassdef#all_defs for (self: Object): nullable Array[AClassdef] */
8147 val
* VIRTUAL_modelize_class__AClassdef__all_defs(val
* self
) {
8148 val
* var
/* : nullable Array[AClassdef] */;
8149 val
* var1
/* : nullable Array[AClassdef] */;
8150 val
* var3
/* : nullable Array[AClassdef] */;
8151 { /* Inline modelize_class#AClassdef#all_defs (self) on <self:Object(AClassdef)> */
8152 var3
= self
->attrs
[COLOR_modelize_class__AClassdef___all_defs
].val
; /* _all_defs on <self:Object(AClassdef)> */
8160 /* method modelize_class#AClassdef#all_defs= for (self: AClassdef, nullable Array[AClassdef]) */
8161 void modelize_class__AClassdef__all_defs_61d(val
* self
, val
* p0
) {
8162 self
->attrs
[COLOR_modelize_class__AClassdef___all_defs
].val
= p0
; /* _all_defs on <self:AClassdef> */
8165 /* method modelize_class#AClassdef#all_defs= for (self: Object, nullable Array[AClassdef]) */
8166 void VIRTUAL_modelize_class__AClassdef__all_defs_61d(val
* self
, val
* p0
) {
8167 { /* Inline modelize_class#AClassdef#all_defs= (self,p0) on <self:Object(AClassdef)> */
8168 self
->attrs
[COLOR_modelize_class__AClassdef___all_defs
].val
= p0
; /* _all_defs on <self:Object(AClassdef)> */
8173 /* method modelize_class#AConcreteClasskind#mkind for (self: AConcreteClasskind): MClassKind */
8174 val
* modelize_class__AConcreteClasskind__mkind(val
* self
) {
8175 val
* var
/* : MClassKind */;
8176 val
* var1
/* : MClassKind */;
8178 var1
= model__Object__concrete_kind(self
);
8185 /* method modelize_class#AConcreteClasskind#mkind for (self: Object): MClassKind */
8186 val
* VIRTUAL_modelize_class__AConcreteClasskind__mkind(val
* self
) {
8187 val
* var
/* : MClassKind */;
8188 val
* var1
/* : MClassKind */;
8189 var1
= modelize_class__AConcreteClasskind__mkind(self
);
8194 /* method modelize_class#AAbstractClasskind#mkind for (self: AAbstractClasskind): MClassKind */
8195 val
* modelize_class__AAbstractClasskind__mkind(val
* self
) {
8196 val
* var
/* : MClassKind */;
8197 val
* var1
/* : MClassKind */;
8199 var1
= model__Object__abstract_kind(self
);
8206 /* method modelize_class#AAbstractClasskind#mkind for (self: Object): MClassKind */
8207 val
* VIRTUAL_modelize_class__AAbstractClasskind__mkind(val
* self
) {
8208 val
* var
/* : MClassKind */;
8209 val
* var1
/* : MClassKind */;
8210 var1
= modelize_class__AAbstractClasskind__mkind(self
);
8215 /* method modelize_class#AInterfaceClasskind#mkind for (self: AInterfaceClasskind): MClassKind */
8216 val
* modelize_class__AInterfaceClasskind__mkind(val
* self
) {
8217 val
* var
/* : MClassKind */;
8218 val
* var1
/* : MClassKind */;
8220 var1
= model__Object__interface_kind(self
);
8227 /* method modelize_class#AInterfaceClasskind#mkind for (self: Object): MClassKind */
8228 val
* VIRTUAL_modelize_class__AInterfaceClasskind__mkind(val
* self
) {
8229 val
* var
/* : MClassKind */;
8230 val
* var1
/* : MClassKind */;
8231 var1
= modelize_class__AInterfaceClasskind__mkind(self
);
8236 /* method modelize_class#AEnumClasskind#mkind for (self: AEnumClasskind): MClassKind */
8237 val
* modelize_class__AEnumClasskind__mkind(val
* self
) {
8238 val
* var
/* : MClassKind */;
8239 val
* var1
/* : MClassKind */;
8241 var1
= model__Object__enum_kind(self
);
8248 /* method modelize_class#AEnumClasskind#mkind for (self: Object): MClassKind */
8249 val
* VIRTUAL_modelize_class__AEnumClasskind__mkind(val
* self
) {
8250 val
* var
/* : MClassKind */;
8251 val
* var1
/* : MClassKind */;
8252 var1
= modelize_class__AEnumClasskind__mkind(self
);
8257 /* method modelize_class#AExternClasskind#mkind for (self: AExternClasskind): MClassKind */
8258 val
* modelize_class__AExternClasskind__mkind(val
* self
) {
8259 val
* var
/* : MClassKind */;
8260 val
* var1
/* : MClassKind */;
8262 var1
= model__Object__extern_kind(self
);
8269 /* method modelize_class#AExternClasskind#mkind for (self: Object): MClassKind */
8270 val
* VIRTUAL_modelize_class__AExternClasskind__mkind(val
* self
) {
8271 val
* var
/* : MClassKind */;
8272 val
* var1
/* : MClassKind */;
8273 var1
= modelize_class__AExternClasskind__mkind(self
);
8278 /* method modelize_class#AFormaldef#bound= for (self: AFormaldef, nullable MType) */
8279 void modelize_class__AFormaldef__bound_61d(val
* self
, val
* p0
) {
8280 self
->attrs
[COLOR_modelize_class__AFormaldef___bound
].val
= p0
; /* _bound on <self:AFormaldef> */
8283 /* method modelize_class#AFormaldef#bound= for (self: Object, nullable MType) */
8284 void VIRTUAL_modelize_class__AFormaldef__bound_61d(val
* self
, val
* p0
) {
8285 { /* Inline modelize_class#AFormaldef#bound= (self,p0) on <self:Object(AFormaldef)> */
8286 self
->attrs
[COLOR_modelize_class__AFormaldef___bound
].val
= p0
; /* _bound on <self:Object(AFormaldef)> */
8291 /* method modelize_class#AType#mtype for (self: AType): nullable MType */
8292 val
* modelize_class__AType__mtype(val
* self
) {
8293 val
* var
/* : nullable MType */;
8294 val
* var1
/* : nullable MType */;
8295 var1
= self
->attrs
[COLOR_modelize_class__AType___mtype
].val
; /* _mtype on <self:AType> */
8300 /* method modelize_class#AType#mtype for (self: Object): nullable MType */
8301 val
* VIRTUAL_modelize_class__AType__mtype(val
* self
) {
8302 val
* var
/* : nullable MType */;
8303 val
* var1
/* : nullable MType */;
8304 val
* var3
/* : nullable MType */;
8305 { /* Inline modelize_class#AType#mtype (self) on <self:Object(AType)> */
8306 var3
= self
->attrs
[COLOR_modelize_class__AType___mtype
].val
; /* _mtype on <self:Object(AType)> */
8314 /* method modelize_class#AType#mtype= for (self: AType, nullable MType) */
8315 void modelize_class__AType__mtype_61d(val
* self
, val
* p0
) {
8316 self
->attrs
[COLOR_modelize_class__AType___mtype
].val
= p0
; /* _mtype on <self:AType> */
8319 /* method modelize_class#AType#mtype= for (self: Object, nullable MType) */
8320 void VIRTUAL_modelize_class__AType__mtype_61d(val
* self
, val
* p0
) {
8321 { /* Inline modelize_class#AType#mtype= (self,p0) on <self:Object(AType)> */
8322 self
->attrs
[COLOR_modelize_class__AType___mtype
].val
= p0
; /* _mtype on <self:Object(AType)> */
8327 /* method modelize_class#AType#checked_mtype for (self: AType): Bool */
8328 short int modelize_class__AType__checked_mtype(val
* self
) {
8329 short int var
/* : Bool */;
8330 short int var1
/* : Bool */;
8331 var1
= self
->attrs
[COLOR_modelize_class__AType___checked_mtype
].s
; /* _checked_mtype on <self:AType> */
8336 /* method modelize_class#AType#checked_mtype for (self: Object): Bool */
8337 short int VIRTUAL_modelize_class__AType__checked_mtype(val
* self
) {
8338 short int var
/* : Bool */;
8339 short int var1
/* : Bool */;
8340 short int var3
/* : Bool */;
8341 { /* Inline modelize_class#AType#checked_mtype (self) on <self:Object(AType)> */
8342 var3
= self
->attrs
[COLOR_modelize_class__AType___checked_mtype
].s
; /* _checked_mtype on <self:Object(AType)> */
8350 /* method modelize_class#AType#checked_mtype= for (self: AType, Bool) */
8351 void modelize_class__AType__checked_mtype_61d(val
* self
, short int p0
) {
8352 self
->attrs
[COLOR_modelize_class__AType___checked_mtype
].s
= p0
; /* _checked_mtype on <self:AType> */
8355 /* method modelize_class#AType#checked_mtype= for (self: Object, Bool) */
8356 void VIRTUAL_modelize_class__AType__checked_mtype_61d(val
* self
, short int p0
) {
8357 { /* Inline modelize_class#AType#checked_mtype= (self,p0) on <self:Object(AType)> */
8358 self
->attrs
[COLOR_modelize_class__AType___checked_mtype
].s
= p0
; /* _checked_mtype on <self:Object(AType)> */