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", "src/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", "src/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", "src/phase.nit", 145);
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 short int var4
/* : Bool */;
79 val
* var5
/* : nullable TClassid */;
80 val
* var6
/* : String */;
81 val
* var_name
/* var name: String */;
82 val
* var7
/* : AClasskind */;
83 val
* var_nkind
/* var nkind: nullable AClasskind */;
84 val
* var8
/* : MClassKind */;
85 val
* var_mkind
/* var mkind: MClassKind */;
86 val
* var9
/* : AVisibility */;
87 val
* var_nvisibility
/* var nvisibility: nullable AVisibility */;
88 val
* var10
/* : MVisibility */;
89 val
* var_mvisibility
/* var mvisibility: nullable MVisibility */;
90 val
* var11
/* : ANodes[AFormaldef] */;
91 val
* var13
/* : ANodes[AFormaldef] */;
92 long var14
/* : Int */;
93 val
* var15
/* : MVisibility */;
94 short int var16
/* : Bool */;
95 short int var17
/* : Bool */;
96 val
* var_other
/* var other: nullable Object */;
97 short int var19
/* : Bool */;
98 short int var21
/* : Bool */;
100 val
* var22
/* : String */;
101 char* var23
/* : NativeString */;
102 long var24
/* : Int */;
103 val
* var25
/* : FlatString */;
104 val
* var26
/* : MVisibility */;
105 short int var27
/* : Bool */;
106 short int var28
/* : Bool */;
107 short int var30
/* : Bool */;
108 short int var32
/* : Bool */;
109 static val
* varonce33
;
110 val
* var34
/* : String */;
111 char* var35
/* : NativeString */;
112 long var36
/* : Int */;
113 val
* var37
/* : FlatString */;
114 short int var38
/* : Bool */;
117 static val
* varonce41
;
118 val
* var42
/* : String */;
119 char* var43
/* : NativeString */;
120 long var44
/* : Int */;
121 val
* var45
/* : FlatString */;
122 val
* var46
/* : null */;
123 val
* var47
/* : MClassKind */;
124 val
* var48
/* : null */;
125 val
* var49
/* : MVisibility */;
126 short int var50
/* : Bool */;
129 static val
* varonce53
;
130 val
* var54
/* : String */;
131 char* var55
/* : NativeString */;
132 long var56
/* : Int */;
133 val
* var57
/* : FlatString */;
134 val
* var58
/* : null */;
135 val
* var59
/* : MClassKind */;
136 val
* var60
/* : null */;
137 val
* var61
/* : MVisibility */;
138 val
* var62
/* : nullable MClass */;
139 val
* var_mclass
/* var mclass: nullable MClass */;
140 val
* var63
/* : null */;
141 short int var64
/* : Bool */;
142 short int var65
/* : Bool */;
143 short int var67
/* : Bool */;
144 short int var69
/* : Bool */;
145 short int var70
/* : Bool */;
146 short int var71
/* : Bool */;
149 short int var_
/* var : Bool */;
150 val
* var74
/* : nullable TKwredef */;
151 val
* var75
/* : null */;
152 short int var76
/* : Bool */;
153 short int var77
/* : Bool */;
154 val
* var_other79
/* var other: nullable Object */;
155 short int var80
/* : Bool */;
156 short int var81
/* : Bool */;
157 short int var82
/* : Bool */;
158 static val
* varonce83
;
159 val
* var84
/* : String */;
160 char* var85
/* : NativeString */;
161 long var86
/* : Int */;
162 val
* var87
/* : FlatString */;
163 static val
* varonce88
;
164 val
* var89
/* : String */;
165 char* var90
/* : NativeString */;
166 long var91
/* : Int */;
167 val
* var92
/* : FlatString */;
168 val
* var93
/* : Array[Object] */;
169 long var94
/* : Int */;
170 val
* var95
/* : NativeArray[Object] */;
171 val
* var96
/* : String */;
172 val
* var97
/* : MClass */;
173 short int var98
/* : Bool */;
174 short int var99
/* : Bool */;
177 short int var_102
/* var : Bool */;
178 val
* var103
/* : Map[MClass, AClassdef] */;
179 val
* var105
/* : Map[MClass, AClassdef] */;
180 short int var106
/* : Bool */;
181 static val
* varonce107
;
182 val
* var108
/* : String */;
183 char* var109
/* : NativeString */;
184 long var110
/* : Int */;
185 val
* var111
/* : FlatString */;
186 static val
* varonce112
;
187 val
* var113
/* : String */;
188 char* var114
/* : NativeString */;
189 long var115
/* : Int */;
190 val
* var116
/* : FlatString */;
191 val
* var117
/* : Map[MClass, AClassdef] */;
192 val
* var119
/* : Map[MClass, AClassdef] */;
193 val
* var120
/* : nullable Object */;
194 val
* var121
/* : Location */;
195 long var122
/* : Int */;
196 long var124
/* : Int */;
197 static val
* varonce125
;
198 val
* var126
/* : String */;
199 char* var127
/* : NativeString */;
200 long var128
/* : Int */;
201 val
* var129
/* : FlatString */;
202 val
* var130
/* : Array[Object] */;
203 long var131
/* : Int */;
204 val
* var132
/* : NativeArray[Object] */;
205 val
* var133
/* : Object */;
206 val
* var134
/* : String */;
207 short int var135
/* : Bool */;
208 short int var136
/* : Bool */;
211 short int var_139
/* var : Bool */;
212 val
* var140
/* : nullable TKwredef */;
213 val
* var141
/* : null */;
214 short int var142
/* : Bool */;
215 short int var143
/* : Bool */;
216 short int var145
/* : Bool */;
217 short int var147
/* : Bool */;
218 static val
* varonce148
;
219 val
* var149
/* : String */;
220 char* var150
/* : NativeString */;
221 long var151
/* : Int */;
222 val
* var152
/* : FlatString */;
223 static val
* varonce153
;
224 val
* var154
/* : String */;
225 char* var155
/* : NativeString */;
226 long var156
/* : Int */;
227 val
* var157
/* : FlatString */;
228 val
* var158
/* : Array[Object] */;
229 long var159
/* : Int */;
230 val
* var160
/* : NativeArray[Object] */;
231 val
* var161
/* : String */;
232 long var162
/* : Int */;
233 long var164
/* : Int */;
234 short int var165
/* : Bool */;
235 short int var166
/* : Bool */;
236 short int var168
/* : Bool */;
237 short int var169
/* : Bool */;
238 static val
* varonce170
;
239 val
* var171
/* : String */;
240 char* var172
/* : NativeString */;
241 long var173
/* : Int */;
242 val
* var174
/* : FlatString */;
243 static val
* varonce175
;
244 val
* var176
/* : String */;
245 char* var177
/* : NativeString */;
246 long var178
/* : Int */;
247 val
* var179
/* : FlatString */;
248 long var180
/* : Int */;
249 long var182
/* : Int */;
250 static val
* varonce183
;
251 val
* var184
/* : String */;
252 char* var185
/* : NativeString */;
253 long var186
/* : Int */;
254 val
* var187
/* : FlatString */;
255 val
* var188
/* : Array[Object] */;
256 long var189
/* : Int */;
257 val
* var190
/* : NativeArray[Object] */;
258 val
* var191
/* : Object */;
259 val
* var192
/* : Object */;
260 val
* var193
/* : String */;
261 short int var194
/* : Bool */;
262 short int var195
/* : Bool */;
263 val
* var196
/* : null */;
264 short int var197
/* : Bool */;
265 short int var198
/* : Bool */;
266 short int var200
/* : Bool */;
267 short int var201
/* : Bool */;
268 short int var202
/* : Bool */;
269 short int var_203
/* var : Bool */;
270 val
* var204
/* : MClassKind */;
271 short int var205
/* : Bool */;
272 short int var206
/* : Bool */;
273 short int var208
/* : Bool */;
274 short int var209
/* : Bool */;
275 short int var210
/* : Bool */;
276 short int var_211
/* var : Bool */;
277 val
* var212
/* : MClassKind */;
278 val
* var214
/* : MClassKind */;
279 short int var215
/* : Bool */;
280 short int var216
/* : Bool */;
281 short int var218
/* : Bool */;
282 short int var219
/* : Bool */;
283 short int var220
/* : Bool */;
284 static val
* varonce221
;
285 val
* var222
/* : String */;
286 char* var223
/* : NativeString */;
287 long var224
/* : Int */;
288 val
* var225
/* : FlatString */;
289 val
* var226
/* : MClassKind */;
290 val
* var228
/* : MClassKind */;
291 static val
* varonce229
;
292 val
* var230
/* : String */;
293 char* var231
/* : NativeString */;
294 long var232
/* : Int */;
295 val
* var233
/* : FlatString */;
296 val
* var234
/* : Array[Object] */;
297 long var235
/* : Int */;
298 val
* var236
/* : NativeArray[Object] */;
299 val
* var237
/* : String */;
300 short int var238
/* : Bool */;
301 short int var239
/* : Bool */;
302 val
* var240
/* : null */;
303 short int var241
/* : Bool */;
304 short int var242
/* : Bool */;
305 short int var244
/* : Bool */;
306 short int var245
/* : Bool */;
307 short int var246
/* : Bool */;
308 short int var_247
/* var : Bool */;
309 val
* var248
/* : MVisibility */;
310 short int var249
/* : Bool */;
311 short int var250
/* : Bool */;
312 short int var252
/* : Bool */;
313 short int var253
/* : Bool */;
314 short int var254
/* : Bool */;
315 short int var_255
/* var : Bool */;
316 val
* var256
/* : MVisibility */;
317 val
* var258
/* : MVisibility */;
318 short int var259
/* : Bool */;
319 short int var260
/* : Bool */;
320 short int var262
/* : Bool */;
321 short int var263
/* : Bool */;
322 short int var264
/* : Bool */;
323 static val
* varonce265
;
324 val
* var266
/* : String */;
325 char* var267
/* : NativeString */;
326 long var268
/* : Int */;
327 val
* var269
/* : FlatString */;
328 val
* var270
/* : MVisibility */;
329 val
* var272
/* : MVisibility */;
330 static val
* varonce273
;
331 val
* var274
/* : String */;
332 char* var275
/* : NativeString */;
333 long var276
/* : Int */;
334 val
* var277
/* : FlatString */;
335 val
* var278
/* : Array[Object] */;
336 long var279
/* : Int */;
337 val
* var280
/* : NativeArray[Object] */;
338 val
* var281
/* : String */;
339 val
* var283
/* : Map[MClass, AClassdef] */;
340 val
* var285
/* : Map[MClass, AClassdef] */;
341 short int var286
/* : Bool */;
342 short int var287
/* : Bool */;
343 val
* var288
/* : Map[MClass, AClassdef] */;
344 val
* var290
/* : Map[MClass, AClassdef] */;
345 val
* var291
/* : Array[AClassdef] */;
346 long var292
/* : Int */;
347 val
* var_293
/* var : Array[AClassdef] */;
348 val
* var295
/* : Map[MClass, AClassdef] */;
349 val
* var297
/* : Map[MClass, AClassdef] */;
350 val
* var298
/* : nullable Object */;
351 val
* var299
/* : nullable Array[AClassdef] */;
352 val
* var301
/* : nullable Array[AClassdef] */;
356 { /* Inline modelbuilder#AModule#mmodule (var_nmodule) on <var_nmodule:AModule> */
357 var2
= var_nmodule
->attrs
[COLOR_modelbuilder__AModule___mmodule
].val
; /* _mmodule on <var_nmodule:AModule> */
362 if (unlikely(var
== NULL
)) {
363 PRINT_ERROR("Runtime error: %s", "Cast failed");
364 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 39);
370 /* <var_nclassdef:AClassdef> isa AStdClassdef */
371 cltype
= type_parser_nodes__AStdClassdef
.color
;
372 idtype
= type_parser_nodes__AStdClassdef
.id
;
373 if(cltype
>= var_nclassdef
->type
->table_size
) {
376 var4
= var_nclassdef
->type
->type_table
[cltype
] == idtype
;
380 var5
= parser_nodes__AStdClassdef__n_id(var_nclassdef
);
383 PRINT_ERROR("Runtime error: %s", "Receiver is null");
384 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 48);
387 var6
= lexer_work__Token__text(var5
);
391 var7
= parser_nodes__AStdClassdef__n_classkind(var_nclassdef
);
395 var8
= ((val
* (*)(val
*))(var_nkind
->class->vft
[COLOR_modelize_class__AClasskind__mkind
]))(var_nkind
) /* mkind on <var_nkind:nullable AClasskind(AClasskind)>*/;
399 var9
= parser_nodes__AStdClassdef__n_visibility(var_nclassdef
);
401 var_nvisibility
= var9
;
403 var10
= ((val
* (*)(val
*))(var_nvisibility
->class->vft
[COLOR_modelbuilder__AVisibility__mvisibility
]))(var_nvisibility
) /* mvisibility on <var_nvisibility:nullable AVisibility(AVisibility)>*/;
405 var_mvisibility
= var10
;
407 { /* Inline parser_nodes#AStdClassdef#n_formaldefs (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
408 var13
= var_nclassdef
->attrs
[COLOR_parser_nodes__AStdClassdef___n_formaldefs
].val
; /* _n_formaldefs on <var_nclassdef:AClassdef(AStdClassdef)> */
409 if (unlikely(var13
== NULL
)) {
410 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_formaldefs");
411 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 824);
419 var14
= parser_nodes__ANodes__length(var11
);
423 var15
= model_base__Object__protected_visibility(self
);
426 { /* Inline kernel#Object#== (var_mvisibility,var15) on <var_mvisibility:nullable MVisibility(MVisibility)> */
429 { /* Inline kernel#Object#is_same_instance (var_mvisibility,var_other) on <var_mvisibility:nullable MVisibility(MVisibility)> */
430 var21
= var_mvisibility
== var_other
;
446 var23
= "Error: only properties can be protected.";
448 var25
= string__NativeString__to_s_with_length(var23
, var24
);
453 modelbuilder__ModelBuilder__error(self
, var_nvisibility
, var22
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
458 var26
= model_base__Object__intrude_visibility(self
);
461 { /* Inline kernel#Object#== (var_mvisibility,var26) on <var_mvisibility:nullable MVisibility(MVisibility)> */
464 { /* Inline kernel#Object#is_same_instance (var_mvisibility,var_other) on <var_mvisibility:nullable MVisibility(MVisibility)> */
465 var32
= var_mvisibility
== var_other
;
481 var35
= "Error: intrude is not a legal visibility for classes.";
483 var37
= string__NativeString__to_s_with_length(var35
, var36
);
488 modelbuilder__ModelBuilder__error(self
, var_nvisibility
, var34
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
495 /* <var_nclassdef:AClassdef> isa ATopClassdef */
496 cltype39
= type_parser_nodes__ATopClassdef
.color
;
497 idtype40
= type_parser_nodes__ATopClassdef
.id
;
498 if(cltype39
>= var_nclassdef
->type
->table_size
) {
501 var38
= var_nclassdef
->type
->type_table
[cltype39
] == idtype40
;
509 var45
= string__NativeString__to_s_with_length(var43
, var44
);
517 var47
= model__Object__interface_kind(self
);
521 var_nvisibility
= var48
;
523 var49
= model_base__Object__public_visibility(self
);
525 var_mvisibility
= var49
;
527 /* <var_nclassdef:AClassdef> isa AMainClassdef */
528 cltype51
= type_parser_nodes__AMainClassdef
.color
;
529 idtype52
= type_parser_nodes__AMainClassdef
.id
;
530 if(cltype51
>= var_nclassdef
->type
->table_size
) {
533 var50
= var_nclassdef
->type
->type_table
[cltype51
] == idtype52
;
541 var57
= string__NativeString__to_s_with_length(var55
, var56
);
549 var59
= model__Object__concrete_kind(self
);
553 var_nvisibility
= var60
;
555 var61
= model_base__Object__public_visibility(self
);
557 var_mvisibility
= var61
;
559 PRINT_ERROR("Runtime error: %s", "Aborted");
560 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 74);
566 var62
= modelbuilder__ModelBuilder__try_get_mclass_by_name(self
, var_nclassdef
, var_mmodule
, var_name
);
570 if (var_mclass
== NULL
) {
571 var64
= 1; /* is null */
573 var64
= 0; /* arg is null but recv is not */
576 { /* Inline kernel#Object#== (var_mclass,var63) on <var_mclass:nullable MClass> */
579 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
580 var69
= var_mclass
== var_other
;
593 /* <var_nclassdef:AClassdef> isa AStdClassdef */
594 cltype72
= type_parser_nodes__AStdClassdef
.color
;
595 idtype73
= type_parser_nodes__AStdClassdef
.id
;
596 if(cltype72
>= var_nclassdef
->type
->table_size
) {
599 var71
= var_nclassdef
->type
->type_table
[cltype72
] == idtype73
;
604 var74
= parser_nodes__AStdClassdef__n_kwredef(var_nclassdef
);
608 var76
= 0; /* is null */
610 var76
= 1; /* arg is null and recv is not */
613 { /* Inline kernel#Object#!= (var74,var75) on <var74:nullable TKwredef> */
616 var81
= ((short int (*)(val
*, val
*))(var74
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var74
, var_other79
) /* == on <var74:nullable TKwredef(TKwredef)>*/;
634 var85
= "Redef error: No imported class ";
636 var87
= string__NativeString__to_s_with_length(var85
, var86
);
643 var90
= " to refine.";
645 var92
= string__NativeString__to_s_with_length(var90
, var91
);
649 var93
= NEW_array__Array(&type_array__Arraykernel__Object
);
650 { /* var93 = array_instance Array[Object] */
652 var95
= NEW_array__NativeArray(var94
, &type_array__NativeArraykernel__Object
);
653 ((struct instance_array__NativeArray
*)var95
)->values
[0] = (val
*) var84
;
654 ((struct instance_array__NativeArray
*)var95
)->values
[1] = (val
*) var_name
;
655 ((struct instance_array__NativeArray
*)var95
)->values
[2] = (val
*) var89
;
657 ((void (*)(val
*, val
*, long))(var93
->class->vft
[COLOR_array__Array__with_native
]))(var93
, var95
, var94
) /* with_native on <var93:Array[Object]>*/;
661 var96
= ((val
* (*)(val
*))(var93
->class->vft
[COLOR_string__Object__to_s
]))(var93
) /* to_s on <var93:Array[Object]>*/;
664 modelbuilder__ModelBuilder__error(self
, var_nclassdef
, var96
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
669 var97
= NEW_model__MClass(&type_model__MClass
);
671 model__MClass__init(var97
, var_mmodule
, var_name
, var_arity
, var_mkind
, var_mvisibility
); /* Direct call model#MClass#init on <var97:MClass>*/
675 /* <var_nclassdef:AClassdef> isa AStdClassdef */
676 cltype100
= type_parser_nodes__AStdClassdef
.color
;
677 idtype101
= type_parser_nodes__AStdClassdef
.id
;
678 if(cltype100
>= var_nclassdef
->type
->table_size
) {
681 var99
= var_nclassdef
->type
->type_table
[cltype100
] == idtype101
;
686 { /* Inline modelize_class#AModule#mclass2nclassdef (var_nmodule) on <var_nmodule:AModule> */
687 var105
= var_nmodule
->attrs
[COLOR_modelize_class__AModule___mclass2nclassdef
].val
; /* _mclass2nclassdef on <var_nmodule:AModule> */
688 if (unlikely(var105
== NULL
)) {
689 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass2nclassdef");
690 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 515);
694 RET_LABEL104
:(void)0;
698 var106
= abstract_collection__MapRead__has_key(var103
, var_mclass
);
708 var109
= "Error: A class ";
710 var111
= string__NativeString__to_s_with_length(var109
, var110
);
717 var114
= " is already defined at line ";
719 var116
= string__NativeString__to_s_with_length(var114
, var115
);
724 { /* Inline modelize_class#AModule#mclass2nclassdef (var_nmodule) on <var_nmodule:AModule> */
725 var119
= var_nmodule
->attrs
[COLOR_modelize_class__AModule___mclass2nclassdef
].val
; /* _mclass2nclassdef on <var_nmodule:AModule> */
726 if (unlikely(var119
== NULL
)) {
727 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass2nclassdef");
728 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 515);
732 RET_LABEL118
:(void)0;
736 var120
= ((val
* (*)(val
*, val
*))(var117
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var117
, var_mclass
) /* [] on <var117:Map[MClass, AClassdef]>*/;
739 var121
= parser_nodes__ANode__location(var120
);
742 { /* Inline location#Location#line_start (var121) on <var121:Location> */
743 var124
= var121
->attrs
[COLOR_location__Location___line_start
].l
; /* _line_start on <var121:Location> */
745 RET_LABEL123
:(void)0;
753 var129
= string__NativeString__to_s_with_length(var127
, var128
);
757 var130
= NEW_array__Array(&type_array__Arraykernel__Object
);
758 { /* var130 = array_instance Array[Object] */
760 var132
= NEW_array__NativeArray(var131
, &type_array__NativeArraykernel__Object
);
761 ((struct instance_array__NativeArray
*)var132
)->values
[0] = (val
*) var108
;
762 ((struct instance_array__NativeArray
*)var132
)->values
[1] = (val
*) var_name
;
763 ((struct instance_array__NativeArray
*)var132
)->values
[2] = (val
*) var113
;
764 var133
= BOX_kernel__Int(var122
); /* autobox from Int to Object */
765 ((struct instance_array__NativeArray
*)var132
)->values
[3] = (val
*) var133
;
766 ((struct instance_array__NativeArray
*)var132
)->values
[4] = (val
*) var126
;
768 ((void (*)(val
*, val
*, long))(var130
->class->vft
[COLOR_array__Array__with_native
]))(var130
, var132
, var131
) /* with_native on <var130:Array[Object]>*/;
772 var134
= ((val
* (*)(val
*))(var130
->class->vft
[COLOR_string__Object__to_s
]))(var130
) /* to_s on <var130:Array[Object]>*/;
775 modelbuilder__ModelBuilder__error(self
, var_nclassdef
, var134
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
779 /* <var_nclassdef:AClassdef> isa AStdClassdef */
780 cltype137
= type_parser_nodes__AStdClassdef
.color
;
781 idtype138
= type_parser_nodes__AStdClassdef
.id
;
782 if(cltype137
>= var_nclassdef
->type
->table_size
) {
785 var136
= var_nclassdef
->type
->type_table
[cltype137
] == idtype138
;
790 var140
= parser_nodes__AStdClassdef__n_kwredef(var_nclassdef
);
793 if (var140
== NULL
) {
794 var142
= 1; /* is null */
796 var142
= 0; /* arg is null but recv is not */
799 { /* Inline kernel#Object#== (var140,var141) on <var140:nullable TKwredef> */
802 { /* Inline kernel#Object#is_same_instance (var140,var_other) on <var140:nullable TKwredef(TKwredef)> */
803 var147
= var140
== var_other
;
806 RET_LABEL146
:(void)0;
811 RET_LABEL144
:(void)0;
823 var150
= "Redef error: ";
825 var152
= string__NativeString__to_s_with_length(var150
, var151
);
832 var155
= " is an imported class. Add the redef keyword to refine it.";
834 var157
= string__NativeString__to_s_with_length(var155
, var156
);
838 var158
= NEW_array__Array(&type_array__Arraykernel__Object
);
839 { /* var158 = array_instance Array[Object] */
841 var160
= NEW_array__NativeArray(var159
, &type_array__NativeArraykernel__Object
);
842 ((struct instance_array__NativeArray
*)var160
)->values
[0] = (val
*) var149
;
843 ((struct instance_array__NativeArray
*)var160
)->values
[1] = (val
*) var_name
;
844 ((struct instance_array__NativeArray
*)var160
)->values
[2] = (val
*) var154
;
846 ((void (*)(val
*, val
*, long))(var158
->class->vft
[COLOR_array__Array__with_native
]))(var158
, var160
, var159
) /* with_native on <var158:Array[Object]>*/;
850 var161
= ((val
* (*)(val
*))(var158
->class->vft
[COLOR_string__Object__to_s
]))(var158
) /* to_s on <var158:Array[Object]>*/;
853 modelbuilder__ModelBuilder__error(self
, var_nclassdef
, var161
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
858 { /* Inline model#MClass#arity (var_mclass) on <var_mclass:nullable MClass(MClass)> */
859 var164
= var_mclass
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <var_mclass:nullable MClass(MClass)> */
861 RET_LABEL163
:(void)0;
865 { /* Inline kernel#Int#!= (var162,var_arity) on <var162:Int> */
866 var168
= var162
== var_arity
;
870 RET_LABEL167
:(void)0;
878 var172
= "Redef error: Formal parameter arity missmatch; got ";
880 var174
= string__NativeString__to_s_with_length(var172
, var173
);
887 var177
= ", expected ";
889 var179
= string__NativeString__to_s_with_length(var177
, var178
);
894 { /* Inline model#MClass#arity (var_mclass) on <var_mclass:nullable MClass(MClass)> */
895 var182
= var_mclass
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <var_mclass:nullable MClass(MClass)> */
897 RET_LABEL181
:(void)0;
905 var187
= string__NativeString__to_s_with_length(var185
, var186
);
909 var188
= NEW_array__Array(&type_array__Arraykernel__Object
);
910 { /* var188 = array_instance Array[Object] */
912 var190
= NEW_array__NativeArray(var189
, &type_array__NativeArraykernel__Object
);
913 ((struct instance_array__NativeArray
*)var190
)->values
[0] = (val
*) var171
;
914 var191
= BOX_kernel__Int(var_arity
); /* autobox from Int to Object */
915 ((struct instance_array__NativeArray
*)var190
)->values
[1] = (val
*) var191
;
916 ((struct instance_array__NativeArray
*)var190
)->values
[2] = (val
*) var176
;
917 var192
= BOX_kernel__Int(var180
); /* autobox from Int to Object */
918 ((struct instance_array__NativeArray
*)var190
)->values
[3] = (val
*) var192
;
919 ((struct instance_array__NativeArray
*)var190
)->values
[4] = (val
*) var184
;
921 ((void (*)(val
*, val
*, long))(var188
->class->vft
[COLOR_array__Array__with_native
]))(var188
, var190
, var189
) /* with_native on <var188:Array[Object]>*/;
925 var193
= ((val
* (*)(val
*))(var188
->class->vft
[COLOR_string__Object__to_s
]))(var188
) /* to_s on <var188:Array[Object]>*/;
928 modelbuilder__ModelBuilder__error(self
, var_nclassdef
, var193
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
933 if (var_nkind
== NULL
) {
934 var197
= 0; /* is null */
936 var197
= 1; /* arg is null and recv is not */
939 { /* Inline kernel#Object#!= (var_nkind,var196) on <var_nkind:nullable AClasskind> */
940 var_other79
= var196
;
942 var201
= ((short int (*)(val
*, val
*))(var_nkind
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_nkind
, var_other79
) /* == on <var_nkind:nullable AClasskind(AClasskind)>*/;
948 RET_LABEL199
:(void)0;
955 var204
= model__Object__concrete_kind(self
);
958 { /* Inline kernel#Object#!= (var_mkind,var204) on <var_mkind:MClassKind> */
959 var_other79
= var204
;
961 var209
= ((short int (*)(val
*, val
*))(var_mkind
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mkind
, var_other79
) /* == on <var_mkind:MClassKind>*/;
967 RET_LABEL207
:(void)0;
978 { /* Inline model#MClass#kind (var_mclass) on <var_mclass:nullable MClass(MClass)> */
979 var214
= var_mclass
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var_mclass:nullable MClass(MClass)> */
980 if (unlikely(var214
== NULL
)) {
981 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
982 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
986 RET_LABEL213
:(void)0;
990 { /* Inline kernel#Object#!= (var212,var_mkind) on <var212:MClassKind> */
991 var_other79
= var_mkind
;
993 var219
= ((short int (*)(val
*, val
*))(var212
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var212
, var_other79
) /* == on <var212:MClassKind>*/;
999 RET_LABEL217
:(void)0;
1009 var222
= varonce221
;
1011 var223
= "Error: refinement changed the kind from a ";
1013 var225
= string__NativeString__to_s_with_length(var223
, var224
);
1015 varonce221
= var222
;
1018 { /* Inline model#MClass#kind (var_mclass) on <var_mclass:nullable MClass(MClass)> */
1019 var228
= var_mclass
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var_mclass:nullable MClass(MClass)> */
1020 if (unlikely(var228
== NULL
)) {
1021 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
1022 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
1026 RET_LABEL227
:(void)0;
1030 var230
= varonce229
;
1034 var233
= string__NativeString__to_s_with_length(var231
, var232
);
1036 varonce229
= var230
;
1038 var234
= NEW_array__Array(&type_array__Arraykernel__Object
);
1039 { /* var234 = array_instance Array[Object] */
1041 var236
= NEW_array__NativeArray(var235
, &type_array__NativeArraykernel__Object
);
1042 ((struct instance_array__NativeArray
*)var236
)->values
[0] = (val
*) var222
;
1043 ((struct instance_array__NativeArray
*)var236
)->values
[1] = (val
*) var226
;
1044 ((struct instance_array__NativeArray
*)var236
)->values
[2] = (val
*) var230
;
1045 ((struct instance_array__NativeArray
*)var236
)->values
[3] = (val
*) var_mkind
;
1047 ((void (*)(val
*, val
*, long))(var234
->class->vft
[COLOR_array__Array__with_native
]))(var234
, var236
, var235
) /* with_native on <var234:Array[Object]>*/;
1051 var237
= ((val
* (*)(val
*))(var234
->class->vft
[COLOR_string__Object__to_s
]))(var234
) /* to_s on <var234:Array[Object]>*/;
1054 modelbuilder__ModelBuilder__error(self
, var_nkind
, var237
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
1058 if (var_nvisibility
== NULL
) {
1059 var241
= 0; /* is null */
1061 var241
= 1; /* arg is null and recv is not */
1064 { /* Inline kernel#Object#!= (var_nvisibility,var240) on <var_nvisibility:nullable AVisibility> */
1065 var_other79
= var240
;
1067 var245
= ((short int (*)(val
*, val
*))(var_nvisibility
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_nvisibility
, var_other79
) /* == on <var_nvisibility:nullable AVisibility(AVisibility)>*/;
1073 RET_LABEL243
:(void)0;
1080 var248
= model_base__Object__public_visibility(self
);
1083 { /* Inline kernel#Object#!= (var_mvisibility,var248) on <var_mvisibility:nullable MVisibility(MVisibility)> */
1084 var_other79
= var248
;
1086 var253
= ((short int (*)(val
*, val
*))(var_mvisibility
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mvisibility
, var_other79
) /* == on <var_mvisibility:nullable MVisibility(MVisibility)>*/;
1092 RET_LABEL251
:(void)0;
1103 { /* Inline model#MClass#visibility (var_mclass) on <var_mclass:nullable MClass(MClass)> */
1104 var258
= var_mclass
->attrs
[COLOR_model__MClass___visibility
].val
; /* _visibility on <var_mclass:nullable MClass(MClass)> */
1105 if (unlikely(var258
== NULL
)) {
1106 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
1107 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 359);
1111 RET_LABEL257
:(void)0;
1115 { /* Inline kernel#Object#!= (var256,var_mvisibility) on <var256:MVisibility> */
1116 var_other79
= var_mvisibility
;
1118 var263
= ((short int (*)(val
*, val
*))(var256
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var256
, var_other79
) /* == on <var256:MVisibility>*/;
1124 RET_LABEL261
:(void)0;
1134 var266
= varonce265
;
1136 var267
= "Error: refinement changed the visibility from a ";
1138 var269
= string__NativeString__to_s_with_length(var267
, var268
);
1140 varonce265
= var266
;
1143 { /* Inline model#MClass#visibility (var_mclass) on <var_mclass:nullable MClass(MClass)> */
1144 var272
= var_mclass
->attrs
[COLOR_model__MClass___visibility
].val
; /* _visibility on <var_mclass:nullable MClass(MClass)> */
1145 if (unlikely(var272
== NULL
)) {
1146 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
1147 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 359);
1151 RET_LABEL271
:(void)0;
1155 var274
= varonce273
;
1159 var277
= string__NativeString__to_s_with_length(var275
, var276
);
1161 varonce273
= var274
;
1163 var278
= NEW_array__Array(&type_array__Arraykernel__Object
);
1164 { /* var278 = array_instance Array[Object] */
1166 var280
= NEW_array__NativeArray(var279
, &type_array__NativeArraykernel__Object
);
1167 ((struct instance_array__NativeArray
*)var280
)->values
[0] = (val
*) var266
;
1168 ((struct instance_array__NativeArray
*)var280
)->values
[1] = (val
*) var270
;
1169 ((struct instance_array__NativeArray
*)var280
)->values
[2] = (val
*) var274
;
1170 ((struct instance_array__NativeArray
*)var280
)->values
[3] = (val
*) var_mvisibility
;
1172 ((void (*)(val
*, val
*, long))(var278
->class->vft
[COLOR_array__Array__with_native
]))(var278
, var280
, var279
) /* with_native on <var278:Array[Object]>*/;
1176 var281
= ((val
* (*)(val
*))(var278
->class->vft
[COLOR_string__Object__to_s
]))(var278
) /* to_s on <var278:Array[Object]>*/;
1179 modelbuilder__ModelBuilder__error(self
, var_nvisibility
, var281
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
1189 { /* Inline modelize_class#AClassdef#mclass= (var_nclassdef,var_mclass) on <var_nclassdef:AClassdef> */
1190 var_nclassdef
->attrs
[COLOR_modelize_class__AClassdef___mclass
].val
= var_mclass
; /* _mclass on <var_nclassdef:AClassdef> */
1191 RET_LABEL282
:(void)0;
1195 { /* Inline modelize_class#AModule#mclass2nclassdef (var_nmodule) on <var_nmodule:AModule> */
1196 var285
= var_nmodule
->attrs
[COLOR_modelize_class__AModule___mclass2nclassdef
].val
; /* _mclass2nclassdef on <var_nmodule:AModule> */
1197 if (unlikely(var285
== NULL
)) {
1198 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass2nclassdef");
1199 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 515);
1203 RET_LABEL284
:(void)0;
1207 var286
= abstract_collection__MapRead__has_key(var283
, var_mclass
);
1212 { /* Inline modelize_class#AModule#mclass2nclassdef (var_nmodule) on <var_nmodule:AModule> */
1213 var290
= var_nmodule
->attrs
[COLOR_modelize_class__AModule___mclass2nclassdef
].val
; /* _mclass2nclassdef on <var_nmodule:AModule> */
1214 if (unlikely(var290
== NULL
)) {
1215 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass2nclassdef");
1216 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 515);
1220 RET_LABEL289
:(void)0;
1224 ((void (*)(val
*, val
*, val
*))(var288
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var288
, var_mclass
, var_nclassdef
) /* []= on <var288:Map[MClass, AClassdef]>*/;
1226 var291
= NEW_array__Array(&type_array__Arrayparser_nodes__AClassdef
);
1229 array__Array__with_capacity(var291
, var292
); /* Direct call array#Array#with_capacity on <var291:Array[AClassdef]>*/
1233 array__AbstractArray__push(var_293
, var_nclassdef
); /* Direct call array#AbstractArray#push on <var_293:Array[AClassdef]>*/
1236 { /* Inline modelize_class#AClassdef#all_defs= (var_nclassdef,var_293) on <var_nclassdef:AClassdef> */
1237 var_nclassdef
->attrs
[COLOR_modelize_class__AClassdef___all_defs
].val
= var_293
; /* _all_defs on <var_nclassdef:AClassdef> */
1238 RET_LABEL294
:(void)0;
1243 { /* Inline modelize_class#AModule#mclass2nclassdef (var_nmodule) on <var_nmodule:AModule> */
1244 var297
= var_nmodule
->attrs
[COLOR_modelize_class__AModule___mclass2nclassdef
].val
; /* _mclass2nclassdef on <var_nmodule:AModule> */
1245 if (unlikely(var297
== NULL
)) {
1246 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass2nclassdef");
1247 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 515);
1251 RET_LABEL296
:(void)0;
1255 var298
= ((val
* (*)(val
*, val
*))(var295
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var295
, var_mclass
) /* [] on <var295:Map[MClass, AClassdef]>*/;
1258 { /* Inline modelize_class#AClassdef#all_defs (var298) on <var298:nullable Object(AClassdef)> */
1259 var301
= var298
->attrs
[COLOR_modelize_class__AClassdef___all_defs
].val
; /* _all_defs on <var298:nullable Object(AClassdef)> */
1261 RET_LABEL300
:(void)0;
1264 if (var299
== NULL
) {
1265 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1266 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 104);
1269 array__Array__add(var299
, var_nclassdef
); /* Direct call array#Array#add on <var299:nullable Array[AClassdef]>*/
1274 /* method modelize_class#ModelBuilder#build_a_mclass for (self: Object, AModule, AClassdef) */
1275 void VIRTUAL_modelize_class__ModelBuilder__build_a_mclass(val
* self
, val
* p0
, val
* p1
) {
1276 modelize_class__ModelBuilder__build_a_mclass(self
, p0
, p1
); /* Direct call modelize_class#ModelBuilder#build_a_mclass on <self:Object(ModelBuilder)>*/
1279 /* method modelize_class#ModelBuilder#build_a_mclassdef for (self: ModelBuilder, AModule, AClassdef) */
1280 void modelize_class__ModelBuilder__build_a_mclassdef(val
* self
, val
* p0
, val
* p1
) {
1281 val
* var_nmodule
/* var nmodule: AModule */;
1282 val
* var_nclassdef
/* var nclassdef: AClassdef */;
1283 val
* var
/* : nullable MModule */;
1284 val
* var2
/* : nullable MModule */;
1285 val
* var_mmodule
/* var mmodule: MModule */;
1286 static val
* varonce
;
1287 val
* var3
/* : String */;
1288 char* var4
/* : NativeString */;
1289 long var5
/* : Int */;
1290 val
* var6
/* : FlatString */;
1291 val
* var7
/* : nullable MClass */;
1292 val
* var_objectclass
/* var objectclass: nullable MClass */;
1293 val
* var8
/* : nullable MClass */;
1294 val
* var10
/* : nullable MClass */;
1295 val
* var_mclass
/* var mclass: nullable MClass */;
1296 val
* var11
/* : null */;
1297 short int var12
/* : Bool */;
1298 short int var13
/* : Bool */;
1299 val
* var_other
/* var other: nullable Object */;
1300 short int var15
/* : Bool */;
1301 short int var17
/* : Bool */;
1302 val
* var18
/* : Map[MClass, AClassdef] */;
1303 val
* var20
/* : Map[MClass, AClassdef] */;
1304 val
* var21
/* : nullable Object */;
1305 val
* var_other_nclassdef
/* var other_nclassdef: AClassdef */;
1306 short int var22
/* : Bool */;
1307 short int var23
/* : Bool */;
1308 val
* var_other25
/* var other: nullable Object */;
1309 short int var26
/* : Bool */;
1310 short int var27
/* : Bool */;
1311 short int var28
/* : Bool */;
1312 short int var29
/* : Bool */;
1315 short int var30
/* : Bool */;
1316 val
* var31
/* : nullable MClassDef */;
1317 val
* var33
/* : nullable MClassDef */;
1318 val
* var35
/* : Array[String] */;
1319 val
* var_names
/* var names: Array[String] */;
1320 val
* var36
/* : Array[MType] */;
1321 val
* var_bounds
/* var bounds: Array[MType] */;
1322 short int var37
/* : Bool */;
1323 short int var38
/* : Bool */;
1326 short int var_
/* var : Bool */;
1327 long var41
/* : Int */;
1328 long var43
/* : Int */;
1329 long var44
/* : Int */;
1330 short int var45
/* : Bool */;
1331 short int var47
/* : Bool */;
1334 const char* var_class_name
;
1335 short int var50
/* : Bool */;
1336 val
* var51
/* : Range[Int] */;
1337 long var52
/* : Int */;
1338 long var53
/* : Int */;
1339 long var55
/* : Int */;
1340 val
* var56
/* : Discrete */;
1341 val
* var57
/* : Discrete */;
1342 val
* var58
/* : Iterator[Discrete] */;
1343 short int var59
/* : Bool */;
1344 val
* var60
/* : nullable Object */;
1345 long var_i
/* var i: Int */;
1346 long var61
/* : Int */;
1347 val
* var62
/* : ANodes[AFormaldef] */;
1348 val
* var64
/* : ANodes[AFormaldef] */;
1349 val
* var65
/* : ANode */;
1350 val
* var_nfd
/* var nfd: AFormaldef */;
1351 val
* var66
/* : TClassid */;
1352 val
* var67
/* : String */;
1353 val
* var_ptname
/* var ptname: String */;
1354 short int var68
/* : Bool */;
1355 static val
* varonce69
;
1356 val
* var70
/* : String */;
1357 char* var71
/* : NativeString */;
1358 long var72
/* : Int */;
1359 val
* var73
/* : FlatString */;
1360 static val
* varonce74
;
1361 val
* var75
/* : String */;
1362 char* var76
/* : NativeString */;
1363 long var77
/* : Int */;
1364 val
* var78
/* : FlatString */;
1365 val
* var79
/* : Array[Object] */;
1366 long var80
/* : Int */;
1367 val
* var81
/* : NativeArray[Object] */;
1368 val
* var82
/* : String */;
1369 val
* var83
/* : SequenceRead[Char] */;
1370 val
* var85
/* : SequenceRead[Char] */;
1371 val
* var86
/* : Iterator[nullable Object] */;
1372 short int var87
/* : Bool */;
1373 val
* var88
/* : nullable Object */;
1374 char var_c
/* var c: Char */;
1375 char var89
/* : Char */;
1376 short int var90
/* : Bool */;
1377 char var91
/* : Char */;
1378 short int var92
/* : Bool */;
1379 short int var94
/* : Bool */;
1382 const char* var_class_name97
;
1383 short int var98
/* : Bool */;
1384 short int var_99
/* var : Bool */;
1385 char var100
/* : Char */;
1386 short int var101
/* : Bool */;
1387 short int var103
/* : Bool */;
1390 const char* var_class_name106
;
1391 short int var107
/* : Bool */;
1392 static val
* varonce108
;
1393 val
* var109
/* : String */;
1394 char* var110
/* : NativeString */;
1395 long var111
/* : Int */;
1396 val
* var112
/* : FlatString */;
1397 val
* var113
/* : Array[Object] */;
1398 long var114
/* : Int */;
1399 val
* var115
/* : NativeArray[Object] */;
1400 val
* var116
/* : String */;
1401 val
* var117
/* : MClassType */;
1402 val
* var119
/* : MClassType */;
1403 val
* var120
/* : Array[MType] */;
1404 val
* var122
/* : Array[MType] */;
1405 val
* var123
/* : nullable Object */;
1406 short int var124
/* : Bool */;
1409 const char* var_class_name127
;
1410 val
* var130
/* : Range[Int] */;
1411 long var131
/* : Int */;
1412 long var132
/* : Int */;
1413 long var134
/* : Int */;
1414 val
* var135
/* : Discrete */;
1415 val
* var136
/* : Discrete */;
1416 val
* var137
/* : Iterator[Discrete] */;
1417 short int var138
/* : Bool */;
1418 val
* var139
/* : nullable Object */;
1419 long var_i140
/* var i: Int */;
1420 long var141
/* : Int */;
1421 val
* var142
/* : ANodes[AFormaldef] */;
1422 val
* var144
/* : ANodes[AFormaldef] */;
1423 val
* var145
/* : ANode */;
1424 val
* var_nfd146
/* var nfd: AFormaldef */;
1425 val
* var147
/* : nullable AType */;
1426 val
* var_nfdt
/* var nfdt: nullable AType */;
1427 val
* var148
/* : null */;
1428 short int var149
/* : Bool */;
1429 short int var150
/* : Bool */;
1430 short int var152
/* : Bool */;
1431 short int var153
/* : Bool */;
1432 short int var154
/* : Bool */;
1433 val
* var155
/* : null */;
1434 short int var156
/* : Bool */;
1435 val
* var157
/* : nullable MType */;
1436 val
* var_bound
/* var bound: nullable MType */;
1437 val
* var158
/* : null */;
1438 short int var159
/* : Bool */;
1439 short int var160
/* : Bool */;
1440 short int var162
/* : Bool */;
1441 short int var164
/* : Bool */;
1442 short int var165
/* : Bool */;
1443 static val
* varonce166
;
1444 val
* var167
/* : String */;
1445 char* var168
/* : NativeString */;
1446 long var169
/* : Int */;
1447 val
* var170
/* : FlatString */;
1448 val
* var171
/* : nullable Object */;
1449 static val
* varonce172
;
1450 val
* var173
/* : String */;
1451 char* var174
/* : NativeString */;
1452 long var175
/* : Int */;
1453 val
* var176
/* : FlatString */;
1454 val
* var177
/* : Array[Object] */;
1455 long var178
/* : Int */;
1456 val
* var179
/* : NativeArray[Object] */;
1457 val
* var180
/* : String */;
1458 short int var182
/* : Bool */;
1459 short int var183
/* : Bool */;
1462 short int var_186
/* var : Bool */;
1463 val
* var187
/* : MClass */;
1464 val
* var189
/* : MClass */;
1465 val
* var190
/* : MClassKind */;
1466 val
* var192
/* : MClassKind */;
1467 val
* var193
/* : MClassKind */;
1468 short int var194
/* : Bool */;
1469 short int var195
/* : Bool */;
1470 short int var197
/* : Bool */;
1471 short int var199
/* : Bool */;
1472 static val
* varonce200
;
1473 val
* var201
/* : String */;
1474 char* var202
/* : NativeString */;
1475 long var203
/* : Int */;
1476 val
* var204
/* : FlatString */;
1477 static val
* varonce205
;
1478 val
* var206
/* : String */;
1479 char* var207
/* : NativeString */;
1480 long var208
/* : Int */;
1481 val
* var209
/* : FlatString */;
1482 val
* var210
/* : Array[Object] */;
1483 long var211
/* : Int */;
1484 val
* var212
/* : NativeArray[Object] */;
1485 val
* var213
/* : String */;
1486 val
* var214
/* : Array[MClassDef] */;
1487 val
* var216
/* : Array[MClassDef] */;
1488 short int var217
/* : Bool */;
1489 val
* var218
/* : MClassType */;
1490 val
* var220
/* : MClassType */;
1491 val
* var221
/* : MType */;
1492 val
* var_bound222
/* var bound: MType */;
1493 val
* var224
/* : MClassDef */;
1494 val
* var225
/* : MClassType */;
1495 val
* var227
/* : MClassType */;
1496 val
* var228
/* : Array[MType] */;
1497 val
* var230
/* : Array[MType] */;
1498 val
* var231
/* : nullable Object */;
1499 val
* var_bound232
/* var bound: MType */;
1500 val
* var235
/* : MClassType */;
1501 val
* var_bound_mtype
/* var bound_mtype: MClassType */;
1502 val
* var236
/* : MClassDef */;
1503 val
* var237
/* : Location */;
1504 val
* var_mclassdef
/* var mclassdef: MClassDef */;
1505 val
* var239
/* : HashMap[MClassDef, AClassdef] */;
1506 val
* var241
/* : HashMap[MClassDef, AClassdef] */;
1507 short int var242
/* : Bool */;
1510 val
* var245
/* : nullable ADoc */;
1511 val
* var_ndoc
/* var ndoc: nullable ADoc */;
1512 val
* var246
/* : null */;
1513 short int var247
/* : Bool */;
1514 short int var248
/* : Bool */;
1515 short int var250
/* : Bool */;
1516 short int var251
/* : Bool */;
1517 short int var252
/* : Bool */;
1518 val
* var253
/* : MDoc */;
1519 val
* var_mdoc
/* var mdoc: MDoc */;
1520 short int var256
/* : Bool */;
1521 val
* var257
/* : ToolContext */;
1522 val
* var259
/* : ToolContext */;
1523 static val
* varonce260
;
1524 val
* var261
/* : String */;
1525 char* var262
/* : NativeString */;
1526 long var263
/* : Int */;
1527 val
* var264
/* : FlatString */;
1528 val
* var265
/* : MClassKind */;
1529 val
* var267
/* : MClassKind */;
1530 static val
* varonce268
;
1531 val
* var269
/* : String */;
1532 char* var270
/* : NativeString */;
1533 long var271
/* : Int */;
1534 val
* var272
/* : FlatString */;
1535 val
* var273
/* : String */;
1536 val
* var274
/* : Array[Object] */;
1537 long var275
/* : Int */;
1538 val
* var276
/* : NativeArray[Object] */;
1539 val
* var277
/* : String */;
1540 long var278
/* : Int */;
1541 val
* var279
/* : ToolContext */;
1542 val
* var281
/* : ToolContext */;
1543 static val
* varonce282
;
1544 val
* var283
/* : String */;
1545 char* var284
/* : NativeString */;
1546 long var285
/* : Int */;
1547 val
* var286
/* : FlatString */;
1548 val
* var287
/* : MClassKind */;
1549 val
* var289
/* : MClassKind */;
1550 static val
* varonce290
;
1551 val
* var291
/* : String */;
1552 char* var292
/* : NativeString */;
1553 long var293
/* : Int */;
1554 val
* var294
/* : FlatString */;
1555 val
* var295
/* : String */;
1556 val
* var296
/* : Array[Object] */;
1557 long var297
/* : Int */;
1558 val
* var298
/* : NativeArray[Object] */;
1559 val
* var299
/* : String */;
1560 long var300
/* : Int */;
1564 { /* Inline modelbuilder#AModule#mmodule (var_nmodule) on <var_nmodule:AModule> */
1565 var2
= var_nmodule
->attrs
[COLOR_modelbuilder__AModule___mmodule
].val
; /* _mmodule on <var_nmodule:AModule> */
1570 if (unlikely(var
== NULL
)) {
1571 PRINT_ERROR("Runtime error: %s", "Cast failed");
1572 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 111);
1581 var6
= string__NativeString__to_s_with_length(var4
, var5
);
1586 var7
= modelbuilder__ModelBuilder__try_get_mclass_by_name(self
, var_nmodule
, var_mmodule
, var3
);
1588 var_objectclass
= var7
;
1590 { /* Inline modelize_class#AClassdef#mclass (var_nclassdef) on <var_nclassdef:AClassdef> */
1591 var10
= var_nclassdef
->attrs
[COLOR_modelize_class__AClassdef___mclass
].val
; /* _mclass on <var_nclassdef:AClassdef> */
1598 if (var_mclass
== NULL
) {
1599 var12
= 1; /* is null */
1601 var12
= 0; /* arg is null but recv is not */
1604 { /* Inline kernel#Object#== (var_mclass,var11) on <var_mclass:nullable MClass> */
1607 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
1608 var17
= var_mclass
== var_other
;
1611 RET_LABEL16
:(void)0;
1616 RET_LABEL14
:(void)0;
1625 { /* Inline modelize_class#AModule#mclass2nclassdef (var_nmodule) on <var_nmodule:AModule> */
1626 var20
= var_nmodule
->attrs
[COLOR_modelize_class__AModule___mclass2nclassdef
].val
; /* _mclass2nclassdef on <var_nmodule:AModule> */
1627 if (unlikely(var20
== NULL
)) {
1628 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass2nclassdef");
1629 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 515);
1633 RET_LABEL19
:(void)0;
1637 var21
= ((val
* (*)(val
*, val
*))(var18
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var18
, var_mclass
) /* [] on <var18:Map[MClass, AClassdef]>*/;
1639 var_other_nclassdef
= var21
;
1641 { /* Inline kernel#Object#!= (var_other_nclassdef,var_nclassdef) on <var_other_nclassdef:AClassdef> */
1642 var_other25
= var_nclassdef
;
1644 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>*/;
1650 RET_LABEL24
:(void)0;
1655 /* <var_nclassdef:AClassdef> isa AStdClassdef */
1656 cltype
= type_parser_nodes__AStdClassdef
.color
;
1657 idtype
= type_parser_nodes__AStdClassdef
.id
;
1658 if(cltype
>= var_nclassdef
->type
->table_size
) {
1661 var29
= var_nclassdef
->type
->type_table
[cltype
] == idtype
;
1664 if (unlikely(!var30
)) {
1665 PRINT_ERROR("Runtime error: %s", "Assert failed");
1666 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 119);
1670 { /* Inline modelize_class#AClassdef#mclassdef (var_other_nclassdef) on <var_other_nclassdef:AClassdef> */
1671 var33
= var_other_nclassdef
->attrs
[COLOR_modelize_class__AClassdef___mclassdef
].val
; /* _mclassdef on <var_other_nclassdef:AClassdef> */
1673 RET_LABEL32
:(void)0;
1677 { /* Inline modelize_class#AClassdef#mclassdef= (var_nclassdef,var31) on <var_nclassdef:AClassdef> */
1678 var_nclassdef
->attrs
[COLOR_modelize_class__AClassdef___mclassdef
].val
= var31
; /* _mclassdef on <var_nclassdef:AClassdef> */
1679 RET_LABEL34
:(void)0;
1685 var35
= NEW_array__Array(&type_array__Arraystring__String
);
1687 array__Array__init(var35
); /* Direct call array#Array#init on <var35:Array[String]>*/
1690 var36
= NEW_array__Array(&type_array__Arraymodel__MType
);
1692 array__Array__init(var36
); /* Direct call array#Array#init on <var36:Array[MType]>*/
1695 /* <var_nclassdef:AClassdef> isa AStdClassdef */
1696 cltype39
= type_parser_nodes__AStdClassdef
.color
;
1697 idtype40
= type_parser_nodes__AStdClassdef
.id
;
1698 if(cltype39
>= var_nclassdef
->type
->table_size
) {
1701 var38
= var_nclassdef
->type
->type_table
[cltype39
] == idtype40
;
1706 { /* Inline model#MClass#arity (var_mclass) on <var_mclass:nullable MClass(MClass)> */
1707 var43
= var_mclass
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <var_mclass:nullable MClass(MClass)> */
1709 RET_LABEL42
:(void)0;
1714 { /* Inline kernel#Int#> (var41,var44) on <var41:Int> */
1715 /* Covariant cast for argument 0 (i) <var44:Int> isa OTHER */
1716 /* <var44:Int> isa OTHER */
1717 var47
= 1; /* easy <var44:Int> isa OTHER*/
1718 if (unlikely(!var47
)) {
1719 var_class_name
= type_kernel__Int
.name
;
1720 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1721 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
1724 var50
= var41
> var44
;
1727 RET_LABEL46
:(void)0;
1735 var51
= NEW_range__Range(&type_range__Rangekernel__Int
);
1738 { /* Inline model#MClass#arity (var_mclass) on <var_mclass:nullable MClass(MClass)> */
1739 var55
= var_mclass
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <var_mclass:nullable MClass(MClass)> */
1741 RET_LABEL54
:(void)0;
1745 var56
= BOX_kernel__Int(var52
); /* autobox from Int to Discrete */
1746 var57
= BOX_kernel__Int(var53
); /* autobox from Int to Discrete */
1747 range__Range__without_last(var51
, var56
, var57
); /* Direct call range#Range#without_last on <var51:Range[Int]>*/
1750 var58
= range__Range__iterator(var51
);
1754 var59
= ((short int (*)(val
*))(var58
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var58
) /* is_ok on <var58:Iterator[Discrete]>*/;
1758 var60
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var58
) /* item on <var58:Iterator[Discrete]>*/;
1760 var61
= ((struct instance_kernel__Int
*)var60
)->value
; /* autounbox from nullable Object to Int */;
1763 { /* Inline parser_nodes#AStdClassdef#n_formaldefs (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
1764 var64
= var_nclassdef
->attrs
[COLOR_parser_nodes__AStdClassdef___n_formaldefs
].val
; /* _n_formaldefs on <var_nclassdef:AClassdef(AStdClassdef)> */
1765 if (unlikely(var64
== NULL
)) {
1766 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_formaldefs");
1767 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 824);
1771 RET_LABEL63
:(void)0;
1775 var65
= parser_nodes__ANodes___91d_93d(var62
, var_i
);
1779 var66
= parser_nodes__AFormaldef__n_id(var_nfd
);
1782 var67
= lexer_work__Token__text(var66
);
1786 var68
= array__AbstractArrayRead__has(var_names
, var_ptname
);
1792 var71
= "Error: A formal parameter type `";
1794 var73
= string__NativeString__to_s_with_length(var71
, var72
);
1801 var76
= "\' already exists";
1803 var78
= string__NativeString__to_s_with_length(var76
, var77
);
1807 var79
= NEW_array__Array(&type_array__Arraykernel__Object
);
1808 { /* var79 = array_instance Array[Object] */
1810 var81
= NEW_array__NativeArray(var80
, &type_array__NativeArraykernel__Object
);
1811 ((struct instance_array__NativeArray
*)var81
)->values
[0] = (val
*) var70
;
1812 ((struct instance_array__NativeArray
*)var81
)->values
[1] = (val
*) var_ptname
;
1813 ((struct instance_array__NativeArray
*)var81
)->values
[2] = (val
*) var75
;
1815 ((void (*)(val
*, val
*, long))(var79
->class->vft
[COLOR_array__Array__with_native
]))(var79
, var81
, var80
) /* with_native on <var79:Array[Object]>*/;
1819 var82
= ((val
* (*)(val
*))(var79
->class->vft
[COLOR_string__Object__to_s
]))(var79
) /* to_s on <var79:Array[Object]>*/;
1822 modelbuilder__ModelBuilder__error(self
, var_nfd
, var82
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
1828 { /* Inline string#FlatString#chars (var_ptname) on <var_ptname:String> */
1829 var85
= var_ptname
->attrs
[COLOR_string__FlatString___chars
].val
; /* _chars on <var_ptname:String> */
1830 if (unlikely(var85
== NULL
)) {
1831 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
1832 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 746);
1836 RET_LABEL84
:(void)0;
1840 var86
= ((val
* (*)(val
*))(var83
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var83
) /* iterator on <var83:SequenceRead[Char]>*/;
1844 var87
= ((short int (*)(val
*))(var86
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var86
) /* is_ok on <var86:Iterator[nullable Object]>*/;
1848 var88
= ((val
* (*)(val
*))(var86
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var86
) /* item on <var86:Iterator[nullable Object]>*/;
1850 var89
= ((struct instance_kernel__Char
*)var88
)->value
; /* autounbox from nullable Object to Char */;
1854 { /* Inline kernel#Char#>= (var_c,var91) on <var_c:Char> */
1855 /* Covariant cast for argument 0 (i) <var91:Char> isa OTHER */
1856 /* <var91:Char> isa OTHER */
1857 var94
= 1; /* easy <var91:Char> isa OTHER*/
1858 if (unlikely(!var94
)) {
1859 var_class_name97
= type_kernel__Char
.name
;
1860 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name97
);
1861 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 501);
1864 var98
= var_c
>= var91
;
1867 RET_LABEL93
:(void)0;
1874 { /* Inline kernel#Char#<= (var_c,var100) on <var_c:Char> */
1875 /* Covariant cast for argument 0 (i) <var100:Char> isa OTHER */
1876 /* <var100:Char> isa OTHER */
1877 var103
= 1; /* easy <var100:Char> isa OTHER*/
1878 if (unlikely(!var103
)) {
1879 var_class_name106
= type_kernel__Char
.name
;
1880 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name106
);
1881 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 499);
1884 var107
= var_c
<= var100
;
1887 RET_LABEL102
:(void)0;
1896 var109
= varonce108
;
1898 var110
= "Warning: lowercase in the formal parameter type ";
1900 var112
= string__NativeString__to_s_with_length(var110
, var111
);
1902 varonce108
= var109
;
1904 var113
= NEW_array__Array(&type_array__Arraykernel__Object
);
1905 { /* var113 = array_instance Array[Object] */
1907 var115
= NEW_array__NativeArray(var114
, &type_array__NativeArraykernel__Object
);
1908 ((struct instance_array__NativeArray
*)var115
)->values
[0] = (val
*) var109
;
1909 ((struct instance_array__NativeArray
*)var115
)->values
[1] = (val
*) var_ptname
;
1911 ((void (*)(val
*, val
*, long))(var113
->class->vft
[COLOR_array__Array__with_native
]))(var113
, var115
, var114
) /* with_native on <var113:Array[Object]>*/;
1915 var116
= ((val
* (*)(val
*))(var113
->class->vft
[COLOR_string__Object__to_s
]))(var113
) /* to_s on <var113:Array[Object]>*/;
1918 modelbuilder__ModelBuilder__warning(self
, var_nfd
, var116
); /* Direct call modelbuilder#ModelBuilder#warning on <self:ModelBuilder>*/
1923 CONTINUE_label
: (void)0;
1925 ((void (*)(val
*))(var86
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var86
) /* next on <var86:Iterator[nullable Object]>*/;
1928 BREAK_label
: (void)0;
1930 array__Array__add(var_names
, var_ptname
); /* Direct call array#Array#add on <var_names:Array[String]>*/
1933 { /* Inline model#MClass#mclass_type (var_mclass) on <var_mclass:nullable MClass(MClass)> */
1934 var119
= var_mclass
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_mclass:nullable MClass(MClass)> */
1935 if (unlikely(var119
== NULL
)) {
1936 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
1937 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
1941 RET_LABEL118
:(void)0;
1945 { /* Inline model#MClassType#arguments (var117) on <var117:MClassType> */
1946 var122
= var117
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <var117:MClassType> */
1947 if (unlikely(var122
== NULL
)) {
1948 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
1949 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
1953 RET_LABEL121
:(void)0;
1957 var123
= array__Array___91d_93d(var120
, var_i
);
1959 /* <var123:nullable Object(MType)> isa MParameterType */
1960 cltype125
= type_model__MParameterType
.color
;
1961 idtype126
= type_model__MParameterType
.id
;
1962 if(cltype125
>= var123
->type
->table_size
) {
1965 var124
= var123
->type
->type_table
[cltype125
] == idtype126
;
1967 if (unlikely(!var124
)) {
1968 var_class_name127
= var123
== NULL ?
"null" : var123
->type
->name
;
1969 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MParameterType", var_class_name127
);
1970 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 140);
1974 { /* Inline modelize_class#AFormaldef#mtype= (var_nfd,var123) on <var_nfd:AFormaldef> */
1975 var_nfd
->attrs
[COLOR_modelize_class__AFormaldef___mtype
].val
= var123
; /* _mtype on <var_nfd:AFormaldef> */
1976 RET_LABEL128
:(void)0;
1979 CONTINUE_label129
: (void)0;
1981 ((void (*)(val
*))(var58
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var58
) /* next on <var58:Iterator[Discrete]>*/;
1984 BREAK_label129
: (void)0;
1985 var130
= NEW_range__Range(&type_range__Rangekernel__Int
);
1988 { /* Inline model#MClass#arity (var_mclass) on <var_mclass:nullable MClass(MClass)> */
1989 var134
= var_mclass
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <var_mclass:nullable MClass(MClass)> */
1991 RET_LABEL133
:(void)0;
1995 var135
= BOX_kernel__Int(var131
); /* autobox from Int to Discrete */
1996 var136
= BOX_kernel__Int(var132
); /* autobox from Int to Discrete */
1997 range__Range__without_last(var130
, var135
, var136
); /* Direct call range#Range#without_last on <var130:Range[Int]>*/
2000 var137
= range__Range__iterator(var130
);
2004 var138
= ((short int (*)(val
*))(var137
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var137
) /* is_ok on <var137:Iterator[Discrete]>*/;
2008 var139
= ((val
* (*)(val
*))(var137
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var137
) /* item on <var137:Iterator[Discrete]>*/;
2010 var141
= ((struct instance_kernel__Int
*)var139
)->value
; /* autounbox from nullable Object to Int */;
2013 { /* Inline parser_nodes#AStdClassdef#n_formaldefs (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
2014 var144
= var_nclassdef
->attrs
[COLOR_parser_nodes__AStdClassdef___n_formaldefs
].val
; /* _n_formaldefs on <var_nclassdef:AClassdef(AStdClassdef)> */
2015 if (unlikely(var144
== NULL
)) {
2016 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_formaldefs");
2017 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 824);
2021 RET_LABEL143
:(void)0;
2025 var145
= parser_nodes__ANodes___91d_93d(var142
, var_i140
);
2027 var_nfd146
= var145
;
2029 var147
= parser_nodes__AFormaldef__n_type(var_nfd146
);
2033 if (var_nfdt
== NULL
) {
2034 var149
= 0; /* is null */
2036 var149
= 1; /* arg is null and recv is not */
2039 { /* Inline kernel#Object#!= (var_nfdt,var148) on <var_nfdt:nullable AType> */
2040 var_other25
= var148
;
2042 var153
= ((short int (*)(val
*, val
*))(var_nfdt
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_nfdt
, var_other25
) /* == on <var_nfdt:nullable AType(AType)>*/;
2048 RET_LABEL151
:(void)0;
2056 var157
= modelize_class__ModelBuilder__resolve_mtype_unchecked(self
, var_mmodule
, var155
, var_nfdt
, var156
);
2060 if (var_bound
== NULL
) {
2061 var159
= 1; /* is null */
2063 var159
= 0; /* arg is null but recv is not */
2066 { /* Inline kernel#Object#== (var_bound,var158) on <var_bound:nullable MType> */
2069 { /* Inline kernel#Object#is_same_instance (var_bound,var_other) on <var_bound:nullable MType(MType)> */
2070 var164
= var_bound
== var_other
;
2073 RET_LABEL163
:(void)0;
2078 RET_LABEL161
:(void)0;
2087 var165
= ((short int (*)(val
*))(var_bound
->class->vft
[COLOR_model__MType__need_anchor
]))(var_bound
) /* need_anchor on <var_bound:nullable MType(MType)>*/;
2091 var167
= varonce166
;
2093 var168
= "Error: Formal parameter type `";
2095 var170
= string__NativeString__to_s_with_length(var168
, var169
);
2097 varonce166
= var167
;
2100 var171
= array__Array___91d_93d(var_names
, var_i140
);
2103 var173
= varonce172
;
2105 var174
= "\' bounded with a formal parameter type";
2107 var176
= string__NativeString__to_s_with_length(var174
, var175
);
2109 varonce172
= var173
;
2111 var177
= NEW_array__Array(&type_array__Arraykernel__Object
);
2112 { /* var177 = array_instance Array[Object] */
2114 var179
= NEW_array__NativeArray(var178
, &type_array__NativeArraykernel__Object
);
2115 ((struct instance_array__NativeArray
*)var179
)->values
[0] = (val
*) var167
;
2116 ((struct instance_array__NativeArray
*)var179
)->values
[1] = (val
*) var171
;
2117 ((struct instance_array__NativeArray
*)var179
)->values
[2] = (val
*) var173
;
2119 ((void (*)(val
*, val
*, long))(var177
->class->vft
[COLOR_array__Array__with_native
]))(var177
, var179
, var178
) /* with_native on <var177:Array[Object]>*/;
2123 var180
= ((val
* (*)(val
*))(var177
->class->vft
[COLOR_string__Object__to_s
]))(var177
) /* to_s on <var177:Array[Object]>*/;
2126 modelbuilder__ModelBuilder__error(self
, var_nfd146
, var180
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
2130 array__Array__add(var_bounds
, var_bound
); /* Direct call array#Array#add on <var_bounds:Array[MType]>*/
2133 { /* Inline modelize_class#AFormaldef#bound= (var_nfd146,var_bound) on <var_nfd146:AFormaldef> */
2134 var_nfd146
->attrs
[COLOR_modelize_class__AFormaldef___bound
].val
= var_bound
; /* _bound on <var_nfd146:AFormaldef> */
2135 RET_LABEL181
:(void)0;
2139 /* <var_bound:nullable MType(MType)> isa MClassType */
2140 cltype184
= type_model__MClassType
.color
;
2141 idtype185
= type_model__MClassType
.id
;
2142 if(cltype184
>= var_bound
->type
->table_size
) {
2145 var183
= var_bound
->type
->type_table
[cltype184
] == idtype185
;
2150 { /* Inline model#MClassType#mclass (var_bound) on <var_bound:nullable MType(MClassType)> */
2151 var189
= var_bound
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_bound:nullable MType(MClassType)> */
2152 if (unlikely(var189
== NULL
)) {
2153 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2154 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
2158 RET_LABEL188
:(void)0;
2162 { /* Inline model#MClass#kind (var187) on <var187:MClass> */
2163 var192
= var187
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var187:MClass> */
2164 if (unlikely(var192
== NULL
)) {
2165 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
2166 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
2170 RET_LABEL191
:(void)0;
2174 var193
= model__Object__enum_kind(self
);
2177 { /* Inline kernel#Object#== (var190,var193) on <var190:MClassKind> */
2180 { /* Inline kernel#Object#is_same_instance (var190,var_other) on <var190:MClassKind> */
2181 var199
= var190
== var_other
;
2184 RET_LABEL198
:(void)0;
2189 RET_LABEL196
:(void)0;
2199 var201
= varonce200
;
2201 var202
= "Warning: Useless formal parameter type since `";
2203 var204
= string__NativeString__to_s_with_length(var202
, var203
);
2205 varonce200
= var201
;
2208 var206
= varonce205
;
2210 var207
= "` cannnot have subclasses.";
2212 var209
= string__NativeString__to_s_with_length(var207
, var208
);
2214 varonce205
= var206
;
2216 var210
= NEW_array__Array(&type_array__Arraykernel__Object
);
2217 { /* var210 = array_instance Array[Object] */
2219 var212
= NEW_array__NativeArray(var211
, &type_array__NativeArraykernel__Object
);
2220 ((struct instance_array__NativeArray
*)var212
)->values
[0] = (val
*) var201
;
2221 ((struct instance_array__NativeArray
*)var212
)->values
[1] = (val
*) var_bound
;
2222 ((struct instance_array__NativeArray
*)var212
)->values
[2] = (val
*) var206
;
2224 ((void (*)(val
*, val
*, long))(var210
->class->vft
[COLOR_array__Array__with_native
]))(var210
, var212
, var211
) /* with_native on <var210:Array[Object]>*/;
2228 var213
= ((val
* (*)(val
*))(var210
->class->vft
[COLOR_string__Object__to_s
]))(var210
) /* to_s on <var210:Array[Object]>*/;
2231 modelbuilder__ModelBuilder__warning(self
, var_nfdt
, var213
); /* Direct call modelbuilder#ModelBuilder#warning on <self:ModelBuilder>*/
2237 { /* Inline model#MClass#mclassdefs (var_mclass) on <var_mclass:nullable MClass(MClass)> */
2238 var216
= var_mclass
->attrs
[COLOR_model__MClass___mclassdefs
].val
; /* _mclassdefs on <var_mclass:nullable MClass(MClass)> */
2239 if (unlikely(var216
== NULL
)) {
2240 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
2241 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 392);
2245 RET_LABEL215
:(void)0;
2249 var217
= array__AbstractArrayRead__is_empty(var214
);
2252 if (var_objectclass
== NULL
) {
2253 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2254 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 162);
2257 { /* Inline model#MClass#mclass_type (var_objectclass) on <var_objectclass:nullable MClass> */
2258 if (unlikely(var_objectclass
== NULL
)) {
2259 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2260 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
2263 var220
= var_objectclass
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_objectclass:nullable MClass> */
2264 if (unlikely(var220
== NULL
)) {
2265 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
2266 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
2270 RET_LABEL219
:(void)0;
2274 var221
= model__MType__as_nullable(var218
);
2276 var_bound222
= var221
;
2278 array__Array__add(var_bounds
, var_bound222
); /* Direct call array#Array#add on <var_bounds:Array[MType]>*/
2281 { /* Inline modelize_class#AFormaldef#bound= (var_nfd146,var_bound222) on <var_nfd146:AFormaldef> */
2282 var_nfd146
->attrs
[COLOR_modelize_class__AFormaldef___bound
].val
= var_bound222
; /* _bound on <var_nfd146:AFormaldef> */
2283 RET_LABEL223
:(void)0;
2288 var224
= model__MClass__intro(var_mclass
);
2291 { /* Inline model#MClassDef#bound_mtype (var224) on <var224:MClassDef> */
2292 var227
= var224
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var224:MClassDef> */
2293 if (unlikely(var227
== NULL
)) {
2294 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
2295 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
2299 RET_LABEL226
:(void)0;
2303 { /* Inline model#MClassType#arguments (var225) on <var225:MClassType> */
2304 var230
= var225
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <var225:MClassType> */
2305 if (unlikely(var230
== NULL
)) {
2306 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
2307 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
2311 RET_LABEL229
:(void)0;
2315 var231
= array__Array___91d_93d(var228
, var_i140
);
2317 var_bound232
= var231
;
2319 array__Array__add(var_bounds
, var_bound232
); /* Direct call array#Array#add on <var_bounds:Array[MType]>*/
2322 { /* Inline modelize_class#AFormaldef#bound= (var_nfd146,var_bound232) on <var_nfd146:AFormaldef> */
2323 var_nfd146
->attrs
[COLOR_modelize_class__AFormaldef___bound
].val
= var_bound232
; /* _bound on <var_nfd146:AFormaldef> */
2324 RET_LABEL233
:(void)0;
2329 CONTINUE_label234
: (void)0;
2331 ((void (*)(val
*))(var137
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var137
) /* next on <var137:Iterator[Discrete]>*/;
2334 BREAK_label234
: (void)0;
2338 var235
= model__MClass__get_mtype(var_mclass
, var_bounds
);
2340 var_bound_mtype
= var235
;
2341 var236
= NEW_model__MClassDef(&type_model__MClassDef
);
2343 var237
= parser_nodes__ANode__location(var_nclassdef
);
2346 model__MClassDef__init(var236
, var_mmodule
, var_bound_mtype
, var237
, var_names
); /* Direct call model#MClassDef#init on <var236:MClassDef>*/
2348 var_mclassdef
= var236
;
2350 { /* Inline modelize_class#AClassdef#mclassdef= (var_nclassdef,var_mclassdef) on <var_nclassdef:AClassdef> */
2351 var_nclassdef
->attrs
[COLOR_modelize_class__AClassdef___mclassdef
].val
= var_mclassdef
; /* _mclassdef on <var_nclassdef:AClassdef> */
2352 RET_LABEL238
:(void)0;
2356 { /* Inline modelize_class#ModelBuilder#mclassdef2nclassdef (self) on <self:ModelBuilder> */
2357 var241
= self
->attrs
[COLOR_modelize_class__ModelBuilder___mclassdef2nclassdef
].val
; /* _mclassdef2nclassdef on <self:ModelBuilder> */
2358 if (unlikely(var241
== NULL
)) {
2359 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef2nclassdef");
2360 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 399);
2364 RET_LABEL240
:(void)0;
2368 hash_collection__HashMap___91d_93d_61d(var239
, var_mclassdef
, var_nclassdef
); /* Direct call hash_collection#HashMap#[]= on <var239:HashMap[MClassDef, AClassdef]>*/
2370 /* <var_nclassdef:AClassdef> isa AStdClassdef */
2371 cltype243
= type_parser_nodes__AStdClassdef
.color
;
2372 idtype244
= type_parser_nodes__AStdClassdef
.id
;
2373 if(cltype243
>= var_nclassdef
->type
->table_size
) {
2376 var242
= var_nclassdef
->type
->type_table
[cltype243
] == idtype244
;
2380 var245
= parser_nodes__AStdClassdef__n_doc(var_nclassdef
);
2384 if (var_ndoc
== NULL
) {
2385 var247
= 0; /* is null */
2387 var247
= 1; /* arg is null and recv is not */
2390 { /* Inline kernel#Object#!= (var_ndoc,var246) on <var_ndoc:nullable ADoc> */
2391 var_other25
= var246
;
2393 var251
= ((short int (*)(val
*, val
*))(var_ndoc
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ndoc
, var_other25
) /* == on <var_ndoc:nullable ADoc(ADoc)>*/;
2399 RET_LABEL249
:(void)0;
2405 var253
= modelbuilder__ADoc__to_mdoc(var_ndoc
);
2409 { /* Inline mdoc#MEntity#mdoc= (var_mclassdef,var_mdoc) on <var_mclassdef:MClassDef> */
2410 var_mclassdef
->attrs
[COLOR_mdoc__MEntity___mdoc
].val
= var_mdoc
; /* _mdoc on <var_mclassdef:MClassDef> */
2411 RET_LABEL254
:(void)0;
2415 { /* Inline mdoc#MDoc#original_mentity= (var_mdoc,var_mclassdef) on <var_mdoc:MDoc> */
2416 var_mdoc
->attrs
[COLOR_mdoc__MDoc___original_mentity
].val
= var_mclassdef
; /* _original_mentity on <var_mdoc:MDoc> */
2417 RET_LABEL255
:(void)0;
2425 var256
= model__MClassDef__is_intro(var_mclassdef
);
2429 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
2430 var259
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
2431 if (unlikely(var259
== NULL
)) {
2432 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2433 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
2437 RET_LABEL258
:(void)0;
2441 var261
= varonce260
;
2443 var262
= " introduces new ";
2445 var264
= string__NativeString__to_s_with_length(var262
, var263
);
2447 varonce260
= var261
;
2450 { /* Inline model#MClass#kind (var_mclass) on <var_mclass:nullable MClass(MClass)> */
2451 var267
= var_mclass
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var_mclass:nullable MClass(MClass)> */
2452 if (unlikely(var267
== NULL
)) {
2453 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
2454 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
2458 RET_LABEL266
:(void)0;
2462 var269
= varonce268
;
2466 var272
= string__NativeString__to_s_with_length(var270
, var271
);
2468 varonce268
= var269
;
2471 var273
= model__MClass__full_name(var_mclass
);
2473 var274
= NEW_array__Array(&type_array__Arraykernel__Object
);
2474 { /* var274 = array_instance Array[Object] */
2476 var276
= NEW_array__NativeArray(var275
, &type_array__NativeArraykernel__Object
);
2477 ((struct instance_array__NativeArray
*)var276
)->values
[0] = (val
*) var_mclassdef
;
2478 ((struct instance_array__NativeArray
*)var276
)->values
[1] = (val
*) var261
;
2479 ((struct instance_array__NativeArray
*)var276
)->values
[2] = (val
*) var265
;
2480 ((struct instance_array__NativeArray
*)var276
)->values
[3] = (val
*) var269
;
2481 ((struct instance_array__NativeArray
*)var276
)->values
[4] = (val
*) var273
;
2483 ((void (*)(val
*, val
*, long))(var274
->class->vft
[COLOR_array__Array__with_native
]))(var274
, var276
, var275
) /* with_native on <var274:Array[Object]>*/;
2487 var277
= ((val
* (*)(val
*))(var274
->class->vft
[COLOR_string__Object__to_s
]))(var274
) /* to_s on <var274:Array[Object]>*/;
2491 toolcontext__ToolContext__info(var257
, var277
, var278
); /* Direct call toolcontext#ToolContext#info on <var257:ToolContext>*/
2495 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
2496 var281
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
2497 if (unlikely(var281
== NULL
)) {
2498 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2499 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
2503 RET_LABEL280
:(void)0;
2507 var283
= varonce282
;
2509 var284
= " refine ";
2511 var286
= string__NativeString__to_s_with_length(var284
, var285
);
2513 varonce282
= var283
;
2516 { /* Inline model#MClass#kind (var_mclass) on <var_mclass:nullable MClass(MClass)> */
2517 var289
= var_mclass
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var_mclass:nullable MClass(MClass)> */
2518 if (unlikely(var289
== NULL
)) {
2519 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
2520 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
2524 RET_LABEL288
:(void)0;
2528 var291
= varonce290
;
2532 var294
= string__NativeString__to_s_with_length(var292
, var293
);
2534 varonce290
= var291
;
2537 var295
= model__MClass__full_name(var_mclass
);
2539 var296
= NEW_array__Array(&type_array__Arraykernel__Object
);
2540 { /* var296 = array_instance Array[Object] */
2542 var298
= NEW_array__NativeArray(var297
, &type_array__NativeArraykernel__Object
);
2543 ((struct instance_array__NativeArray
*)var298
)->values
[0] = (val
*) var_mclassdef
;
2544 ((struct instance_array__NativeArray
*)var298
)->values
[1] = (val
*) var283
;
2545 ((struct instance_array__NativeArray
*)var298
)->values
[2] = (val
*) var287
;
2546 ((struct instance_array__NativeArray
*)var298
)->values
[3] = (val
*) var291
;
2547 ((struct instance_array__NativeArray
*)var298
)->values
[4] = (val
*) var295
;
2549 ((void (*)(val
*, val
*, long))(var296
->class->vft
[COLOR_array__Array__with_native
]))(var296
, var298
, var297
) /* with_native on <var296:Array[Object]>*/;
2553 var299
= ((val
* (*)(val
*))(var296
->class->vft
[COLOR_string__Object__to_s
]))(var296
) /* to_s on <var296:Array[Object]>*/;
2557 toolcontext__ToolContext__info(var279
, var299
, var300
); /* Direct call toolcontext#ToolContext#info on <var279:ToolContext>*/
2562 /* method modelize_class#ModelBuilder#build_a_mclassdef for (self: Object, AModule, AClassdef) */
2563 void VIRTUAL_modelize_class__ModelBuilder__build_a_mclassdef(val
* self
, val
* p0
, val
* p1
) {
2564 modelize_class__ModelBuilder__build_a_mclassdef(self
, p0
, p1
); /* Direct call modelize_class#ModelBuilder#build_a_mclassdef on <self:Object(ModelBuilder)>*/
2567 /* method modelize_class#ModelBuilder#collect_a_mclassdef_inheritance for (self: ModelBuilder, AModule, AClassdef) */
2568 void modelize_class__ModelBuilder__collect_a_mclassdef_inheritance(val
* self
, val
* p0
, val
* p1
) {
2569 val
* var_nmodule
/* var nmodule: AModule */;
2570 val
* var_nclassdef
/* var nclassdef: AClassdef */;
2571 val
* var
/* : nullable MModule */;
2572 val
* var2
/* : nullable MModule */;
2573 val
* var_mmodule
/* var mmodule: MModule */;
2574 static val
* varonce
;
2575 val
* var3
/* : String */;
2576 char* var4
/* : NativeString */;
2577 long var5
/* : Int */;
2578 val
* var6
/* : FlatString */;
2579 val
* var7
/* : nullable MClass */;
2580 val
* var_objectclass
/* var objectclass: nullable MClass */;
2581 static val
* varonce8
;
2582 val
* var9
/* : String */;
2583 char* var10
/* : NativeString */;
2584 long var11
/* : Int */;
2585 val
* var12
/* : FlatString */;
2586 val
* var13
/* : nullable MClass */;
2587 val
* var_pointerclass
/* var pointerclass: nullable MClass */;
2588 val
* var14
/* : nullable MClass */;
2589 val
* var16
/* : nullable MClass */;
2590 val
* var_mclass
/* var mclass: MClass */;
2591 val
* var17
/* : nullable MClassDef */;
2592 val
* var19
/* : nullable MClassDef */;
2593 val
* var_mclassdef
/* var mclassdef: MClassDef */;
2594 short int var20
/* : Bool */;
2595 short int var_specobject
/* var specobject: Bool */;
2596 short int var21
/* : Bool */;
2597 short int var_specpointer
/* var specpointer: Bool */;
2598 val
* var22
/* : Array[MClassType] */;
2599 val
* var_supertypes
/* var supertypes: Array[MClassType] */;
2600 short int var23
/* : Bool */;
2603 val
* var24
/* : ANodes[ASuperclass] */;
2604 val
* var26
/* : ANodes[ASuperclass] */;
2605 val
* var27
/* : Iterator[ANode] */;
2606 short int var28
/* : Bool */;
2607 val
* var29
/* : nullable Object */;
2608 val
* var_nsc
/* var nsc: ASuperclass */;
2609 short int var30
/* : Bool */;
2610 val
* var31
/* : AType */;
2611 val
* var_ntype
/* var ntype: AType */;
2612 short int var32
/* : Bool */;
2613 val
* var33
/* : nullable MType */;
2614 val
* var_mtype
/* var mtype: nullable MType */;
2615 val
* var34
/* : null */;
2616 short int var35
/* : Bool */;
2617 short int var36
/* : Bool */;
2618 val
* var_other
/* var other: nullable Object */;
2619 short int var38
/* : Bool */;
2620 short int var40
/* : Bool */;
2621 short int var41
/* : Bool */;
2624 short int var44
/* : Bool */;
2625 static val
* varonce45
;
2626 val
* var46
/* : String */;
2627 char* var47
/* : NativeString */;
2628 long var48
/* : Int */;
2629 val
* var49
/* : FlatString */;
2630 val
* var50
/* : MClassKind */;
2631 val
* var52
/* : MClassKind */;
2632 val
* var53
/* : MClass */;
2633 val
* var55
/* : MClass */;
2634 val
* var56
/* : MClassKind */;
2635 val
* var58
/* : MClassKind */;
2636 short int var59
/* : Bool */;
2637 short int var60
/* : Bool */;
2638 static val
* varonce61
;
2639 val
* var62
/* : String */;
2640 char* var63
/* : NativeString */;
2641 long var64
/* : Int */;
2642 val
* var65
/* : FlatString */;
2643 val
* var66
/* : MClassKind */;
2644 val
* var68
/* : MClassKind */;
2645 static val
* varonce69
;
2646 val
* var70
/* : String */;
2647 char* var71
/* : NativeString */;
2648 long var72
/* : Int */;
2649 val
* var73
/* : FlatString */;
2650 static val
* varonce74
;
2651 val
* var75
/* : String */;
2652 char* var76
/* : NativeString */;
2653 long var77
/* : Int */;
2654 val
* var78
/* : FlatString */;
2655 val
* var79
/* : MClass */;
2656 val
* var81
/* : MClass */;
2657 val
* var82
/* : MClassKind */;
2658 val
* var84
/* : MClassKind */;
2659 static val
* varonce85
;
2660 val
* var86
/* : String */;
2661 char* var87
/* : NativeString */;
2662 long var88
/* : Int */;
2663 val
* var89
/* : FlatString */;
2664 val
* var90
/* : MClass */;
2665 val
* var92
/* : MClass */;
2666 val
* var93
/* : Array[Object] */;
2667 long var94
/* : Int */;
2668 val
* var95
/* : NativeArray[Object] */;
2669 val
* var96
/* : String */;
2670 val
* var97
/* : MClass */;
2671 val
* var99
/* : MClass */;
2672 val
* var100
/* : MClassKind */;
2673 val
* var102
/* : MClassKind */;
2674 val
* var103
/* : MClassKind */;
2675 short int var104
/* : Bool */;
2676 short int var105
/* : Bool */;
2677 short int var107
/* : Bool */;
2678 short int var109
/* : Bool */;
2679 short int var110
/* : Bool */;
2680 short int var111
/* : Bool */;
2681 short int var112
/* : Bool */;
2682 short int var_
/* var : Bool */;
2683 val
* var113
/* : null */;
2684 short int var114
/* : Bool */;
2685 short int var115
/* : Bool */;
2686 val
* var_other117
/* var other: nullable Object */;
2687 short int var118
/* : Bool */;
2688 short int var119
/* : Bool */;
2689 short int var120
/* : Bool */;
2690 short int var121
/* : Bool */;
2691 val
* var122
/* : MClassKind */;
2692 val
* var124
/* : MClassKind */;
2693 val
* var125
/* : MClassKind */;
2694 short int var126
/* : Bool */;
2695 short int var127
/* : Bool */;
2696 short int var129
/* : Bool */;
2697 short int var131
/* : Bool */;
2698 short int var_132
/* var : Bool */;
2699 val
* var133
/* : String */;
2700 val
* var135
/* : String */;
2701 static val
* varonce136
;
2702 val
* var137
/* : String */;
2703 char* var138
/* : NativeString */;
2704 long var139
/* : Int */;
2705 val
* var140
/* : FlatString */;
2706 short int var141
/* : Bool */;
2707 short int var142
/* : Bool */;
2708 short int var144
/* : Bool */;
2709 short int var145
/* : Bool */;
2710 short int var146
/* : Bool */;
2711 val
* var147
/* : MClassType */;
2712 val
* var149
/* : MClassType */;
2713 short int var150
/* : Bool */;
2714 short int var_151
/* var : Bool */;
2715 val
* var152
/* : String */;
2716 val
* var154
/* : String */;
2717 static val
* varonce155
;
2718 val
* var156
/* : String */;
2719 char* var157
/* : NativeString */;
2720 long var158
/* : Int */;
2721 val
* var159
/* : FlatString */;
2722 short int var160
/* : Bool */;
2723 short int var161
/* : Bool */;
2724 short int var163
/* : Bool */;
2725 short int var164
/* : Bool */;
2726 short int var165
/* : Bool */;
2727 val
* var166
/* : MClassType */;
2728 val
* var168
/* : MClassType */;
2729 short int var169
/* : Bool */;
2730 short int var170
/* : Bool */;
2731 val
* var171
/* : ToolContext */;
2732 val
* var173
/* : ToolContext */;
2733 static val
* varonce174
;
2734 val
* var175
/* : String */;
2735 char* var176
/* : NativeString */;
2736 long var177
/* : Int */;
2737 val
* var178
/* : FlatString */;
2738 static val
* varonce179
;
2739 val
* var180
/* : String */;
2740 char* var181
/* : NativeString */;
2741 long var182
/* : Int */;
2742 val
* var183
/* : FlatString */;
2743 val
* var184
/* : String */;
2744 val
* var185
/* : Array[Object] */;
2745 long var186
/* : Int */;
2746 val
* var187
/* : NativeArray[Object] */;
2747 val
* var188
/* : String */;
2748 long var189
/* : Int */;
2752 { /* Inline modelbuilder#AModule#mmodule (var_nmodule) on <var_nmodule:AModule> */
2753 var2
= var_nmodule
->attrs
[COLOR_modelbuilder__AModule___mmodule
].val
; /* _mmodule on <var_nmodule:AModule> */
2758 if (unlikely(var
== NULL
)) {
2759 PRINT_ERROR("Runtime error: %s", "Cast failed");
2760 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 198);
2769 var6
= string__NativeString__to_s_with_length(var4
, var5
);
2774 var7
= modelbuilder__ModelBuilder__try_get_mclass_by_name(self
, var_nmodule
, var_mmodule
, var3
);
2776 var_objectclass
= var7
;
2782 var12
= string__NativeString__to_s_with_length(var10
, var11
);
2787 var13
= modelbuilder__ModelBuilder__try_get_mclass_by_name(self
, var_nmodule
, var_mmodule
, var9
);
2789 var_pointerclass
= var13
;
2791 { /* Inline modelize_class#AClassdef#mclass (var_nclassdef) on <var_nclassdef:AClassdef> */
2792 var16
= var_nclassdef
->attrs
[COLOR_modelize_class__AClassdef___mclass
].val
; /* _mclass on <var_nclassdef:AClassdef> */
2794 RET_LABEL15
:(void)0;
2797 if (unlikely(var14
== NULL
)) {
2798 PRINT_ERROR("Runtime error: %s", "Cast failed");
2799 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 201);
2804 { /* Inline modelize_class#AClassdef#mclassdef (var_nclassdef) on <var_nclassdef:AClassdef> */
2805 var19
= var_nclassdef
->attrs
[COLOR_modelize_class__AClassdef___mclassdef
].val
; /* _mclassdef on <var_nclassdef:AClassdef> */
2807 RET_LABEL18
:(void)0;
2810 if (unlikely(var17
== NULL
)) {
2811 PRINT_ERROR("Runtime error: %s", "Cast failed");
2812 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 202);
2815 var_mclassdef
= var17
;
2817 var_specobject
= var20
;
2819 var_specpointer
= var21
;
2820 var22
= NEW_array__Array(&type_array__Arraymodel__MClassType
);
2822 array__Array__init(var22
); /* Direct call array#Array#init on <var22:Array[MClassType]>*/
2824 var_supertypes
= var22
;
2825 /* <var_nclassdef:AClassdef> isa AStdClassdef */
2826 cltype
= type_parser_nodes__AStdClassdef
.color
;
2827 idtype
= type_parser_nodes__AStdClassdef
.id
;
2828 if(cltype
>= var_nclassdef
->type
->table_size
) {
2831 var23
= var_nclassdef
->type
->type_table
[cltype
] == idtype
;
2835 { /* Inline parser_nodes#AStdClassdef#n_superclasses (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
2836 var26
= var_nclassdef
->attrs
[COLOR_parser_nodes__AStdClassdef___n_superclasses
].val
; /* _n_superclasses on <var_nclassdef:AClassdef(AStdClassdef)> */
2837 if (unlikely(var26
== NULL
)) {
2838 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_superclasses");
2839 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 828);
2843 RET_LABEL25
:(void)0;
2847 var27
= parser_nodes__ANodes__iterator(var24
);
2851 var28
= ((short int (*)(val
*))(var27
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var27
) /* is_ok on <var27:Iterator[ANode]>*/;
2855 var29
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var27
) /* item on <var27:Iterator[ANode]>*/;
2859 var_specobject
= var30
;
2861 var31
= parser_nodes__ASuperclass__n_type(var_nsc
);
2866 var33
= modelize_class__ModelBuilder__resolve_mtype_unchecked(self
, var_mmodule
, var_mclassdef
, var_ntype
, var32
);
2870 if (var_mtype
== NULL
) {
2871 var35
= 1; /* is null */
2873 var35
= 0; /* arg is null but recv is not */
2876 { /* Inline kernel#Object#== (var_mtype,var34) on <var_mtype:nullable MType> */
2879 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
2880 var40
= var_mtype
== var_other
;
2883 RET_LABEL39
:(void)0;
2888 RET_LABEL37
:(void)0;
2893 goto CONTINUE_label
;
2896 /* <var_mtype:nullable MType(MType)> isa MClassType */
2897 cltype42
= type_model__MClassType
.color
;
2898 idtype43
= type_model__MClassType
.id
;
2899 if(cltype42
>= var_mtype
->type
->table_size
) {
2902 var41
= var_mtype
->type
->type_table
[cltype42
] == idtype43
;
2909 var47
= "Error: supertypes cannot be a formal type";
2911 var49
= string__NativeString__to_s_with_length(var47
, var48
);
2916 modelbuilder__ModelBuilder__error(self
, var_ntype
, var46
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
2922 { /* Inline model#MClass#kind (var_mclass) on <var_mclass:MClass> */
2923 var52
= var_mclass
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var_mclass:MClass> */
2924 if (unlikely(var52
== NULL
)) {
2925 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
2926 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
2930 RET_LABEL51
:(void)0;
2934 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:nullable MType(MClassType)> */
2935 var55
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:nullable MType(MClassType)> */
2936 if (unlikely(var55
== NULL
)) {
2937 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2938 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
2942 RET_LABEL54
:(void)0;
2946 { /* Inline model#MClass#kind (var53) on <var53:MClass> */
2947 var58
= var53
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var53:MClass> */
2948 if (unlikely(var58
== NULL
)) {
2949 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
2950 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
2954 RET_LABEL57
:(void)0;
2958 var59
= model__MClassKind__can_specialize(var50
, var56
);
2967 var65
= string__NativeString__to_s_with_length(var63
, var64
);
2972 { /* Inline model#MClass#kind (var_mclass) on <var_mclass:MClass> */
2973 var68
= var_mclass
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var_mclass:MClass> */
2974 if (unlikely(var68
== NULL
)) {
2975 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
2976 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
2980 RET_LABEL67
:(void)0;
2988 var73
= string__NativeString__to_s_with_length(var71
, var72
);
2995 var76
= " cannot specialize ";
2997 var78
= string__NativeString__to_s_with_length(var76
, var77
);
3002 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:nullable MType(MClassType)> */
3003 var81
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:nullable MType(MClassType)> */
3004 if (unlikely(var81
== NULL
)) {
3005 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3006 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
3010 RET_LABEL80
:(void)0;
3014 { /* Inline model#MClass#kind (var79) on <var79:MClass> */
3015 var84
= var79
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var79:MClass> */
3016 if (unlikely(var84
== NULL
)) {
3017 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
3018 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
3022 RET_LABEL83
:(void)0;
3030 var89
= string__NativeString__to_s_with_length(var87
, var88
);
3035 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:nullable MType(MClassType)> */
3036 var92
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:nullable MType(MClassType)> */
3037 if (unlikely(var92
== NULL
)) {
3038 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3039 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
3043 RET_LABEL91
:(void)0;
3046 var93
= NEW_array__Array(&type_array__Arraykernel__Object
);
3047 { /* var93 = array_instance Array[Object] */
3049 var95
= NEW_array__NativeArray(var94
, &type_array__NativeArraykernel__Object
);
3050 ((struct instance_array__NativeArray
*)var95
)->values
[0] = (val
*) var62
;
3051 ((struct instance_array__NativeArray
*)var95
)->values
[1] = (val
*) var66
;
3052 ((struct instance_array__NativeArray
*)var95
)->values
[2] = (val
*) var70
;
3053 ((struct instance_array__NativeArray
*)var95
)->values
[3] = (val
*) var_mclass
;
3054 ((struct instance_array__NativeArray
*)var95
)->values
[4] = (val
*) var75
;
3055 ((struct instance_array__NativeArray
*)var95
)->values
[5] = (val
*) var82
;
3056 ((struct instance_array__NativeArray
*)var95
)->values
[6] = (val
*) var86
;
3057 ((struct instance_array__NativeArray
*)var95
)->values
[7] = (val
*) var90
;
3059 ((void (*)(val
*, val
*, long))(var93
->class->vft
[COLOR_array__Array__with_native
]))(var93
, var95
, var94
) /* with_native on <var93:Array[Object]>*/;
3063 var96
= ((val
* (*)(val
*))(var93
->class->vft
[COLOR_string__Object__to_s
]))(var93
) /* to_s on <var93:Array[Object]>*/;
3066 modelbuilder__ModelBuilder__error(self
, var_ntype
, var96
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
3071 array__Array__add(var_supertypes
, var_mtype
); /* Direct call array#Array#add on <var_supertypes:Array[MClassType]>*/
3074 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:nullable MType(MClassType)> */
3075 var99
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:nullable MType(MClassType)> */
3076 if (unlikely(var99
== NULL
)) {
3077 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3078 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
3082 RET_LABEL98
:(void)0;
3086 { /* Inline model#MClass#kind (var97) on <var97:MClass> */
3087 var102
= var97
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var97:MClass> */
3088 if (unlikely(var102
== NULL
)) {
3089 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
3090 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
3094 RET_LABEL101
:(void)0;
3098 var103
= model__Object__extern_kind(self
);
3101 { /* Inline kernel#Object#== (var100,var103) on <var100:MClassKind> */
3104 { /* Inline kernel#Object#is_same_instance (var100,var_other) on <var100:MClassKind> */
3105 var109
= var100
== var_other
;
3108 RET_LABEL108
:(void)0;
3113 RET_LABEL106
:(void)0;
3119 var_specpointer
= var110
;
3122 CONTINUE_label
: (void)0;
3124 ((void (*)(val
*))(var27
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var27
) /* next on <var27:Iterator[ANode]>*/;
3127 BREAK_label
: (void)0;
3131 var112
= model__MClassDef__is_intro(var_mclassdef
);
3136 if (var_objectclass
== NULL
) {
3137 var114
= 0; /* is null */
3139 var114
= 1; /* arg is null and recv is not */
3142 { /* Inline kernel#Object#!= (var_objectclass,var113) on <var_objectclass:nullable MClass> */
3143 var_other117
= var113
;
3145 var119
= ((short int (*)(val
*, val
*))(var_objectclass
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_objectclass
, var_other117
) /* == on <var_objectclass:nullable MClass(MClass)>*/;
3151 RET_LABEL116
:(void)0;
3161 { /* Inline model#MClass#kind (var_mclass) on <var_mclass:MClass> */
3162 var124
= var_mclass
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var_mclass:MClass> */
3163 if (unlikely(var124
== NULL
)) {
3164 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
3165 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
3169 RET_LABEL123
:(void)0;
3173 var125
= model__Object__extern_kind(self
);
3176 { /* Inline kernel#Object#== (var122,var125) on <var122:MClassKind> */
3179 { /* Inline kernel#Object#is_same_instance (var122,var_other) on <var122:MClassKind> */
3180 var131
= var122
== var_other
;
3183 RET_LABEL130
:(void)0;
3188 RET_LABEL128
:(void)0;
3195 { /* Inline model#MClass#name (var_mclass) on <var_mclass:MClass> */
3196 var135
= var_mclass
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <var_mclass:MClass> */
3197 if (unlikely(var135
== NULL
)) {
3198 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3199 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 340);
3203 RET_LABEL134
:(void)0;
3207 var137
= varonce136
;
3211 var140
= string__NativeString__to_s_with_length(var138
, var139
);
3213 varonce136
= var137
;
3216 { /* Inline kernel#Object#!= (var133,var137) on <var133:String> */
3217 var_other117
= var137
;
3219 var145
= ((short int (*)(val
*, val
*))(var133
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var133
, var_other117
) /* == on <var133:String>*/;
3225 RET_LABEL143
:(void)0;
3234 if (var_specpointer
){
3235 if (var_pointerclass
== NULL
) {
3236 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3237 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 234);
3240 { /* Inline model#MClass#mclass_type (var_pointerclass) on <var_pointerclass:nullable MClass> */
3241 if (unlikely(var_pointerclass
== NULL
)) {
3242 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3243 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
3246 var149
= var_pointerclass
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_pointerclass:nullable MClass> */
3247 if (unlikely(var149
== NULL
)) {
3248 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
3249 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
3253 RET_LABEL148
:(void)0;
3257 array__Array__add(var_supertypes
, var147
); /* Direct call array#Array#add on <var_supertypes:Array[MClassType]>*/
3262 var_151
= var_specobject
;
3263 if (var_specobject
){
3265 { /* Inline model#MClass#name (var_mclass) on <var_mclass:MClass> */
3266 var154
= var_mclass
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <var_mclass:MClass> */
3267 if (unlikely(var154
== NULL
)) {
3268 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3269 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 340);
3273 RET_LABEL153
:(void)0;
3277 var156
= varonce155
;
3281 var159
= string__NativeString__to_s_with_length(var157
, var158
);
3283 varonce155
= var156
;
3286 { /* Inline kernel#Object#!= (var152,var156) on <var152:String> */
3287 var_other117
= var156
;
3289 var164
= ((short int (*)(val
*, val
*))(var152
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var152
, var_other117
) /* == on <var152:String>*/;
3295 RET_LABEL162
:(void)0;
3305 { /* Inline model#MClass#mclass_type (var_objectclass) on <var_objectclass:nullable MClass(MClass)> */
3306 var168
= var_objectclass
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_objectclass:nullable MClass(MClass)> */
3307 if (unlikely(var168
== NULL
)) {
3308 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
3309 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
3313 RET_LABEL167
:(void)0;
3317 array__Array__add(var_supertypes
, var166
); /* Direct call array#Array#add on <var_supertypes:Array[MClassType]>*/
3325 model__MClassDef__set_supertypes(var_mclassdef
, var_supertypes
); /* Direct call model#MClassDef#set_supertypes on <var_mclassdef:MClassDef>*/
3328 var169
= array__AbstractArrayRead__is_empty(var_supertypes
);
3333 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
3334 var173
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
3335 if (unlikely(var173
== NULL
)) {
3336 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3337 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
3341 RET_LABEL172
:(void)0;
3345 var175
= varonce174
;
3347 var176
= " new super-types: ";
3349 var178
= string__NativeString__to_s_with_length(var176
, var177
);
3351 varonce174
= var175
;
3354 var180
= varonce179
;
3358 var183
= string__NativeString__to_s_with_length(var181
, var182
);
3360 varonce179
= var180
;
3363 var184
= string__Collection__join(var_supertypes
, var180
);
3365 var185
= NEW_array__Array(&type_array__Arraykernel__Object
);
3366 { /* var185 = array_instance Array[Object] */
3368 var187
= NEW_array__NativeArray(var186
, &type_array__NativeArraykernel__Object
);
3369 ((struct instance_array__NativeArray
*)var187
)->values
[0] = (val
*) var_mclassdef
;
3370 ((struct instance_array__NativeArray
*)var187
)->values
[1] = (val
*) var175
;
3371 ((struct instance_array__NativeArray
*)var187
)->values
[2] = (val
*) var184
;
3373 ((void (*)(val
*, val
*, long))(var185
->class->vft
[COLOR_array__Array__with_native
]))(var185
, var187
, var186
) /* with_native on <var185:Array[Object]>*/;
3377 var188
= ((val
* (*)(val
*))(var185
->class->vft
[COLOR_string__Object__to_s
]))(var185
) /* to_s on <var185:Array[Object]>*/;
3381 toolcontext__ToolContext__info(var171
, var188
, var189
); /* Direct call toolcontext#ToolContext#info on <var171:ToolContext>*/
3387 /* method modelize_class#ModelBuilder#collect_a_mclassdef_inheritance for (self: Object, AModule, AClassdef) */
3388 void VIRTUAL_modelize_class__ModelBuilder__collect_a_mclassdef_inheritance(val
* self
, val
* p0
, val
* p1
) {
3389 modelize_class__ModelBuilder__collect_a_mclassdef_inheritance(self
, p0
, p1
); /* Direct call modelize_class#ModelBuilder#collect_a_mclassdef_inheritance on <self:Object(ModelBuilder)>*/
3392 /* method modelize_class#ModelBuilder#check_supertypes for (self: ModelBuilder, AModule, AClassdef) */
3393 void modelize_class__ModelBuilder__check_supertypes(val
* self
, val
* p0
, val
* p1
) {
3394 val
* var_nmodule
/* var nmodule: AModule */;
3395 val
* var_nclassdef
/* var nclassdef: AClassdef */;
3396 val
* var
/* : nullable MModule */;
3397 val
* var2
/* : nullable MModule */;
3398 val
* var_mmodule
/* var mmodule: MModule */;
3399 static val
* varonce
;
3400 val
* var3
/* : String */;
3401 char* var4
/* : NativeString */;
3402 long var5
/* : Int */;
3403 val
* var6
/* : FlatString */;
3404 val
* var7
/* : nullable MClass */;
3405 val
* var_objectclass
/* var objectclass: nullable MClass */;
3406 val
* var8
/* : nullable MClass */;
3407 val
* var10
/* : nullable MClass */;
3408 val
* var_mclass
/* var mclass: MClass */;
3409 val
* var11
/* : nullable MClassDef */;
3410 val
* var13
/* : nullable MClassDef */;
3411 val
* var_mclassdef
/* var mclassdef: MClassDef */;
3412 val
* var14
/* : Array[MClassType] */;
3413 val
* var16
/* : Array[MClassType] */;
3414 val
* var17
/* : ArrayIterator[nullable Object] */;
3415 short int var18
/* : Bool */;
3416 val
* var19
/* : nullable Object */;
3417 val
* var_s
/* var s: MClassType */;
3418 val
* var20
/* : MClassType */;
3419 val
* var22
/* : MClassType */;
3420 val
* var23
/* : MClassType */;
3421 val
* var25
/* : MClassType */;
3422 short int var26
/* : Bool */;
3423 static val
* varonce27
;
3424 val
* var28
/* : String */;
3425 char* var29
/* : NativeString */;
3426 long var30
/* : Int */;
3427 val
* var31
/* : FlatString */;
3428 static val
* varonce32
;
3429 val
* var33
/* : String */;
3430 char* var34
/* : NativeString */;
3431 long var35
/* : Int */;
3432 val
* var36
/* : FlatString */;
3433 val
* var37
/* : Array[Object] */;
3434 long var38
/* : Int */;
3435 val
* var39
/* : NativeArray[Object] */;
3436 val
* var40
/* : String */;
3440 { /* Inline modelbuilder#AModule#mmodule (var_nmodule) on <var_nmodule:AModule> */
3441 var2
= var_nmodule
->attrs
[COLOR_modelbuilder__AModule___mmodule
].val
; /* _mmodule on <var_nmodule:AModule> */
3446 if (unlikely(var
== NULL
)) {
3447 PRINT_ERROR("Runtime error: %s", "Cast failed");
3448 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 248);
3457 var6
= string__NativeString__to_s_with_length(var4
, var5
);
3462 var7
= modelbuilder__ModelBuilder__try_get_mclass_by_name(self
, var_nmodule
, var_mmodule
, var3
);
3464 var_objectclass
= var7
;
3466 { /* Inline modelize_class#AClassdef#mclass (var_nclassdef) on <var_nclassdef:AClassdef> */
3467 var10
= var_nclassdef
->attrs
[COLOR_modelize_class__AClassdef___mclass
].val
; /* _mclass on <var_nclassdef:AClassdef> */
3472 if (unlikely(var8
== NULL
)) {
3473 PRINT_ERROR("Runtime error: %s", "Cast failed");
3474 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 250);
3479 { /* Inline modelize_class#AClassdef#mclassdef (var_nclassdef) on <var_nclassdef:AClassdef> */
3480 var13
= var_nclassdef
->attrs
[COLOR_modelize_class__AClassdef___mclassdef
].val
; /* _mclassdef on <var_nclassdef:AClassdef> */
3482 RET_LABEL12
:(void)0;
3485 if (unlikely(var11
== NULL
)) {
3486 PRINT_ERROR("Runtime error: %s", "Cast failed");
3487 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 251);
3490 var_mclassdef
= var11
;
3492 { /* Inline model#MClassDef#supertypes (var_mclassdef) on <var_mclassdef:MClassDef> */
3493 var16
= var_mclassdef
->attrs
[COLOR_model__MClassDef___supertypes
].val
; /* _supertypes on <var_mclassdef:MClassDef> */
3494 if (unlikely(var16
== NULL
)) {
3495 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes");
3496 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 517);
3500 RET_LABEL15
:(void)0;
3504 var17
= array__AbstractArrayRead__iterator(var14
);
3508 var18
= array__ArrayIterator__is_ok(var17
);
3512 var19
= array__ArrayIterator__item(var17
);
3516 { /* Inline model#MClassDef#bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
3517 var22
= var_mclassdef
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var_mclassdef:MClassDef> */
3518 if (unlikely(var22
== NULL
)) {
3519 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
3520 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
3524 RET_LABEL21
:(void)0;
3528 { /* Inline model#MClassDef#bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
3529 var25
= var_mclassdef
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var_mclassdef:MClassDef> */
3530 if (unlikely(var25
== NULL
)) {
3531 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
3532 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
3536 RET_LABEL24
:(void)0;
3540 var26
= model__MType__is_subtype(var_s
, var_mmodule
, var20
, var23
);
3546 var29
= "Error: Inheritance loop for class ";
3548 var31
= string__NativeString__to_s_with_length(var29
, var30
);
3555 var34
= " with type ";
3557 var36
= string__NativeString__to_s_with_length(var34
, var35
);
3561 var37
= NEW_array__Array(&type_array__Arraykernel__Object
);
3562 { /* var37 = array_instance Array[Object] */
3564 var39
= NEW_array__NativeArray(var38
, &type_array__NativeArraykernel__Object
);
3565 ((struct instance_array__NativeArray
*)var39
)->values
[0] = (val
*) var28
;
3566 ((struct instance_array__NativeArray
*)var39
)->values
[1] = (val
*) var_mclass
;
3567 ((struct instance_array__NativeArray
*)var39
)->values
[2] = (val
*) var33
;
3568 ((struct instance_array__NativeArray
*)var39
)->values
[3] = (val
*) var_s
;
3570 ((void (*)(val
*, val
*, long))(var37
->class->vft
[COLOR_array__Array__with_native
]))(var37
, var39
, var38
) /* with_native on <var37:Array[Object]>*/;
3574 var40
= ((val
* (*)(val
*))(var37
->class->vft
[COLOR_string__Object__to_s
]))(var37
) /* to_s on <var37:Array[Object]>*/;
3577 modelbuilder__ModelBuilder__error(self
, var_nclassdef
, var40
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
3581 CONTINUE_label
: (void)0;
3583 array__ArrayIterator__next(var17
); /* Direct call array#ArrayIterator#next on <var17:ArrayIterator[nullable Object]>*/
3586 BREAK_label
: (void)0;
3589 /* method modelize_class#ModelBuilder#check_supertypes for (self: Object, AModule, AClassdef) */
3590 void VIRTUAL_modelize_class__ModelBuilder__check_supertypes(val
* self
, val
* p0
, val
* p1
) {
3591 modelize_class__ModelBuilder__check_supertypes(self
, p0
, p1
); /* Direct call modelize_class#ModelBuilder#check_supertypes on <self:Object(ModelBuilder)>*/
3594 /* method modelize_class#ModelBuilder#build_classes for (self: ModelBuilder, AModule) */
3595 void modelize_class__ModelBuilder__build_classes(val
* self
, val
* p0
) {
3596 val
* var_nmodule
/* var nmodule: AModule */;
3597 val
* var
/* : ToolContext */;
3598 val
* var2
/* : ToolContext */;
3599 long var3
/* : Int */;
3600 long var5
/* : Int */;
3601 long var_errcount
/* var errcount: Int */;
3602 short int var6
/* : Bool */;
3603 short int var8
/* : Bool */;
3604 short int var9
/* : Bool */;
3605 val
* var11
/* : nullable MModule */;
3606 val
* var13
/* : nullable MModule */;
3607 val
* var_mmodule
/* var mmodule: MModule */;
3608 val
* var14
/* : POSetElement[MModule] */;
3609 val
* var16
/* : POSetElement[MModule] */;
3610 val
* var17
/* : Collection[Object] */;
3611 val
* var18
/* : Iterator[nullable Object] */;
3612 short int var19
/* : Bool */;
3613 val
* var20
/* : nullable Object */;
3614 val
* var_imp
/* var imp: MModule */;
3615 val
* var21
/* : HashMap[MModule, AModule] */;
3616 val
* var23
/* : HashMap[MModule, AModule] */;
3617 short int var24
/* : Bool */;
3618 short int var25
/* : Bool */;
3619 val
* var26
/* : HashMap[MModule, AModule] */;
3620 val
* var28
/* : HashMap[MModule, AModule] */;
3621 val
* var29
/* : nullable Object */;
3622 val
* var30
/* : ToolContext */;
3623 val
* var32
/* : ToolContext */;
3624 long var33
/* : Int */;
3625 long var35
/* : Int */;
3626 short int var36
/* : Bool */;
3627 short int var37
/* : Bool */;
3628 short int var39
/* : Bool */;
3629 short int var40
/* : Bool */;
3630 val
* var41
/* : ANodes[AClassdef] */;
3631 val
* var43
/* : ANodes[AClassdef] */;
3632 val
* var44
/* : Iterator[ANode] */;
3633 short int var45
/* : Bool */;
3634 val
* var46
/* : nullable Object */;
3635 val
* var_nclassdef
/* var nclassdef: AClassdef */;
3636 val
* var48
/* : ToolContext */;
3637 val
* var50
/* : ToolContext */;
3638 long var51
/* : Int */;
3639 long var53
/* : Int */;
3640 short int var54
/* : Bool */;
3641 short int var55
/* : Bool */;
3642 short int var57
/* : Bool */;
3643 short int var58
/* : Bool */;
3644 val
* var59
/* : ANodes[AClassdef] */;
3645 val
* var61
/* : ANodes[AClassdef] */;
3646 val
* var62
/* : Iterator[ANode] */;
3647 short int var63
/* : Bool */;
3648 val
* var64
/* : nullable Object */;
3649 val
* var_nclassdef65
/* var nclassdef: AClassdef */;
3650 val
* var67
/* : ToolContext */;
3651 val
* var69
/* : ToolContext */;
3652 long var70
/* : Int */;
3653 long var72
/* : Int */;
3654 short int var73
/* : Bool */;
3655 short int var74
/* : Bool */;
3656 short int var76
/* : Bool */;
3657 short int var77
/* : Bool */;
3658 val
* var78
/* : ANodes[AClassdef] */;
3659 val
* var80
/* : ANodes[AClassdef] */;
3660 val
* var81
/* : Iterator[ANode] */;
3661 short int var82
/* : Bool */;
3662 val
* var83
/* : nullable Object */;
3663 val
* var_nclassdef84
/* var nclassdef: AClassdef */;
3664 val
* var86
/* : ToolContext */;
3665 val
* var88
/* : ToolContext */;
3666 long var89
/* : Int */;
3667 long var91
/* : Int */;
3668 short int var92
/* : Bool */;
3669 short int var93
/* : Bool */;
3670 short int var95
/* : Bool */;
3671 short int var96
/* : Bool */;
3672 val
* var97
/* : Array[MClassDef] */;
3673 val
* var99
/* : Array[MClassDef] */;
3674 val
* var100
/* : ArrayIterator[nullable Object] */;
3675 short int var101
/* : Bool */;
3676 val
* var102
/* : nullable Object */;
3677 val
* var_mclassdef
/* var mclassdef: MClassDef */;
3678 val
* var104
/* : ToolContext */;
3679 val
* var106
/* : ToolContext */;
3680 long var107
/* : Int */;
3681 long var109
/* : Int */;
3682 short int var110
/* : Bool */;
3683 short int var111
/* : Bool */;
3684 short int var113
/* : Bool */;
3685 short int var114
/* : Bool */;
3686 val
* var115
/* : ANodes[AClassdef] */;
3687 val
* var117
/* : ANodes[AClassdef] */;
3688 val
* var118
/* : Iterator[ANode] */;
3689 short int var119
/* : Bool */;
3690 val
* var120
/* : nullable Object */;
3691 val
* var_nclassdef121
/* var nclassdef: AClassdef */;
3692 val
* var123
/* : ToolContext */;
3693 val
* var125
/* : ToolContext */;
3694 long var126
/* : Int */;
3695 long var128
/* : Int */;
3696 short int var129
/* : Bool */;
3697 short int var130
/* : Bool */;
3698 short int var132
/* : Bool */;
3699 short int var133
/* : Bool */;
3700 val
* var134
/* : ANodes[AClassdef] */;
3701 val
* var136
/* : ANodes[AClassdef] */;
3702 val
* var137
/* : Iterator[ANode] */;
3703 short int var138
/* : Bool */;
3704 val
* var139
/* : nullable Object */;
3705 val
* var_nclassdef140
/* var nclassdef: AClassdef */;
3706 short int var141
/* : Bool */;
3709 val
* var142
/* : nullable MClassDef */;
3710 val
* var144
/* : nullable MClassDef */;
3711 val
* var_mclassdef145
/* var mclassdef: nullable MClassDef */;
3712 val
* var146
/* : ANodes[AFormaldef] */;
3713 val
* var148
/* : ANodes[AFormaldef] */;
3714 val
* var149
/* : Iterator[ANode] */;
3715 short int var150
/* : Bool */;
3716 val
* var151
/* : nullable Object */;
3717 val
* var_nfd
/* var nfd: AFormaldef */;
3718 val
* var152
/* : nullable AType */;
3719 val
* var_nfdt
/* var nfdt: nullable AType */;
3720 short int var153
/* : Bool */;
3721 val
* var154
/* : null */;
3722 short int var155
/* : Bool */;
3723 short int var156
/* : Bool */;
3724 val
* var_other
/* var other: nullable Object */;
3725 short int var158
/* : Bool */;
3726 short int var159
/* : Bool */;
3727 short int var160
/* : Bool */;
3728 short int var_
/* var : Bool */;
3729 val
* var161
/* : nullable MType */;
3730 val
* var163
/* : nullable MType */;
3731 val
* var164
/* : null */;
3732 short int var165
/* : Bool */;
3733 short int var166
/* : Bool */;
3734 short int var168
/* : Bool */;
3735 short int var169
/* : Bool */;
3736 short int var170
/* : Bool */;
3737 val
* var171
/* : nullable MType */;
3738 val
* var_bound
/* var bound: nullable MType */;
3739 val
* var172
/* : null */;
3740 short int var173
/* : Bool */;
3741 short int var174
/* : Bool */;
3742 val
* var_other176
/* var other: nullable Object */;
3743 short int var177
/* : Bool */;
3744 short int var179
/* : Bool */;
3745 val
* var181
/* : ANodes[ASuperclass] */;
3746 val
* var183
/* : ANodes[ASuperclass] */;
3747 val
* var184
/* : Iterator[ANode] */;
3748 short int var185
/* : Bool */;
3749 val
* var186
/* : nullable Object */;
3750 val
* var_nsc
/* var nsc: ASuperclass */;
3751 val
* var187
/* : AType */;
3752 val
* var_ntype
/* var ntype: AType */;
3753 val
* var188
/* : nullable MType */;
3754 val
* var190
/* : nullable MType */;
3755 val
* var191
/* : null */;
3756 short int var192
/* : Bool */;
3757 short int var193
/* : Bool */;
3758 short int var195
/* : Bool */;
3759 short int var196
/* : Bool */;
3760 short int var197
/* : Bool */;
3761 val
* var198
/* : nullable MType */;
3762 val
* var_mtype
/* var mtype: nullable MType */;
3763 val
* var199
/* : null */;
3764 short int var200
/* : Bool */;
3765 short int var201
/* : Bool */;
3766 short int var203
/* : Bool */;
3767 short int var205
/* : Bool */;
3768 val
* var208
/* : ToolContext */;
3769 val
* var210
/* : ToolContext */;
3770 long var211
/* : Int */;
3771 long var213
/* : Int */;
3772 short int var214
/* : Bool */;
3773 short int var215
/* : Bool */;
3774 short int var217
/* : Bool */;
3775 short int var218
/* : Bool */;
3776 val
* var219
/* : ANodes[AClassdef] */;
3777 val
* var221
/* : ANodes[AClassdef] */;
3778 val
* var222
/* : Iterator[ANode] */;
3779 short int var223
/* : Bool */;
3780 val
* var224
/* : nullable Object */;
3781 val
* var_nclassdef225
/* var nclassdef: AClassdef */;
3782 val
* var226
/* : nullable MClassDef */;
3783 val
* var228
/* : nullable MClassDef */;
3784 val
* var_mclassdef229
/* var mclassdef: MClassDef */;
3785 val
* var230
/* : HashMap[MClass, MClassType] */;
3786 val
* var_superclasses
/* var superclasses: HashMap[MClass, MClassType] */;
3787 val
* var231
/* : nullable POSetElement[MClassDef] */;
3788 val
* var233
/* : nullable POSetElement[MClassDef] */;
3789 val
* var234
/* : Collection[Object] */;
3790 val
* var235
/* : Iterator[nullable Object] */;
3791 short int var236
/* : Bool */;
3792 val
* var237
/* : nullable Object */;
3793 val
* var_scd
/* var scd: MClassDef */;
3794 val
* var238
/* : Array[MClassType] */;
3795 val
* var240
/* : Array[MClassType] */;
3796 val
* var241
/* : ArrayIterator[nullable Object] */;
3797 short int var242
/* : Bool */;
3798 val
* var243
/* : nullable Object */;
3799 val
* var_st
/* var st: MClassType */;
3800 val
* var244
/* : MClass */;
3801 val
* var246
/* : MClass */;
3802 short int var247
/* : Bool */;
3803 short int var248
/* : Bool */;
3804 val
* var249
/* : MClass */;
3805 val
* var251
/* : MClass */;
3806 val
* var252
/* : MClass */;
3807 val
* var254
/* : MClass */;
3808 val
* var255
/* : nullable Object */;
3809 short int var256
/* : Bool */;
3810 short int var257
/* : Bool */;
3811 short int var259
/* : Bool */;
3812 short int var260
/* : Bool */;
3813 short int var261
/* : Bool */;
3814 val
* var262
/* : MClass */;
3815 val
* var264
/* : MClass */;
3816 val
* var265
/* : nullable Object */;
3817 val
* var266
/* : MClass */;
3818 val
* var268
/* : MClass */;
3819 val
* var269
/* : MClassType */;
3820 val
* var271
/* : MClassType */;
3821 val
* var272
/* : MClassType */;
3822 val
* var274
/* : MClassType */;
3823 short int var275
/* : Bool */;
3824 val
* var276
/* : MType */;
3825 val
* var_st1
/* var st1: MClassType */;
3826 val
* var277
/* : MClass */;
3827 val
* var279
/* : MClass */;
3828 val
* var280
/* : MClassType */;
3829 val
* var282
/* : MClassType */;
3830 val
* var283
/* : MClassType */;
3831 val
* var285
/* : MClassType */;
3832 short int var286
/* : Bool */;
3833 val
* var287
/* : MType */;
3834 val
* var_st2
/* var st2: MClassType */;
3835 short int var288
/* : Bool */;
3836 short int var289
/* : Bool */;
3837 short int var291
/* : Bool */;
3838 short int var292
/* : Bool */;
3839 short int var293
/* : Bool */;
3840 static val
* varonce
;
3841 val
* var294
/* : String */;
3842 char* var295
/* : NativeString */;
3843 long var296
/* : Int */;
3844 val
* var297
/* : FlatString */;
3845 val
* var298
/* : MClass */;
3846 val
* var300
/* : MClass */;
3847 static val
* varonce301
;
3848 val
* var302
/* : String */;
3849 char* var303
/* : NativeString */;
3850 long var304
/* : Int */;
3851 val
* var305
/* : FlatString */;
3852 static val
* varonce306
;
3853 val
* var307
/* : String */;
3854 char* var308
/* : NativeString */;
3855 long var309
/* : Int */;
3856 val
* var310
/* : FlatString */;
3857 val
* var311
/* : Array[Object] */;
3858 long var312
/* : Int */;
3859 val
* var313
/* : NativeArray[Object] */;
3860 val
* var314
/* : String */;
3861 val
* var318
/* : ToolContext */;
3862 val
* var320
/* : ToolContext */;
3863 long var321
/* : Int */;
3864 long var323
/* : Int */;
3865 short int var324
/* : Bool */;
3866 short int var325
/* : Bool */;
3867 short int var327
/* : Bool */;
3868 short int var328
/* : Bool */;
3869 val
* var329
/* : ANodes[AClassdef] */;
3870 val
* var331
/* : ANodes[AClassdef] */;
3871 val
* var332
/* : Iterator[ANode] */;
3872 short int var333
/* : Bool */;
3873 val
* var334
/* : nullable Object */;
3874 val
* var_nclassdef335
/* var nclassdef: AClassdef */;
3875 short int var336
/* : Bool */;
3878 short int var339
/* : Bool */;
3879 val
* var341
/* : nullable MClassDef */;
3880 val
* var343
/* : nullable MClassDef */;
3881 val
* var_mclassdef344
/* var mclassdef: MClassDef */;
3882 val
* var345
/* : Array[MClass] */;
3883 val
* var_parents
/* var parents: Array[MClass] */;
3884 val
* var346
/* : nullable POSetElement[MClassDef] */;
3885 val
* var348
/* : nullable POSetElement[MClassDef] */;
3886 val
* var349
/* : Collection[Object] */;
3887 val
* var350
/* : Iterator[nullable Object] */;
3888 short int var351
/* : Bool */;
3889 val
* var352
/* : nullable Object */;
3890 val
* var_sup
/* var sup: MClassDef */;
3891 val
* var353
/* : MClass */;
3892 val
* var355
/* : MClass */;
3893 val
* var357
/* : ArrayMap[MClass, AType] */;
3894 val
* var_seen_parents
/* var seen_parents: ArrayMap[MClass, AType] */;
3895 static val
* varonce358
;
3896 val
* var359
/* : String */;
3897 char* var360
/* : NativeString */;
3898 long var361
/* : Int */;
3899 val
* var362
/* : FlatString */;
3900 val
* var363
/* : nullable MClass */;
3901 val
* var_objectclass
/* var objectclass: nullable MClass */;
3902 val
* var364
/* : ANodes[ASuperclass] */;
3903 val
* var366
/* : ANodes[ASuperclass] */;
3904 val
* var367
/* : Iterator[ANode] */;
3905 short int var368
/* : Bool */;
3906 val
* var369
/* : nullable Object */;
3907 val
* var_nsc370
/* var nsc: ASuperclass */;
3908 val
* var371
/* : AType */;
3909 val
* var_ntype372
/* var ntype: AType */;
3910 val
* var373
/* : nullable MType */;
3911 val
* var375
/* : nullable MType */;
3912 val
* var_mtype376
/* var mtype: nullable MType */;
3913 val
* var377
/* : null */;
3914 short int var378
/* : Bool */;
3915 short int var379
/* : Bool */;
3916 short int var381
/* : Bool */;
3917 short int var383
/* : Bool */;
3918 short int var385
/* : Bool */;
3921 val
* var388
/* : MClass */;
3922 val
* var390
/* : MClass */;
3923 val
* var_sc
/* var sc: MClass */;
3924 short int var391
/* : Bool */;
3925 short int var392
/* : Bool */;
3926 short int var393
/* : Bool */;
3927 short int var_394
/* var : Bool */;
3928 short int var395
/* : Bool */;
3929 short int var396
/* : Bool */;
3930 short int var398
/* : Bool */;
3931 short int var400
/* : Bool */;
3932 short int var401
/* : Bool */;
3933 val
* var402
/* : Location */;
3934 val
* var403
/* : nullable SourceFile */;
3935 val
* var405
/* : nullable SourceFile */;
3936 val
* var406
/* : null */;
3937 short int var407
/* : Bool */;
3938 short int var408
/* : Bool */;
3939 short int var410
/* : Bool */;
3940 short int var411
/* : Bool */;
3941 short int var412
/* : Bool */;
3942 short int var_413
/* var : Bool */;
3943 val
* var414
/* : Location */;
3944 val
* var415
/* : nullable SourceFile */;
3945 val
* var417
/* : nullable SourceFile */;
3946 val
* var418
/* : String */;
3947 val
* var420
/* : String */;
3948 short int var421
/* : Bool */;
3949 short int var422
/* : Bool */;
3950 static val
* varonce423
;
3951 val
* var424
/* : String */;
3952 char* var425
/* : NativeString */;
3953 long var426
/* : Int */;
3954 val
* var427
/* : FlatString */;
3955 static val
* varonce428
;
3956 val
* var429
/* : String */;
3957 char* var430
/* : NativeString */;
3958 long var431
/* : Int */;
3959 val
* var432
/* : FlatString */;
3960 val
* var433
/* : MClass */;
3961 val
* var435
/* : MClass */;
3962 static val
* varonce436
;
3963 val
* var437
/* : String */;
3964 char* var438
/* : NativeString */;
3965 long var439
/* : Int */;
3966 val
* var440
/* : FlatString */;
3967 val
* var441
/* : Array[Object] */;
3968 long var442
/* : Int */;
3969 val
* var443
/* : NativeArray[Object] */;
3970 val
* var444
/* : String */;
3971 short int var445
/* : Bool */;
3972 short int var446
/* : Bool */;
3973 static val
* varonce447
;
3974 val
* var448
/* : String */;
3975 char* var449
/* : NativeString */;
3976 long var450
/* : Int */;
3977 val
* var451
/* : FlatString */;
3978 static val
* varonce452
;
3979 val
* var453
/* : String */;
3980 char* var454
/* : NativeString */;
3981 long var455
/* : Int */;
3982 val
* var456
/* : FlatString */;
3983 val
* var457
/* : MClass */;
3984 val
* var459
/* : MClass */;
3985 static val
* varonce460
;
3986 val
* var461
/* : String */;
3987 char* var462
/* : NativeString */;
3988 long var463
/* : Int */;
3989 val
* var464
/* : FlatString */;
3990 val
* var465
/* : Array[Object] */;
3991 long var466
/* : Int */;
3992 val
* var467
/* : NativeArray[Object] */;
3993 val
* var468
/* : String */;
3996 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
3997 var2
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
3998 if (unlikely(var2
== NULL
)) {
3999 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4000 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
4008 { /* Inline toolcontext#ToolContext#error_count (var) on <var:ToolContext> */
4009 var5
= var
->attrs
[COLOR_toolcontext__ToolContext___error_count
].l
; /* _error_count on <var:ToolContext> */
4014 var_errcount
= var3
;
4016 { /* Inline modelize_class#AModule#build_classes_is_done (var_nmodule) on <var_nmodule:AModule> */
4017 var8
= var_nmodule
->attrs
[COLOR_modelize_class__AModule___build_classes_is_done
].s
; /* _build_classes_is_done on <var_nmodule:AModule> */
4028 { /* Inline modelize_class#AModule#build_classes_is_done= (var_nmodule,var9) on <var_nmodule:AModule> */
4029 var_nmodule
->attrs
[COLOR_modelize_class__AModule___build_classes_is_done
].s
= var9
; /* _build_classes_is_done on <var_nmodule:AModule> */
4030 RET_LABEL10
:(void)0;
4034 { /* Inline modelbuilder#AModule#mmodule (var_nmodule) on <var_nmodule:AModule> */
4035 var13
= var_nmodule
->attrs
[COLOR_modelbuilder__AModule___mmodule
].val
; /* _mmodule on <var_nmodule:AModule> */
4037 RET_LABEL12
:(void)0;
4040 if (unlikely(var11
== NULL
)) {
4041 PRINT_ERROR("Runtime error: %s", "Cast failed");
4042 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 268);
4045 var_mmodule
= var11
;
4047 { /* Inline mmodule#MModule#in_importation (var_mmodule) on <var_mmodule:MModule> */
4048 var16
= var_mmodule
->attrs
[COLOR_mmodule__MModule___in_importation
].val
; /* _in_importation on <var_mmodule:MModule> */
4049 if (unlikely(var16
== NULL
)) {
4050 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
4051 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 101);
4055 RET_LABEL15
:(void)0;
4059 var17
= poset__POSetElement__direct_greaters(var14
);
4062 var18
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var17
) /* iterator on <var17:Collection[Object](Collection[MModule])>*/;
4066 var19
= ((short int (*)(val
*))(var18
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var18
) /* is_ok on <var18:Iterator[nullable Object]>*/;
4070 var20
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var18
) /* item on <var18:Iterator[nullable Object]>*/;
4074 { /* Inline modelbuilder#ModelBuilder#mmodule2nmodule (self) on <self:ModelBuilder> */
4075 var23
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___mmodule2nmodule
].val
; /* _mmodule2nmodule on <self:ModelBuilder> */
4076 if (unlikely(var23
== NULL
)) {
4077 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule2nmodule");
4078 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 697);
4082 RET_LABEL22
:(void)0;
4086 var24
= abstract_collection__MapRead__has_key(var21
, var_imp
);
4090 goto CONTINUE_label
;
4094 { /* Inline modelbuilder#ModelBuilder#mmodule2nmodule (self) on <self:ModelBuilder> */
4095 var28
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___mmodule2nmodule
].val
; /* _mmodule2nmodule on <self:ModelBuilder> */
4096 if (unlikely(var28
== NULL
)) {
4097 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule2nmodule");
4098 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 697);
4102 RET_LABEL27
:(void)0;
4106 var29
= hash_collection__HashMap___91d_93d(var26
, var_imp
);
4109 modelize_class__ModelBuilder__build_classes(self
, var29
); /* Direct call modelize_class#ModelBuilder#build_classes on <self:ModelBuilder>*/
4111 CONTINUE_label
: (void)0;
4113 ((void (*)(val
*))(var18
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var18
) /* next on <var18:Iterator[nullable Object]>*/;
4116 BREAK_label
: (void)0;
4118 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
4119 var32
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
4120 if (unlikely(var32
== NULL
)) {
4121 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4122 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
4126 RET_LABEL31
:(void)0;
4130 { /* Inline toolcontext#ToolContext#error_count (var30) on <var30:ToolContext> */
4131 var35
= var30
->attrs
[COLOR_toolcontext__ToolContext___error_count
].l
; /* _error_count on <var30:ToolContext> */
4133 RET_LABEL34
:(void)0;
4137 { /* Inline kernel#Int#!= (var_errcount,var33) on <var_errcount:Int> */
4138 var39
= var_errcount
== var33
;
4142 RET_LABEL38
:(void)0;
4151 { /* Inline parser_nodes#AModule#n_classdefs (var_nmodule) on <var_nmodule:AModule> */
4152 var43
= var_nmodule
->attrs
[COLOR_parser_nodes__AModule___n_classdefs
].val
; /* _n_classdefs on <var_nmodule:AModule> */
4153 if (unlikely(var43
== NULL
)) {
4154 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_classdefs");
4155 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 699);
4159 RET_LABEL42
:(void)0;
4163 var44
= parser_nodes__ANodes__iterator(var41
);
4167 var45
= ((short int (*)(val
*))(var44
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var44
) /* is_ok on <var44:Iterator[ANode]>*/;
4171 var46
= ((val
* (*)(val
*))(var44
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var44
) /* item on <var44:Iterator[ANode]>*/;
4173 var_nclassdef
= var46
;
4175 modelize_class__ModelBuilder__build_a_mclass(self
, var_nmodule
, var_nclassdef
); /* Direct call modelize_class#ModelBuilder#build_a_mclass on <self:ModelBuilder>*/
4177 CONTINUE_label47
: (void)0;
4179 ((void (*)(val
*))(var44
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var44
) /* next on <var44:Iterator[ANode]>*/;
4182 BREAK_label47
: (void)0;
4184 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
4185 var50
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
4186 if (unlikely(var50
== NULL
)) {
4187 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4188 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
4192 RET_LABEL49
:(void)0;
4196 { /* Inline toolcontext#ToolContext#error_count (var48) on <var48:ToolContext> */
4197 var53
= var48
->attrs
[COLOR_toolcontext__ToolContext___error_count
].l
; /* _error_count on <var48:ToolContext> */
4199 RET_LABEL52
:(void)0;
4203 { /* Inline kernel#Int#!= (var_errcount,var51) on <var_errcount:Int> */
4204 var57
= var_errcount
== var51
;
4208 RET_LABEL56
:(void)0;
4217 { /* Inline parser_nodes#AModule#n_classdefs (var_nmodule) on <var_nmodule:AModule> */
4218 var61
= var_nmodule
->attrs
[COLOR_parser_nodes__AModule___n_classdefs
].val
; /* _n_classdefs on <var_nmodule:AModule> */
4219 if (unlikely(var61
== NULL
)) {
4220 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_classdefs");
4221 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 699);
4225 RET_LABEL60
:(void)0;
4229 var62
= parser_nodes__ANodes__iterator(var59
);
4233 var63
= ((short int (*)(val
*))(var62
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var62
) /* is_ok on <var62:Iterator[ANode]>*/;
4237 var64
= ((val
* (*)(val
*))(var62
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var62
) /* item on <var62:Iterator[ANode]>*/;
4239 var_nclassdef65
= var64
;
4241 modelize_class__ModelBuilder__build_a_mclassdef(self
, var_nmodule
, var_nclassdef65
); /* Direct call modelize_class#ModelBuilder#build_a_mclassdef on <self:ModelBuilder>*/
4243 CONTINUE_label66
: (void)0;
4245 ((void (*)(val
*))(var62
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var62
) /* next on <var62:Iterator[ANode]>*/;
4248 BREAK_label66
: (void)0;
4250 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
4251 var69
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
4252 if (unlikely(var69
== NULL
)) {
4253 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4254 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
4258 RET_LABEL68
:(void)0;
4262 { /* Inline toolcontext#ToolContext#error_count (var67) on <var67:ToolContext> */
4263 var72
= var67
->attrs
[COLOR_toolcontext__ToolContext___error_count
].l
; /* _error_count on <var67:ToolContext> */
4265 RET_LABEL71
:(void)0;
4269 { /* Inline kernel#Int#!= (var_errcount,var70) on <var_errcount:Int> */
4270 var76
= var_errcount
== var70
;
4274 RET_LABEL75
:(void)0;
4283 { /* Inline parser_nodes#AModule#n_classdefs (var_nmodule) on <var_nmodule:AModule> */
4284 var80
= var_nmodule
->attrs
[COLOR_parser_nodes__AModule___n_classdefs
].val
; /* _n_classdefs on <var_nmodule:AModule> */
4285 if (unlikely(var80
== NULL
)) {
4286 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_classdefs");
4287 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 699);
4291 RET_LABEL79
:(void)0;
4295 var81
= parser_nodes__ANodes__iterator(var78
);
4299 var82
= ((short int (*)(val
*))(var81
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var81
) /* is_ok on <var81:Iterator[ANode]>*/;
4303 var83
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var81
) /* item on <var81:Iterator[ANode]>*/;
4305 var_nclassdef84
= var83
;
4307 modelize_class__ModelBuilder__collect_a_mclassdef_inheritance(self
, var_nmodule
, var_nclassdef84
); /* Direct call modelize_class#ModelBuilder#collect_a_mclassdef_inheritance on <self:ModelBuilder>*/
4309 CONTINUE_label85
: (void)0;
4311 ((void (*)(val
*))(var81
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var81
) /* next on <var81:Iterator[ANode]>*/;
4314 BREAK_label85
: (void)0;
4316 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
4317 var88
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
4318 if (unlikely(var88
== NULL
)) {
4319 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4320 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
4324 RET_LABEL87
:(void)0;
4328 { /* Inline toolcontext#ToolContext#error_count (var86) on <var86:ToolContext> */
4329 var91
= var86
->attrs
[COLOR_toolcontext__ToolContext___error_count
].l
; /* _error_count on <var86:ToolContext> */
4331 RET_LABEL90
:(void)0;
4335 { /* Inline kernel#Int#!= (var_errcount,var89) on <var_errcount:Int> */
4336 var95
= var_errcount
== var89
;
4340 RET_LABEL94
:(void)0;
4349 { /* Inline model#MModule#mclassdefs (var_mmodule) on <var_mmodule:MModule> */
4350 var99
= var_mmodule
->attrs
[COLOR_model__MModule___mclassdefs
].val
; /* _mclassdefs on <var_mmodule:MModule> */
4351 if (unlikely(var99
== NULL
)) {
4352 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
4353 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 141);
4357 RET_LABEL98
:(void)0;
4361 var100
= array__AbstractArrayRead__iterator(var97
);
4365 var101
= array__ArrayIterator__is_ok(var100
);
4369 var102
= array__ArrayIterator__item(var100
);
4371 var_mclassdef
= var102
;
4373 model__MClassDef__add_in_hierarchy(var_mclassdef
); /* Direct call model#MClassDef#add_in_hierarchy on <var_mclassdef:MClassDef>*/
4375 CONTINUE_label103
: (void)0;
4377 array__ArrayIterator__next(var100
); /* Direct call array#ArrayIterator#next on <var100:ArrayIterator[nullable Object]>*/
4380 BREAK_label103
: (void)0;
4382 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
4383 var106
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
4384 if (unlikely(var106
== NULL
)) {
4385 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4386 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
4390 RET_LABEL105
:(void)0;
4394 { /* Inline toolcontext#ToolContext#error_count (var104) on <var104:ToolContext> */
4395 var109
= var104
->attrs
[COLOR_toolcontext__ToolContext___error_count
].l
; /* _error_count on <var104:ToolContext> */
4397 RET_LABEL108
:(void)0;
4401 { /* Inline kernel#Int#!= (var_errcount,var107) on <var_errcount:Int> */
4402 var113
= var_errcount
== var107
;
4406 RET_LABEL112
:(void)0;
4415 { /* Inline parser_nodes#AModule#n_classdefs (var_nmodule) on <var_nmodule:AModule> */
4416 var117
= var_nmodule
->attrs
[COLOR_parser_nodes__AModule___n_classdefs
].val
; /* _n_classdefs on <var_nmodule:AModule> */
4417 if (unlikely(var117
== NULL
)) {
4418 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_classdefs");
4419 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 699);
4423 RET_LABEL116
:(void)0;
4427 var118
= parser_nodes__ANodes__iterator(var115
);
4431 var119
= ((short int (*)(val
*))(var118
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var118
) /* is_ok on <var118:Iterator[ANode]>*/;
4435 var120
= ((val
* (*)(val
*))(var118
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var118
) /* item on <var118:Iterator[ANode]>*/;
4437 var_nclassdef121
= var120
;
4439 modelize_class__ModelBuilder__check_supertypes(self
, var_nmodule
, var_nclassdef121
); /* Direct call modelize_class#ModelBuilder#check_supertypes on <self:ModelBuilder>*/
4441 CONTINUE_label122
: (void)0;
4443 ((void (*)(val
*))(var118
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var118
) /* next on <var118:Iterator[ANode]>*/;
4446 BREAK_label122
: (void)0;
4448 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
4449 var125
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
4450 if (unlikely(var125
== NULL
)) {
4451 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4452 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
4456 RET_LABEL124
:(void)0;
4460 { /* Inline toolcontext#ToolContext#error_count (var123) on <var123:ToolContext> */
4461 var128
= var123
->attrs
[COLOR_toolcontext__ToolContext___error_count
].l
; /* _error_count on <var123:ToolContext> */
4463 RET_LABEL127
:(void)0;
4467 { /* Inline kernel#Int#!= (var_errcount,var126) on <var_errcount:Int> */
4468 var132
= var_errcount
== var126
;
4472 RET_LABEL131
:(void)0;
4481 { /* Inline parser_nodes#AModule#n_classdefs (var_nmodule) on <var_nmodule:AModule> */
4482 var136
= var_nmodule
->attrs
[COLOR_parser_nodes__AModule___n_classdefs
].val
; /* _n_classdefs on <var_nmodule:AModule> */
4483 if (unlikely(var136
== NULL
)) {
4484 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_classdefs");
4485 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 699);
4489 RET_LABEL135
:(void)0;
4493 var137
= parser_nodes__ANodes__iterator(var134
);
4497 var138
= ((short int (*)(val
*))(var137
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var137
) /* is_ok on <var137:Iterator[ANode]>*/;
4501 var139
= ((val
* (*)(val
*))(var137
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var137
) /* item on <var137:Iterator[ANode]>*/;
4503 var_nclassdef140
= var139
;
4504 /* <var_nclassdef140:AClassdef> isa AStdClassdef */
4505 cltype
= type_parser_nodes__AStdClassdef
.color
;
4506 idtype
= type_parser_nodes__AStdClassdef
.id
;
4507 if(cltype
>= var_nclassdef140
->type
->table_size
) {
4510 var141
= var_nclassdef140
->type
->type_table
[cltype
] == idtype
;
4514 { /* Inline modelize_class#AClassdef#mclassdef (var_nclassdef140) on <var_nclassdef140:AClassdef(AStdClassdef)> */
4515 var144
= var_nclassdef140
->attrs
[COLOR_modelize_class__AClassdef___mclassdef
].val
; /* _mclassdef on <var_nclassdef140:AClassdef(AStdClassdef)> */
4517 RET_LABEL143
:(void)0;
4520 var_mclassdef145
= var142
;
4522 { /* Inline parser_nodes#AStdClassdef#n_formaldefs (var_nclassdef140) on <var_nclassdef140:AClassdef(AStdClassdef)> */
4523 var148
= var_nclassdef140
->attrs
[COLOR_parser_nodes__AStdClassdef___n_formaldefs
].val
; /* _n_formaldefs on <var_nclassdef140:AClassdef(AStdClassdef)> */
4524 if (unlikely(var148
== NULL
)) {
4525 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_formaldefs");
4526 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 824);
4530 RET_LABEL147
:(void)0;
4534 var149
= parser_nodes__ANodes__iterator(var146
);
4538 var150
= ((short int (*)(val
*))(var149
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var149
) /* is_ok on <var149:Iterator[ANode]>*/;
4542 var151
= ((val
* (*)(val
*))(var149
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var149
) /* item on <var149:Iterator[ANode]>*/;
4546 var152
= parser_nodes__AFormaldef__n_type(var_nfd
);
4550 if (var_nfdt
== NULL
) {
4551 var155
= 0; /* is null */
4553 var155
= 1; /* arg is null and recv is not */
4556 { /* Inline kernel#Object#!= (var_nfdt,var154) on <var_nfdt:nullable AType> */
4559 var159
= ((short int (*)(val
*, val
*))(var_nfdt
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_nfdt
, var_other
) /* == on <var_nfdt:nullable AType(AType)>*/;
4565 RET_LABEL157
:(void)0;
4572 { /* Inline modelize_class#AType#mtype (var_nfdt) on <var_nfdt:nullable AType(AType)> */
4573 var163
= var_nfdt
->attrs
[COLOR_modelize_class__AType___mtype
].val
; /* _mtype on <var_nfdt:nullable AType(AType)> */
4575 RET_LABEL162
:(void)0;
4579 if (var161
== NULL
) {
4580 var165
= 0; /* is null */
4582 var165
= 1; /* arg is null and recv is not */
4585 { /* Inline kernel#Object#!= (var161,var164) on <var161:nullable MType> */
4588 var169
= ((short int (*)(val
*, val
*))(var161
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var161
, var_other
) /* == on <var161:nullable MType(MType)>*/;
4594 RET_LABEL167
:(void)0;
4604 var171
= modelize_class__ModelBuilder__resolve_mtype(self
, var_mmodule
, var_mclassdef145
, var_nfdt
);
4608 if (var_bound
== NULL
) {
4609 var173
= 1; /* is null */
4611 var173
= 0; /* arg is null but recv is not */
4614 { /* Inline kernel#Object#== (var_bound,var172) on <var_bound:nullable MType> */
4615 var_other176
= var172
;
4617 { /* Inline kernel#Object#is_same_instance (var_bound,var_other176) on <var_bound:nullable MType(MType)> */
4618 var179
= var_bound
== var_other176
;
4621 RET_LABEL178
:(void)0;
4626 RET_LABEL175
:(void)0;
4636 CONTINUE_label180
: (void)0;
4638 ((void (*)(val
*))(var149
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var149
) /* next on <var149:Iterator[ANode]>*/;
4641 BREAK_label180
: (void)0;
4643 { /* Inline parser_nodes#AStdClassdef#n_superclasses (var_nclassdef140) on <var_nclassdef140:AClassdef(AStdClassdef)> */
4644 var183
= var_nclassdef140
->attrs
[COLOR_parser_nodes__AStdClassdef___n_superclasses
].val
; /* _n_superclasses on <var_nclassdef140:AClassdef(AStdClassdef)> */
4645 if (unlikely(var183
== NULL
)) {
4646 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_superclasses");
4647 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 828);
4651 RET_LABEL182
:(void)0;
4655 var184
= parser_nodes__ANodes__iterator(var181
);
4659 var185
= ((short int (*)(val
*))(var184
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var184
) /* is_ok on <var184:Iterator[ANode]>*/;
4663 var186
= ((val
* (*)(val
*))(var184
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var184
) /* item on <var184:Iterator[ANode]>*/;
4667 var187
= parser_nodes__ASuperclass__n_type(var_nsc
);
4671 { /* Inline modelize_class#AType#mtype (var_ntype) on <var_ntype:AType> */
4672 var190
= var_ntype
->attrs
[COLOR_modelize_class__AType___mtype
].val
; /* _mtype on <var_ntype:AType> */
4674 RET_LABEL189
:(void)0;
4678 if (var188
== NULL
) {
4679 var192
= 0; /* is null */
4681 var192
= 1; /* arg is null and recv is not */
4684 { /* Inline kernel#Object#!= (var188,var191) on <var188:nullable MType> */
4687 var196
= ((short int (*)(val
*, val
*))(var188
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var188
, var_other
) /* == on <var188:nullable MType(MType)>*/;
4693 RET_LABEL194
:(void)0;
4699 var198
= modelize_class__ModelBuilder__resolve_mtype(self
, var_mmodule
, var_mclassdef145
, var_ntype
);
4703 if (var_mtype
== NULL
) {
4704 var200
= 1; /* is null */
4706 var200
= 0; /* arg is null but recv is not */
4709 { /* Inline kernel#Object#== (var_mtype,var199) on <var_mtype:nullable MType> */
4710 var_other176
= var199
;
4712 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other176) on <var_mtype:nullable MType(MType)> */
4713 var205
= var_mtype
== var_other176
;
4716 RET_LABEL204
:(void)0;
4721 RET_LABEL202
:(void)0;
4731 CONTINUE_label206
: (void)0;
4733 ((void (*)(val
*))(var184
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var184
) /* next on <var184:Iterator[ANode]>*/;
4736 BREAK_label206
: (void)0;
4739 CONTINUE_label207
: (void)0;
4741 ((void (*)(val
*))(var137
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var137
) /* next on <var137:Iterator[ANode]>*/;
4744 BREAK_label207
: (void)0;
4746 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
4747 var210
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
4748 if (unlikely(var210
== NULL
)) {
4749 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4750 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
4754 RET_LABEL209
:(void)0;
4758 { /* Inline toolcontext#ToolContext#error_count (var208) on <var208:ToolContext> */
4759 var213
= var208
->attrs
[COLOR_toolcontext__ToolContext___error_count
].l
; /* _error_count on <var208:ToolContext> */
4761 RET_LABEL212
:(void)0;
4765 { /* Inline kernel#Int#!= (var_errcount,var211) on <var_errcount:Int> */
4766 var217
= var_errcount
== var211
;
4770 RET_LABEL216
:(void)0;
4779 { /* Inline parser_nodes#AModule#n_classdefs (var_nmodule) on <var_nmodule:AModule> */
4780 var221
= var_nmodule
->attrs
[COLOR_parser_nodes__AModule___n_classdefs
].val
; /* _n_classdefs on <var_nmodule:AModule> */
4781 if (unlikely(var221
== NULL
)) {
4782 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_classdefs");
4783 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 699);
4787 RET_LABEL220
:(void)0;
4791 var222
= parser_nodes__ANodes__iterator(var219
);
4795 var223
= ((short int (*)(val
*))(var222
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var222
) /* is_ok on <var222:Iterator[ANode]>*/;
4799 var224
= ((val
* (*)(val
*))(var222
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var222
) /* item on <var222:Iterator[ANode]>*/;
4801 var_nclassdef225
= var224
;
4803 { /* Inline modelize_class#AClassdef#mclassdef (var_nclassdef225) on <var_nclassdef225:AClassdef> */
4804 var228
= var_nclassdef225
->attrs
[COLOR_modelize_class__AClassdef___mclassdef
].val
; /* _mclassdef on <var_nclassdef225:AClassdef> */
4806 RET_LABEL227
:(void)0;
4809 if (unlikely(var226
== NULL
)) {
4810 PRINT_ERROR("Runtime error: %s", "Cast failed");
4811 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 339);
4814 var_mclassdef229
= var226
;
4815 var230
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassmodel__MClassType
);
4817 hash_collection__HashMap__init(var230
); /* Direct call hash_collection#HashMap#init on <var230:HashMap[MClass, MClassType]>*/
4819 var_superclasses
= var230
;
4821 { /* Inline model#MClassDef#in_hierarchy (var_mclassdef229) on <var_mclassdef229:MClassDef> */
4822 var233
= var_mclassdef229
->attrs
[COLOR_model__MClassDef___in_hierarchy
].val
; /* _in_hierarchy on <var_mclassdef229:MClassDef> */
4824 RET_LABEL232
:(void)0;
4827 if (var231
== NULL
) {
4828 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4829 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 341);
4832 var234
= poset__POSetElement__greaters(var231
);
4835 var235
= ((val
* (*)(val
*))(var234
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var234
) /* iterator on <var234:Collection[Object](Collection[MClassDef])>*/;
4839 var236
= ((short int (*)(val
*))(var235
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var235
) /* is_ok on <var235:Iterator[nullable Object]>*/;
4843 var237
= ((val
* (*)(val
*))(var235
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var235
) /* item on <var235:Iterator[nullable Object]>*/;
4847 { /* Inline model#MClassDef#supertypes (var_scd) on <var_scd:MClassDef> */
4848 var240
= var_scd
->attrs
[COLOR_model__MClassDef___supertypes
].val
; /* _supertypes on <var_scd:MClassDef> */
4849 if (unlikely(var240
== NULL
)) {
4850 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes");
4851 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 517);
4855 RET_LABEL239
:(void)0;
4859 var241
= array__AbstractArrayRead__iterator(var238
);
4863 var242
= array__ArrayIterator__is_ok(var241
);
4867 var243
= array__ArrayIterator__item(var241
);
4871 { /* Inline model#MClassType#mclass (var_st) on <var_st:MClassType> */
4872 var246
= var_st
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_st:MClassType> */
4873 if (unlikely(var246
== NULL
)) {
4874 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4875 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
4879 RET_LABEL245
:(void)0;
4883 var247
= abstract_collection__MapRead__has_key(var_superclasses
, var244
);
4888 { /* Inline model#MClassType#mclass (var_st) on <var_st:MClassType> */
4889 var251
= var_st
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_st:MClassType> */
4890 if (unlikely(var251
== NULL
)) {
4891 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4892 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
4896 RET_LABEL250
:(void)0;
4900 hash_collection__HashMap___91d_93d_61d(var_superclasses
, var249
, var_st
); /* Direct call hash_collection#HashMap#[]= on <var_superclasses:HashMap[MClass, MClassType]>*/
4904 { /* Inline model#MClassType#mclass (var_st) on <var_st:MClassType> */
4905 var254
= var_st
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_st:MClassType> */
4906 if (unlikely(var254
== NULL
)) {
4907 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4908 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
4912 RET_LABEL253
:(void)0;
4916 var255
= hash_collection__HashMap___91d_93d(var_superclasses
, var252
);
4919 { /* Inline kernel#Object#!= (var255,var_st) on <var255:nullable Object(MClassType)> */
4922 var260
= ((short int (*)(val
*, val
*))(var255
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var255
, var_other
) /* == on <var255:nullable Object(MClassType)>*/;
4928 RET_LABEL258
:(void)0;
4934 { /* Inline model#MClassType#mclass (var_st) on <var_st:MClassType> */
4935 var264
= var_st
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_st:MClassType> */
4936 if (unlikely(var264
== NULL
)) {
4937 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4938 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
4942 RET_LABEL263
:(void)0;
4946 var265
= hash_collection__HashMap___91d_93d(var_superclasses
, var262
);
4949 { /* Inline model#MClassDef#mclass (var_mclassdef229) on <var_mclassdef229:MClassDef> */
4950 var268
= var_mclassdef229
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var_mclassdef229:MClassDef> */
4951 if (unlikely(var268
== NULL
)) {
4952 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4953 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
4957 RET_LABEL267
:(void)0;
4961 { /* Inline model#MClass#mclass_type (var266) on <var266:MClass> */
4962 var271
= var266
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var266:MClass> */
4963 if (unlikely(var271
== NULL
)) {
4964 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
4965 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
4969 RET_LABEL270
:(void)0;
4973 { /* Inline model#MClassDef#bound_mtype (var_mclassdef229) on <var_mclassdef229:MClassDef> */
4974 var274
= var_mclassdef229
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var_mclassdef229:MClassDef> */
4975 if (unlikely(var274
== NULL
)) {
4976 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
4977 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
4981 RET_LABEL273
:(void)0;
4986 var276
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var265
->class->vft
[COLOR_model__MType__resolve_for
]))(var265
, var269
, var272
, var_mmodule
, var275
) /* resolve_for on <var265:nullable Object(MClassType)>*/;
4990 { /* Inline model#MClassDef#mclass (var_mclassdef229) on <var_mclassdef229:MClassDef> */
4991 var279
= var_mclassdef229
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var_mclassdef229:MClassDef> */
4992 if (unlikely(var279
== NULL
)) {
4993 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4994 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
4998 RET_LABEL278
:(void)0;
5002 { /* Inline model#MClass#mclass_type (var277) on <var277:MClass> */
5003 var282
= var277
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var277:MClass> */
5004 if (unlikely(var282
== NULL
)) {
5005 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
5006 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
5010 RET_LABEL281
:(void)0;
5014 { /* Inline model#MClassDef#bound_mtype (var_mclassdef229) on <var_mclassdef229:MClassDef> */
5015 var285
= var_mclassdef229
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var_mclassdef229:MClassDef> */
5016 if (unlikely(var285
== NULL
)) {
5017 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
5018 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
5022 RET_LABEL284
:(void)0;
5027 var287
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_st
->class->vft
[COLOR_model__MType__resolve_for
]))(var_st
, var280
, var283
, var_mmodule
, var286
) /* resolve_for on <var_st:MClassType>*/;
5031 { /* Inline kernel#Object#!= (var_st1,var_st2) on <var_st1:MClassType> */
5032 var_other
= var_st2
;
5034 var292
= ((short int (*)(val
*, val
*))(var_st1
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_st1
, var_other
) /* == on <var_st1:MClassType>*/;
5040 RET_LABEL290
:(void)0;
5048 var295
= "Error: Incompatibles ancestors for ";
5050 var297
= string__NativeString__to_s_with_length(var295
, var296
);
5055 { /* Inline model#MClassDef#mclass (var_mclassdef229) on <var_mclassdef229:MClassDef> */
5056 var300
= var_mclassdef229
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var_mclassdef229:MClassDef> */
5057 if (unlikely(var300
== NULL
)) {
5058 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5059 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
5063 RET_LABEL299
:(void)0;
5067 var302
= varonce301
;
5071 var305
= string__NativeString__to_s_with_length(var303
, var304
);
5073 varonce301
= var302
;
5076 var307
= varonce306
;
5080 var310
= string__NativeString__to_s_with_length(var308
, var309
);
5082 varonce306
= var307
;
5084 var311
= NEW_array__Array(&type_array__Arraykernel__Object
);
5085 { /* var311 = array_instance Array[Object] */
5087 var313
= NEW_array__NativeArray(var312
, &type_array__NativeArraykernel__Object
);
5088 ((struct instance_array__NativeArray
*)var313
)->values
[0] = (val
*) var294
;
5089 ((struct instance_array__NativeArray
*)var313
)->values
[1] = (val
*) var298
;
5090 ((struct instance_array__NativeArray
*)var313
)->values
[2] = (val
*) var302
;
5091 ((struct instance_array__NativeArray
*)var313
)->values
[3] = (val
*) var_st1
;
5092 ((struct instance_array__NativeArray
*)var313
)->values
[4] = (val
*) var307
;
5093 ((struct instance_array__NativeArray
*)var313
)->values
[5] = (val
*) var_st2
;
5095 ((void (*)(val
*, val
*, long))(var311
->class->vft
[COLOR_array__Array__with_native
]))(var311
, var313
, var312
) /* with_native on <var311:Array[Object]>*/;
5099 var314
= ((val
* (*)(val
*))(var311
->class->vft
[COLOR_string__Object__to_s
]))(var311
) /* to_s on <var311:Array[Object]>*/;
5102 modelbuilder__ModelBuilder__error(self
, var_nclassdef225
, var314
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
5109 CONTINUE_label315
: (void)0;
5111 array__ArrayIterator__next(var241
); /* Direct call array#ArrayIterator#next on <var241:ArrayIterator[nullable Object]>*/
5114 BREAK_label315
: (void)0;
5115 CONTINUE_label316
: (void)0;
5117 ((void (*)(val
*))(var235
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var235
) /* next on <var235:Iterator[nullable Object]>*/;
5120 BREAK_label316
: (void)0;
5121 CONTINUE_label317
: (void)0;
5123 ((void (*)(val
*))(var222
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var222
) /* next on <var222:Iterator[ANode]>*/;
5126 BREAK_label317
: (void)0;
5128 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
5129 var320
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
5130 if (unlikely(var320
== NULL
)) {
5131 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
5132 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
5136 RET_LABEL319
:(void)0;
5140 { /* Inline toolcontext#ToolContext#error_count (var318) on <var318:ToolContext> */
5141 var323
= var318
->attrs
[COLOR_toolcontext__ToolContext___error_count
].l
; /* _error_count on <var318:ToolContext> */
5143 RET_LABEL322
:(void)0;
5147 { /* Inline kernel#Int#!= (var_errcount,var321) on <var_errcount:Int> */
5148 var327
= var_errcount
== var321
;
5152 RET_LABEL326
:(void)0;
5161 { /* Inline parser_nodes#AModule#n_classdefs (var_nmodule) on <var_nmodule:AModule> */
5162 var331
= var_nmodule
->attrs
[COLOR_parser_nodes__AModule___n_classdefs
].val
; /* _n_classdefs on <var_nmodule:AModule> */
5163 if (unlikely(var331
== NULL
)) {
5164 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_classdefs");
5165 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 699);
5169 RET_LABEL330
:(void)0;
5173 var332
= parser_nodes__ANodes__iterator(var329
);
5177 var333
= ((short int (*)(val
*))(var332
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var332
) /* is_ok on <var332:Iterator[ANode]>*/;
5181 var334
= ((val
* (*)(val
*))(var332
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var332
) /* item on <var332:Iterator[ANode]>*/;
5183 var_nclassdef335
= var334
;
5184 /* <var_nclassdef335:AClassdef> isa AStdClassdef */
5185 cltype337
= type_parser_nodes__AStdClassdef
.color
;
5186 idtype338
= type_parser_nodes__AStdClassdef
.id
;
5187 if(cltype337
>= var_nclassdef335
->type
->table_size
) {
5190 var336
= var_nclassdef335
->type
->type_table
[cltype337
] == idtype338
;
5194 goto CONTINUE_label340
;
5198 { /* Inline modelize_class#AClassdef#mclassdef (var_nclassdef335) on <var_nclassdef335:AClassdef(AStdClassdef)> */
5199 var343
= var_nclassdef335
->attrs
[COLOR_modelize_class__AClassdef___mclassdef
].val
; /* _mclassdef on <var_nclassdef335:AClassdef(AStdClassdef)> */
5201 RET_LABEL342
:(void)0;
5204 if (unlikely(var341
== NULL
)) {
5205 PRINT_ERROR("Runtime error: %s", "Cast failed");
5206 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 363);
5209 var_mclassdef344
= var341
;
5210 var345
= NEW_array__Array(&type_array__Arraymodel__MClass
);
5212 array__Array__init(var345
); /* Direct call array#Array#init on <var345:Array[MClass]>*/
5214 var_parents
= var345
;
5216 { /* Inline model#MClassDef#in_hierarchy (var_mclassdef344) on <var_mclassdef344:MClassDef> */
5217 var348
= var_mclassdef344
->attrs
[COLOR_model__MClassDef___in_hierarchy
].val
; /* _in_hierarchy on <var_mclassdef344:MClassDef> */
5219 RET_LABEL347
:(void)0;
5222 if (var346
== NULL
) {
5223 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5224 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 368);
5227 var349
= poset__POSetElement__direct_greaters(var346
);
5230 var350
= ((val
* (*)(val
*))(var349
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var349
) /* iterator on <var349:Collection[Object](Collection[MClassDef])>*/;
5234 var351
= ((short int (*)(val
*))(var350
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var350
) /* is_ok on <var350:Iterator[nullable Object]>*/;
5238 var352
= ((val
* (*)(val
*))(var350
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var350
) /* item on <var350:Iterator[nullable Object]>*/;
5242 { /* Inline model#MClassDef#mclass (var_sup) on <var_sup:MClassDef> */
5243 var355
= var_sup
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var_sup:MClassDef> */
5244 if (unlikely(var355
== NULL
)) {
5245 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5246 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
5250 RET_LABEL354
:(void)0;
5254 array__Array__add(var_parents
, var353
); /* Direct call array#Array#add on <var_parents:Array[MClass]>*/
5256 CONTINUE_label356
: (void)0;
5258 ((void (*)(val
*))(var350
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var350
) /* next on <var350:Iterator[nullable Object]>*/;
5261 BREAK_label356
: (void)0;
5262 var357
= NEW_array__ArrayMap(&type_array__ArrayMapmodel__MClassparser_nodes__AType
);
5264 array__ArrayMap__init(var357
); /* Direct call array#ArrayMap#init on <var357:ArrayMap[MClass, AType]>*/
5266 var_seen_parents
= var357
;
5268 var359
= varonce358
;
5272 var362
= string__NativeString__to_s_with_length(var360
, var361
);
5274 varonce358
= var359
;
5277 var363
= modelbuilder__ModelBuilder__try_get_mclass_by_name(self
, var_nmodule
, var_mmodule
, var359
);
5279 var_objectclass
= var363
;
5281 { /* Inline parser_nodes#AStdClassdef#n_superclasses (var_nclassdef335) on <var_nclassdef335:AClassdef(AStdClassdef)> */
5282 var366
= var_nclassdef335
->attrs
[COLOR_parser_nodes__AStdClassdef___n_superclasses
].val
; /* _n_superclasses on <var_nclassdef335:AClassdef(AStdClassdef)> */
5283 if (unlikely(var366
== NULL
)) {
5284 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_superclasses");
5285 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 828);
5289 RET_LABEL365
:(void)0;
5293 var367
= parser_nodes__ANodes__iterator(var364
);
5297 var368
= ((short int (*)(val
*))(var367
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var367
) /* is_ok on <var367:Iterator[ANode]>*/;
5301 var369
= ((val
* (*)(val
*))(var367
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var367
) /* item on <var367:Iterator[ANode]>*/;
5303 var_nsc370
= var369
;
5305 var371
= parser_nodes__ASuperclass__n_type(var_nsc370
);
5307 var_ntype372
= var371
;
5309 { /* Inline modelize_class#AType#mtype (var_ntype372) on <var_ntype372:AType> */
5310 var375
= var_ntype372
->attrs
[COLOR_modelize_class__AType___mtype
].val
; /* _mtype on <var_ntype372:AType> */
5312 RET_LABEL374
:(void)0;
5315 var_mtype376
= var373
;
5317 if (var_mtype376
== NULL
) {
5318 var378
= 1; /* is null */
5320 var378
= 0; /* arg is null but recv is not */
5323 { /* Inline kernel#Object#== (var_mtype376,var377) on <var_mtype376:nullable MType> */
5324 var_other176
= var377
;
5326 { /* Inline kernel#Object#is_same_instance (var_mtype376,var_other176) on <var_mtype376:nullable MType(MType)> */
5327 var383
= var_mtype376
== var_other176
;
5330 RET_LABEL382
:(void)0;
5335 RET_LABEL380
:(void)0;
5340 goto CONTINUE_label384
;
5343 /* <var_mtype376:nullable MType(MType)> isa MClassType */
5344 cltype386
= type_model__MClassType
.color
;
5345 idtype387
= type_model__MClassType
.id
;
5346 if(cltype386
>= var_mtype376
->type
->table_size
) {
5349 var385
= var_mtype376
->type
->type_table
[cltype386
] == idtype387
;
5351 if (unlikely(!var385
)) {
5352 PRINT_ERROR("Runtime error: %s", "Assert failed");
5353 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 383);
5357 { /* Inline model#MClassType#mclass (var_mtype376) on <var_mtype376:nullable MType(MClassType)> */
5358 var390
= var_mtype376
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype376:nullable MType(MClassType)> */
5359 if (unlikely(var390
== NULL
)) {
5360 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5361 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
5365 RET_LABEL389
:(void)0;
5370 var392
= array__AbstractArrayRead__has(var_parents
, var_sc
);
5378 { /* Inline kernel#Object#== (var_sc,var_objectclass) on <var_sc:MClass> */
5379 var_other176
= var_objectclass
;
5381 { /* Inline kernel#Object#is_same_instance (var_sc,var_other176) on <var_sc:MClass> */
5382 var400
= var_sc
== var_other176
;
5385 RET_LABEL399
:(void)0;
5390 RET_LABEL397
:(void)0;
5398 var402
= parser_nodes__ANode__location(var_ntype372
);
5401 { /* Inline location#Location#file (var402) on <var402:Location> */
5402 var405
= var402
->attrs
[COLOR_location__Location___file
].val
; /* _file on <var402:Location> */
5404 RET_LABEL404
:(void)0;
5408 if (var403
== NULL
) {
5409 var407
= 0; /* is null */
5411 var407
= 1; /* arg is null and recv is not */
5414 { /* Inline kernel#Object#!= (var403,var406) on <var403:nullable SourceFile> */
5417 var411
= ((short int (*)(val
*, val
*))(var403
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var403
, var_other
) /* == on <var403:nullable SourceFile(SourceFile)>*/;
5423 RET_LABEL409
:(void)0;
5430 var414
= parser_nodes__ANode__location(var_ntype372
);
5433 { /* Inline location#Location#file (var414) on <var414:Location> */
5434 var417
= var414
->attrs
[COLOR_location__Location___file
].val
; /* _file on <var414:Location> */
5436 RET_LABEL416
:(void)0;
5439 if (var415
== NULL
) {
5440 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5441 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 387);
5444 { /* Inline location#SourceFile#filename (var415) on <var415:nullable SourceFile> */
5445 if (unlikely(var415
== NULL
)) {
5446 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5447 PRINT_ERROR(" (%s:%d)\n", "src/location.nit", 22);
5450 var420
= var415
->attrs
[COLOR_location__SourceFile___filename
].val
; /* _filename on <var415:nullable SourceFile> */
5451 if (unlikely(var420
== NULL
)) {
5452 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
5453 PRINT_ERROR(" (%s:%d)\n", "src/location.nit", 22);
5457 RET_LABEL419
:(void)0;
5461 var421
= string__Text__is_empty(var418
);
5470 var424
= varonce423
;
5472 var425
= "Warning: superfluous super-class ";
5474 var427
= string__NativeString__to_s_with_length(var425
, var426
);
5476 varonce423
= var424
;
5479 var429
= varonce428
;
5481 var430
= " in class ";
5483 var432
= string__NativeString__to_s_with_length(var430
, var431
);
5485 varonce428
= var429
;
5488 { /* Inline model#MClassDef#mclass (var_mclassdef344) on <var_mclassdef344:MClassDef> */
5489 var435
= var_mclassdef344
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var_mclassdef344:MClassDef> */
5490 if (unlikely(var435
== NULL
)) {
5491 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5492 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
5496 RET_LABEL434
:(void)0;
5500 var437
= varonce436
;
5504 var440
= string__NativeString__to_s_with_length(var438
, var439
);
5506 varonce436
= var437
;
5508 var441
= NEW_array__Array(&type_array__Arraykernel__Object
);
5509 { /* var441 = array_instance Array[Object] */
5511 var443
= NEW_array__NativeArray(var442
, &type_array__NativeArraykernel__Object
);
5512 ((struct instance_array__NativeArray
*)var443
)->values
[0] = (val
*) var424
;
5513 ((struct instance_array__NativeArray
*)var443
)->values
[1] = (val
*) var_mtype376
;
5514 ((struct instance_array__NativeArray
*)var443
)->values
[2] = (val
*) var429
;
5515 ((struct instance_array__NativeArray
*)var443
)->values
[3] = (val
*) var433
;
5516 ((struct instance_array__NativeArray
*)var443
)->values
[4] = (val
*) var437
;
5518 ((void (*)(val
*, val
*, long))(var441
->class->vft
[COLOR_array__Array__with_native
]))(var441
, var443
, var442
) /* with_native on <var441:Array[Object]>*/;
5522 var444
= ((val
* (*)(val
*))(var441
->class->vft
[COLOR_string__Object__to_s
]))(var441
) /* to_s on <var441:Array[Object]>*/;
5525 modelbuilder__ModelBuilder__warning(self
, var_ntype372
, var444
); /* Direct call modelbuilder#ModelBuilder#warning on <self:ModelBuilder>*/
5531 var445
= abstract_collection__MapRead__has_key(var_seen_parents
, var_sc
);
5536 array__ArrayMap___91d_93d_61d(var_seen_parents
, var_sc
, var_ntype372
); /* Direct call array#ArrayMap#[]= on <var_seen_parents:ArrayMap[MClass, AType]>*/
5540 var448
= varonce447
;
5542 var449
= "Warning: duplicated super-class ";
5544 var451
= string__NativeString__to_s_with_length(var449
, var450
);
5546 varonce447
= var448
;
5549 var453
= varonce452
;
5551 var454
= " in class ";
5553 var456
= string__NativeString__to_s_with_length(var454
, var455
);
5555 varonce452
= var453
;
5558 { /* Inline model#MClassDef#mclass (var_mclassdef344) on <var_mclassdef344:MClassDef> */
5559 var459
= var_mclassdef344
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var_mclassdef344:MClassDef> */
5560 if (unlikely(var459
== NULL
)) {
5561 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5562 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
5566 RET_LABEL458
:(void)0;
5570 var461
= varonce460
;
5574 var464
= string__NativeString__to_s_with_length(var462
, var463
);
5576 varonce460
= var461
;
5578 var465
= NEW_array__Array(&type_array__Arraykernel__Object
);
5579 { /* var465 = array_instance Array[Object] */
5581 var467
= NEW_array__NativeArray(var466
, &type_array__NativeArraykernel__Object
);
5582 ((struct instance_array__NativeArray
*)var467
)->values
[0] = (val
*) var448
;
5583 ((struct instance_array__NativeArray
*)var467
)->values
[1] = (val
*) var_mtype376
;
5584 ((struct instance_array__NativeArray
*)var467
)->values
[2] = (val
*) var453
;
5585 ((struct instance_array__NativeArray
*)var467
)->values
[3] = (val
*) var457
;
5586 ((struct instance_array__NativeArray
*)var467
)->values
[4] = (val
*) var461
;
5588 ((void (*)(val
*, val
*, long))(var465
->class->vft
[COLOR_array__Array__with_native
]))(var465
, var467
, var466
) /* with_native on <var465:Array[Object]>*/;
5592 var468
= ((val
* (*)(val
*))(var465
->class->vft
[COLOR_string__Object__to_s
]))(var465
) /* to_s on <var465:Array[Object]>*/;
5595 modelbuilder__ModelBuilder__warning(self
, var_ntype372
, var468
); /* Direct call modelbuilder#ModelBuilder#warning on <self:ModelBuilder>*/
5599 CONTINUE_label384
: (void)0;
5601 ((void (*)(val
*))(var367
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var367
) /* next on <var367:Iterator[ANode]>*/;
5604 BREAK_label384
: (void)0;
5605 CONTINUE_label340
: (void)0;
5607 ((void (*)(val
*))(var332
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var332
) /* next on <var332:Iterator[ANode]>*/;
5610 BREAK_label340
: (void)0;
5613 /* method modelize_class#ModelBuilder#build_classes for (self: Object, AModule) */
5614 void VIRTUAL_modelize_class__ModelBuilder__build_classes(val
* self
, val
* p0
) {
5615 modelize_class__ModelBuilder__build_classes(self
, p0
); /* Direct call modelize_class#ModelBuilder#build_classes on <self:Object(ModelBuilder)>*/
5618 /* method modelize_class#ModelBuilder#mclassdef2nclassdef for (self: ModelBuilder): HashMap[MClassDef, AClassdef] */
5619 val
* modelize_class__ModelBuilder__mclassdef2nclassdef(val
* self
) {
5620 val
* var
/* : HashMap[MClassDef, AClassdef] */;
5621 val
* var1
/* : HashMap[MClassDef, AClassdef] */;
5622 var1
= self
->attrs
[COLOR_modelize_class__ModelBuilder___mclassdef2nclassdef
].val
; /* _mclassdef2nclassdef on <self:ModelBuilder> */
5623 if (unlikely(var1
== NULL
)) {
5624 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef2nclassdef");
5625 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 399);
5632 /* method modelize_class#ModelBuilder#mclassdef2nclassdef for (self: Object): HashMap[MClassDef, AClassdef] */
5633 val
* VIRTUAL_modelize_class__ModelBuilder__mclassdef2nclassdef(val
* self
) {
5634 val
* var
/* : HashMap[MClassDef, AClassdef] */;
5635 val
* var1
/* : HashMap[MClassDef, AClassdef] */;
5636 val
* var3
/* : HashMap[MClassDef, AClassdef] */;
5637 { /* Inline modelize_class#ModelBuilder#mclassdef2nclassdef (self) on <self:Object(ModelBuilder)> */
5638 var3
= self
->attrs
[COLOR_modelize_class__ModelBuilder___mclassdef2nclassdef
].val
; /* _mclassdef2nclassdef on <self:Object(ModelBuilder)> */
5639 if (unlikely(var3
== NULL
)) {
5640 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef2nclassdef");
5641 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 399);
5651 /* method modelize_class#ModelBuilder#resolve_mtype_unchecked for (self: ModelBuilder, MModule, nullable MClassDef, AType, Bool): nullable MType */
5652 val
* modelize_class__ModelBuilder__resolve_mtype_unchecked(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
5653 val
* var
/* : nullable MType */;
5654 val
* var_mmodule
/* var mmodule: MModule */;
5655 val
* var_mclassdef
/* var mclassdef: nullable MClassDef */;
5656 val
* var_ntype
/* var ntype: AType */;
5657 short int var_with_virtual
/* var with_virtual: Bool */;
5658 val
* var1
/* : TClassid */;
5659 val
* var2
/* : String */;
5660 val
* var_name
/* var name: String */;
5661 short int var3
/* : Bool */;
5662 val
* var4
/* : null */;
5663 short int var5
/* : Bool */;
5664 short int var6
/* : Bool */;
5665 val
* var_other
/* var other: nullable Object */;
5666 short int var8
/* : Bool */;
5667 short int var9
/* : Bool */;
5668 short int var10
/* : Bool */;
5669 short int var_
/* var : Bool */;
5670 val
* var11
/* : nullable MProperty */;
5671 short int var12
/* : Bool */;
5674 const char* var_class_name
;
5675 val
* var_prop
/* var prop: nullable MVirtualTypeProp */;
5676 val
* var13
/* : null */;
5677 short int var14
/* : Bool */;
5678 short int var15
/* : Bool */;
5679 short int var17
/* : Bool */;
5680 short int var18
/* : Bool */;
5681 short int var19
/* : Bool */;
5682 val
* var20
/* : ANodes[AType] */;
5683 val
* var22
/* : ANodes[AType] */;
5684 short int var23
/* : Bool */;
5685 short int var24
/* : Bool */;
5686 static val
* varonce
;
5687 val
* var25
/* : String */;
5688 char* var26
/* : NativeString */;
5689 long var27
/* : Int */;
5690 val
* var28
/* : FlatString */;
5691 static val
* varonce29
;
5692 val
* var30
/* : String */;
5693 char* var31
/* : NativeString */;
5694 long var32
/* : Int */;
5695 val
* var33
/* : FlatString */;
5696 val
* var34
/* : Array[Object] */;
5697 long var35
/* : Int */;
5698 val
* var36
/* : NativeArray[Object] */;
5699 val
* var37
/* : String */;
5700 val
* var38
/* : MVirtualType */;
5701 val
* var40
/* : MVirtualType */;
5702 val
* var_res
/* var res: MType */;
5703 val
* var41
/* : nullable TKwnullable */;
5704 val
* var42
/* : null */;
5705 short int var43
/* : Bool */;
5706 short int var44
/* : Bool */;
5707 short int var46
/* : Bool */;
5708 short int var47
/* : Bool */;
5709 short int var48
/* : Bool */;
5710 val
* var49
/* : MType */;
5711 short int var51
/* : Bool */;
5712 val
* var52
/* : null */;
5713 short int var53
/* : Bool */;
5714 short int var54
/* : Bool */;
5715 short int var56
/* : Bool */;
5716 short int var57
/* : Bool */;
5717 short int var58
/* : Bool */;
5718 short int var_59
/* var : Bool */;
5719 val
* var60
/* : Array[String] */;
5720 val
* var62
/* : Array[String] */;
5721 short int var63
/* : Bool */;
5722 val
* var64
/* : ANodes[AType] */;
5723 val
* var66
/* : ANodes[AType] */;
5724 short int var67
/* : Bool */;
5725 short int var68
/* : Bool */;
5726 static val
* varonce69
;
5727 val
* var70
/* : String */;
5728 char* var71
/* : NativeString */;
5729 long var72
/* : Int */;
5730 val
* var73
/* : FlatString */;
5731 static val
* varonce74
;
5732 val
* var75
/* : String */;
5733 char* var76
/* : NativeString */;
5734 long var77
/* : Int */;
5735 val
* var78
/* : FlatString */;
5736 val
* var79
/* : Array[Object] */;
5737 long var80
/* : Int */;
5738 val
* var81
/* : NativeArray[Object] */;
5739 val
* var82
/* : String */;
5740 val
* var83
/* : Range[Int] */;
5741 long var84
/* : Int */;
5742 val
* var85
/* : Array[String] */;
5743 val
* var87
/* : Array[String] */;
5744 long var88
/* : Int */;
5745 val
* var89
/* : Discrete */;
5746 val
* var90
/* : Discrete */;
5747 val
* var91
/* : Iterator[Discrete] */;
5748 short int var92
/* : Bool */;
5749 val
* var93
/* : nullable Object */;
5750 long var_i
/* var i: Int */;
5751 long var94
/* : Int */;
5752 val
* var95
/* : Array[String] */;
5753 val
* var97
/* : Array[String] */;
5754 val
* var98
/* : nullable Object */;
5755 short int var99
/* : Bool */;
5756 short int var100
/* : Bool */;
5757 val
* var101
/* : MClass */;
5758 val
* var103
/* : MClass */;
5759 val
* var104
/* : MClassType */;
5760 val
* var106
/* : MClassType */;
5761 val
* var107
/* : Array[MType] */;
5762 val
* var109
/* : Array[MType] */;
5763 val
* var110
/* : nullable Object */;
5764 val
* var111
/* : nullable TKwnullable */;
5765 val
* var112
/* : null */;
5766 short int var113
/* : Bool */;
5767 short int var114
/* : Bool */;
5768 short int var116
/* : Bool */;
5769 short int var117
/* : Bool */;
5770 short int var118
/* : Bool */;
5771 val
* var119
/* : MType */;
5772 val
* var121
/* : nullable MClass */;
5773 val
* var_mclass
/* var mclass: nullable MClass */;
5774 val
* var122
/* : null */;
5775 short int var123
/* : Bool */;
5776 short int var124
/* : Bool */;
5777 short int var126
/* : Bool */;
5778 short int var127
/* : Bool */;
5779 short int var128
/* : Bool */;
5780 val
* var129
/* : ANodes[AType] */;
5781 val
* var131
/* : ANodes[AType] */;
5782 long var132
/* : Int */;
5783 long var_arity
/* var arity: Int */;
5784 long var133
/* : Int */;
5785 long var135
/* : Int */;
5786 short int var136
/* : Bool */;
5787 short int var137
/* : Bool */;
5788 short int var139
/* : Bool */;
5789 short int var140
/* : Bool */;
5790 long var141
/* : Int */;
5791 short int var142
/* : Bool */;
5792 short int var143
/* : Bool */;
5793 short int var145
/* : Bool */;
5794 static val
* varonce146
;
5795 val
* var147
/* : String */;
5796 char* var148
/* : NativeString */;
5797 long var149
/* : Int */;
5798 val
* var150
/* : FlatString */;
5799 static val
* varonce151
;
5800 val
* var152
/* : String */;
5801 char* var153
/* : NativeString */;
5802 long var154
/* : Int */;
5803 val
* var155
/* : FlatString */;
5804 val
* var156
/* : Array[Object] */;
5805 long var157
/* : Int */;
5806 val
* var158
/* : NativeArray[Object] */;
5807 val
* var159
/* : String */;
5808 long var160
/* : Int */;
5809 long var162
/* : Int */;
5810 long var163
/* : Int */;
5811 short int var164
/* : Bool */;
5812 short int var165
/* : Bool */;
5813 short int var167
/* : Bool */;
5814 static val
* varonce168
;
5815 val
* var169
/* : String */;
5816 char* var170
/* : NativeString */;
5817 long var171
/* : Int */;
5818 val
* var172
/* : FlatString */;
5819 static val
* varonce173
;
5820 val
* var174
/* : String */;
5821 char* var175
/* : NativeString */;
5822 long var176
/* : Int */;
5823 val
* var177
/* : FlatString */;
5824 val
* var178
/* : Array[Object] */;
5825 long var179
/* : Int */;
5826 val
* var180
/* : NativeArray[Object] */;
5827 val
* var181
/* : String */;
5828 static val
* varonce182
;
5829 val
* var183
/* : String */;
5830 char* var184
/* : NativeString */;
5831 long var185
/* : Int */;
5832 val
* var186
/* : FlatString */;
5833 static val
* varonce187
;
5834 val
* var188
/* : String */;
5835 char* var189
/* : NativeString */;
5836 long var190
/* : Int */;
5837 val
* var191
/* : FlatString */;
5838 long var192
/* : Int */;
5839 long var194
/* : Int */;
5840 static val
* varonce195
;
5841 val
* var196
/* : String */;
5842 char* var197
/* : NativeString */;
5843 long var198
/* : Int */;
5844 val
* var199
/* : FlatString */;
5845 static val
* varonce200
;
5846 val
* var201
/* : String */;
5847 char* var202
/* : NativeString */;
5848 long var203
/* : Int */;
5849 val
* var204
/* : FlatString */;
5850 val
* var205
/* : Array[Object] */;
5851 long var206
/* : Int */;
5852 val
* var207
/* : NativeArray[Object] */;
5853 val
* var208
/* : Object */;
5854 val
* var209
/* : Object */;
5855 val
* var210
/* : String */;
5856 val
* var211
/* : null */;
5857 long var212
/* : Int */;
5858 short int var213
/* : Bool */;
5859 short int var214
/* : Bool */;
5860 short int var216
/* : Bool */;
5861 val
* var217
/* : MClassType */;
5862 val
* var219
/* : MClassType */;
5863 val
* var220
/* : nullable TKwnullable */;
5864 val
* var221
/* : null */;
5865 short int var222
/* : Bool */;
5866 short int var223
/* : Bool */;
5867 short int var225
/* : Bool */;
5868 short int var226
/* : Bool */;
5869 short int var227
/* : Bool */;
5870 val
* var228
/* : MType */;
5871 val
* var230
/* : Array[MType] */;
5872 val
* var_mtypes
/* var mtypes: Array[MType] */;
5873 val
* var231
/* : ANodes[AType] */;
5874 val
* var233
/* : ANodes[AType] */;
5875 val
* var234
/* : Iterator[ANode] */;
5876 short int var235
/* : Bool */;
5877 val
* var236
/* : nullable Object */;
5878 val
* var_nt
/* var nt: AType */;
5879 val
* var237
/* : nullable MType */;
5880 val
* var_mt
/* var mt: nullable MType */;
5881 val
* var238
/* : null */;
5882 short int var239
/* : Bool */;
5883 short int var240
/* : Bool */;
5884 val
* var_other242
/* var other: nullable Object */;
5885 short int var243
/* : Bool */;
5886 short int var245
/* : Bool */;
5887 val
* var246
/* : null */;
5888 val
* var248
/* : MClassType */;
5889 val
* var249
/* : nullable TKwnullable */;
5890 val
* var250
/* : null */;
5891 short int var251
/* : Bool */;
5892 short int var252
/* : Bool */;
5893 short int var254
/* : Bool */;
5894 short int var255
/* : Bool */;
5895 short int var256
/* : Bool */;
5896 val
* var257
/* : MType */;
5897 static val
* varonce259
;
5898 val
* var260
/* : String */;
5899 char* var261
/* : NativeString */;
5900 long var262
/* : Int */;
5901 val
* var263
/* : FlatString */;
5902 static val
* varonce264
;
5903 val
* var265
/* : String */;
5904 char* var266
/* : NativeString */;
5905 long var267
/* : Int */;
5906 val
* var268
/* : FlatString */;
5907 static val
* varonce269
;
5908 val
* var270
/* : String */;
5909 char* var271
/* : NativeString */;
5910 long var272
/* : Int */;
5911 val
* var273
/* : FlatString */;
5912 val
* var274
/* : Array[Object] */;
5913 long var275
/* : Int */;
5914 val
* var276
/* : NativeArray[Object] */;
5915 val
* var277
/* : String */;
5916 val
* var278
/* : null */;
5920 var_with_virtual
= p3
;
5922 var1
= parser_nodes__AType__n_id(var_ntype
);
5925 var2
= lexer_work__Token__text(var1
);
5929 if (var_mclassdef
== NULL
) {
5930 var5
= 0; /* is null */
5932 var5
= 1; /* arg is null and recv is not */
5935 { /* Inline kernel#Object#!= (var_mclassdef,var4) on <var_mclassdef:nullable MClassDef> */
5938 var9
= ((short int (*)(val
*, val
*))(var_mclassdef
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mclassdef
, var_other
) /* == on <var_mclassdef:nullable MClassDef(MClassDef)>*/;
5950 var3
= var_with_virtual
;
5956 var11
= modelbuilder__ModelBuilder__try_get_mproperty_by_name(self
, var_ntype
, var_mclassdef
, var_name
);
5958 /* <var11:nullable MProperty> isa nullable MVirtualTypeProp */
5959 cltype
= type_nullable_model__MVirtualTypeProp
.color
;
5960 idtype
= type_nullable_model__MVirtualTypeProp
.id
;
5964 if(cltype
>= var11
->type
->table_size
) {
5967 var12
= var11
->type
->type_table
[cltype
] == idtype
;
5970 if (unlikely(!var12
)) {
5971 var_class_name
= var11
== NULL ?
"null" : var11
->type
->name
;
5972 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MVirtualTypeProp", var_class_name
);
5973 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 414);
5978 if (var_prop
== NULL
) {
5979 var14
= 0; /* is null */
5981 var14
= 1; /* arg is null and recv is not */
5984 { /* Inline kernel#Object#!= (var_prop,var13) on <var_prop:nullable MVirtualTypeProp> */
5987 var18
= ((short int (*)(val
*, val
*))(var_prop
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_prop
, var_other
) /* == on <var_prop:nullable MVirtualTypeProp(MVirtualTypeProp)>*/;
5993 RET_LABEL16
:(void)0;
5999 { /* Inline parser_nodes#AType#n_types (var_ntype) on <var_ntype:AType> */
6000 var22
= var_ntype
->attrs
[COLOR_parser_nodes__AType___n_types
].val
; /* _n_types on <var_ntype:AType> */
6001 if (unlikely(var22
== NULL
)) {
6002 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types");
6003 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 1397);
6007 RET_LABEL21
:(void)0;
6011 var23
= parser_nodes__ANodes__is_empty(var20
);
6018 var26
= "Type error: formal type ";
6020 var28
= string__NativeString__to_s_with_length(var26
, var27
);
6027 var31
= " cannot have formal parameters.";
6029 var33
= string__NativeString__to_s_with_length(var31
, var32
);
6033 var34
= NEW_array__Array(&type_array__Arraykernel__Object
);
6034 { /* var34 = array_instance Array[Object] */
6036 var36
= NEW_array__NativeArray(var35
, &type_array__NativeArraykernel__Object
);
6037 ((struct instance_array__NativeArray
*)var36
)->values
[0] = (val
*) var25
;
6038 ((struct instance_array__NativeArray
*)var36
)->values
[1] = (val
*) var_name
;
6039 ((struct instance_array__NativeArray
*)var36
)->values
[2] = (val
*) var30
;
6041 ((void (*)(val
*, val
*, long))(var34
->class->vft
[COLOR_array__Array__with_native
]))(var34
, var36
, var35
) /* with_native on <var34:Array[Object]>*/;
6045 var37
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_string__Object__to_s
]))(var34
) /* to_s on <var34:Array[Object]>*/;
6048 modelbuilder__ModelBuilder__error(self
, var_ntype
, var37
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
6053 { /* Inline model#MVirtualTypeProp#mvirtualtype (var_prop) on <var_prop:nullable MVirtualTypeProp(MVirtualTypeProp)> */
6054 var40
= var_prop
->attrs
[COLOR_model__MVirtualTypeProp___mvirtualtype
].val
; /* _mvirtualtype on <var_prop:nullable MVirtualTypeProp(MVirtualTypeProp)> */
6055 if (unlikely(var40
== NULL
)) {
6056 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mvirtualtype");
6057 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1858);
6061 RET_LABEL39
:(void)0;
6066 var41
= parser_nodes__AType__n_kwnullable(var_ntype
);
6069 if (var41
== NULL
) {
6070 var43
= 0; /* is null */
6072 var43
= 1; /* arg is null and recv is not */
6075 { /* Inline kernel#Object#!= (var41,var42) on <var41:nullable TKwnullable> */
6078 var47
= ((short int (*)(val
*, val
*))(var41
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var41
, var_other
) /* == on <var41:nullable TKwnullable(TKwnullable)>*/;
6084 RET_LABEL45
:(void)0;
6090 var49
= model__MType__as_nullable(var_res
);
6096 { /* Inline modelize_class#AType#mtype= (var_ntype,var_res) on <var_ntype:AType> */
6097 var_ntype
->attrs
[COLOR_modelize_class__AType___mtype
].val
= var_res
; /* _mtype on <var_ntype:AType> */
6098 RET_LABEL50
:(void)0;
6108 if (var_mclassdef
== NULL
) {
6109 var53
= 0; /* is null */
6111 var53
= 1; /* arg is null and recv is not */
6114 { /* Inline kernel#Object#!= (var_mclassdef,var52) on <var_mclassdef:nullable MClassDef> */
6117 var57
= ((short int (*)(val
*, val
*))(var_mclassdef
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mclassdef
, var_other
) /* == on <var_mclassdef:nullable MClassDef(MClassDef)>*/;
6123 RET_LABEL55
:(void)0;
6130 { /* Inline model#MClassDef#parameter_names (var_mclassdef) on <var_mclassdef:nullable MClassDef(MClassDef)> */
6131 var62
= var_mclassdef
->attrs
[COLOR_model__MClassDef___parameter_names
].val
; /* _parameter_names on <var_mclassdef:nullable MClassDef(MClassDef)> */
6132 if (unlikely(var62
== NULL
)) {
6133 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _parameter_names");
6134 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 489);
6138 RET_LABEL61
:(void)0;
6142 var63
= array__AbstractArrayRead__has(var60
, var_name
);
6150 { /* Inline parser_nodes#AType#n_types (var_ntype) on <var_ntype:AType> */
6151 var66
= var_ntype
->attrs
[COLOR_parser_nodes__AType___n_types
].val
; /* _n_types on <var_ntype:AType> */
6152 if (unlikely(var66
== NULL
)) {
6153 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types");
6154 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 1397);
6158 RET_LABEL65
:(void)0;
6162 var67
= parser_nodes__ANodes__is_empty(var64
);
6169 var71
= "Type error: formal type ";
6171 var73
= string__NativeString__to_s_with_length(var71
, var72
);
6178 var76
= " cannot have formal parameters.";
6180 var78
= string__NativeString__to_s_with_length(var76
, var77
);
6184 var79
= NEW_array__Array(&type_array__Arraykernel__Object
);
6185 { /* var79 = array_instance Array[Object] */
6187 var81
= NEW_array__NativeArray(var80
, &type_array__NativeArraykernel__Object
);
6188 ((struct instance_array__NativeArray
*)var81
)->values
[0] = (val
*) var70
;
6189 ((struct instance_array__NativeArray
*)var81
)->values
[1] = (val
*) var_name
;
6190 ((struct instance_array__NativeArray
*)var81
)->values
[2] = (val
*) var75
;
6192 ((void (*)(val
*, val
*, long))(var79
->class->vft
[COLOR_array__Array__with_native
]))(var79
, var81
, var80
) /* with_native on <var79:Array[Object]>*/;
6196 var82
= ((val
* (*)(val
*))(var79
->class->vft
[COLOR_string__Object__to_s
]))(var79
) /* to_s on <var79:Array[Object]>*/;
6199 modelbuilder__ModelBuilder__error(self
, var_ntype
, var82
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
6203 var83
= NEW_range__Range(&type_range__Rangekernel__Int
);
6206 { /* Inline model#MClassDef#parameter_names (var_mclassdef) on <var_mclassdef:nullable MClassDef(MClassDef)> */
6207 var87
= var_mclassdef
->attrs
[COLOR_model__MClassDef___parameter_names
].val
; /* _parameter_names on <var_mclassdef:nullable MClassDef(MClassDef)> */
6208 if (unlikely(var87
== NULL
)) {
6209 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _parameter_names");
6210 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 489);
6214 RET_LABEL86
:(void)0;
6218 var88
= array__AbstractArrayRead__length(var85
);
6221 var89
= BOX_kernel__Int(var84
); /* autobox from Int to Discrete */
6222 var90
= BOX_kernel__Int(var88
); /* autobox from Int to Discrete */
6223 range__Range__without_last(var83
, var89
, var90
); /* Direct call range#Range#without_last on <var83:Range[Int]>*/
6226 var91
= range__Range__iterator(var83
);
6230 var92
= ((short int (*)(val
*))(var91
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var91
) /* is_ok on <var91:Iterator[Discrete]>*/;
6234 var93
= ((val
* (*)(val
*))(var91
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var91
) /* item on <var91:Iterator[Discrete]>*/;
6236 var94
= ((struct instance_kernel__Int
*)var93
)->value
; /* autounbox from nullable Object to Int */;
6239 { /* Inline model#MClassDef#parameter_names (var_mclassdef) on <var_mclassdef:nullable MClassDef(MClassDef)> */
6240 var97
= var_mclassdef
->attrs
[COLOR_model__MClassDef___parameter_names
].val
; /* _parameter_names on <var_mclassdef:nullable MClassDef(MClassDef)> */
6241 if (unlikely(var97
== NULL
)) {
6242 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _parameter_names");
6243 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 489);
6247 RET_LABEL96
:(void)0;
6251 var98
= array__Array___91d_93d(var95
, var_i
);
6254 var100
= string__FlatString___61d_61d(var98
, var_name
);
6259 { /* Inline model#MClassDef#mclass (var_mclassdef) on <var_mclassdef:nullable MClassDef(MClassDef)> */
6260 var103
= var_mclassdef
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var_mclassdef:nullable MClassDef(MClassDef)> */
6261 if (unlikely(var103
== NULL
)) {
6262 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6263 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
6267 RET_LABEL102
:(void)0;
6271 { /* Inline model#MClass#mclass_type (var101) on <var101:MClass> */
6272 var106
= var101
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var101:MClass> */
6273 if (unlikely(var106
== NULL
)) {
6274 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
6275 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
6279 RET_LABEL105
:(void)0;
6283 { /* Inline model#MClassType#arguments (var104) on <var104:MClassType> */
6284 var109
= var104
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <var104:MClassType> */
6285 if (unlikely(var109
== NULL
)) {
6286 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
6287 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
6291 RET_LABEL108
:(void)0;
6295 var110
= array__Array___91d_93d(var107
, var_i
);
6299 var111
= parser_nodes__AType__n_kwnullable(var_ntype
);
6302 if (var111
== NULL
) {
6303 var113
= 0; /* is null */
6305 var113
= 1; /* arg is null and recv is not */
6308 { /* Inline kernel#Object#!= (var111,var112) on <var111:nullable TKwnullable> */
6311 var117
= ((short int (*)(val
*, val
*))(var111
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var111
, var_other
) /* == on <var111:nullable TKwnullable(TKwnullable)>*/;
6317 RET_LABEL115
:(void)0;
6323 var119
= ((val
* (*)(val
*))(var_res
->class->vft
[COLOR_model__MType__as_nullable
]))(var_res
) /* as_nullable on <var_res:MType>*/;
6329 { /* Inline modelize_class#AType#mtype= (var_ntype,var_res) on <var_ntype:AType> */
6330 var_ntype
->attrs
[COLOR_modelize_class__AType___mtype
].val
= var_res
; /* _mtype on <var_ntype:AType> */
6331 RET_LABEL120
:(void)0;
6338 CONTINUE_label
: (void)0;
6340 ((void (*)(val
*))(var91
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var91
) /* next on <var91:Iterator[Discrete]>*/;
6343 BREAK_label
: (void)0;
6344 PRINT_ERROR("Runtime error: %s", "Aborted");
6345 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 439);
6350 var121
= modelbuilder__ModelBuilder__try_get_mclass_by_name(self
, var_ntype
, var_mmodule
, var_name
);
6352 var_mclass
= var121
;
6354 if (var_mclass
== NULL
) {
6355 var123
= 0; /* is null */
6357 var123
= 1; /* arg is null and recv is not */
6360 { /* Inline kernel#Object#!= (var_mclass,var122) on <var_mclass:nullable MClass> */
6363 var127
= ((short int (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mclass
, var_other
) /* == on <var_mclass:nullable MClass(MClass)>*/;
6369 RET_LABEL125
:(void)0;
6375 { /* Inline parser_nodes#AType#n_types (var_ntype) on <var_ntype:AType> */
6376 var131
= var_ntype
->attrs
[COLOR_parser_nodes__AType___n_types
].val
; /* _n_types on <var_ntype:AType> */
6377 if (unlikely(var131
== NULL
)) {
6378 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types");
6379 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 1397);
6383 RET_LABEL130
:(void)0;
6387 var132
= parser_nodes__ANodes__length(var129
);
6391 { /* Inline model#MClass#arity (var_mclass) on <var_mclass:nullable MClass(MClass)> */
6392 var135
= var_mclass
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <var_mclass:nullable MClass(MClass)> */
6394 RET_LABEL134
:(void)0;
6398 { /* Inline kernel#Int#!= (var_arity,var133) on <var_arity:Int> */
6399 var139
= var_arity
== var133
;
6403 RET_LABEL138
:(void)0;
6410 { /* Inline kernel#Int#== (var_arity,var141) on <var_arity:Int> */
6411 var145
= var_arity
== var141
;
6414 RET_LABEL144
:(void)0;
6420 var147
= varonce146
;
6422 var148
= "Type error: \'";
6424 var150
= string__NativeString__to_s_with_length(var148
, var149
);
6426 varonce146
= var147
;
6429 var152
= varonce151
;
6431 var153
= "\' is a generic class.";
6433 var155
= string__NativeString__to_s_with_length(var153
, var154
);
6435 varonce151
= var152
;
6437 var156
= NEW_array__Array(&type_array__Arraykernel__Object
);
6438 { /* var156 = array_instance Array[Object] */
6440 var158
= NEW_array__NativeArray(var157
, &type_array__NativeArraykernel__Object
);
6441 ((struct instance_array__NativeArray
*)var158
)->values
[0] = (val
*) var147
;
6442 ((struct instance_array__NativeArray
*)var158
)->values
[1] = (val
*) var_name
;
6443 ((struct instance_array__NativeArray
*)var158
)->values
[2] = (val
*) var152
;
6445 ((void (*)(val
*, val
*, long))(var156
->class->vft
[COLOR_array__Array__with_native
]))(var156
, var158
, var157
) /* with_native on <var156:Array[Object]>*/;
6449 var159
= ((val
* (*)(val
*))(var156
->class->vft
[COLOR_string__Object__to_s
]))(var156
) /* to_s on <var156:Array[Object]>*/;
6452 modelbuilder__ModelBuilder__error(self
, var_ntype
, var159
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
6456 { /* Inline model#MClass#arity (var_mclass) on <var_mclass:nullable MClass(MClass)> */
6457 var162
= var_mclass
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <var_mclass:nullable MClass(MClass)> */
6459 RET_LABEL161
:(void)0;
6464 { /* Inline kernel#Int#== (var160,var163) on <var160:Int> */
6465 var167
= var160
== var163
;
6468 RET_LABEL166
:(void)0;
6474 var169
= varonce168
;
6476 var170
= "Type error: \'";
6478 var172
= string__NativeString__to_s_with_length(var170
, var171
);
6480 varonce168
= var169
;
6483 var174
= varonce173
;
6485 var175
= "\' is not a generic class.";
6487 var177
= string__NativeString__to_s_with_length(var175
, var176
);
6489 varonce173
= var174
;
6491 var178
= NEW_array__Array(&type_array__Arraykernel__Object
);
6492 { /* var178 = array_instance Array[Object] */
6494 var180
= NEW_array__NativeArray(var179
, &type_array__NativeArraykernel__Object
);
6495 ((struct instance_array__NativeArray
*)var180
)->values
[0] = (val
*) var169
;
6496 ((struct instance_array__NativeArray
*)var180
)->values
[1] = (val
*) var_name
;
6497 ((struct instance_array__NativeArray
*)var180
)->values
[2] = (val
*) var174
;
6499 ((void (*)(val
*, val
*, long))(var178
->class->vft
[COLOR_array__Array__with_native
]))(var178
, var180
, var179
) /* with_native on <var178:Array[Object]>*/;
6503 var181
= ((val
* (*)(val
*))(var178
->class->vft
[COLOR_string__Object__to_s
]))(var178
) /* to_s on <var178:Array[Object]>*/;
6506 modelbuilder__ModelBuilder__error(self
, var_ntype
, var181
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
6510 var183
= varonce182
;
6512 var184
= "Type error: \'";
6514 var186
= string__NativeString__to_s_with_length(var184
, var185
);
6516 varonce182
= var183
;
6519 var188
= varonce187
;
6523 var191
= string__NativeString__to_s_with_length(var189
, var190
);
6525 varonce187
= var188
;
6528 { /* Inline model#MClass#arity (var_mclass) on <var_mclass:nullable MClass(MClass)> */
6529 var194
= var_mclass
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <var_mclass:nullable MClass(MClass)> */
6531 RET_LABEL193
:(void)0;
6535 var196
= varonce195
;
6537 var197
= " parameters (";
6539 var199
= string__NativeString__to_s_with_length(var197
, var198
);
6541 varonce195
= var196
;
6544 var201
= varonce200
;
6546 var202
= " are provided).";
6548 var204
= string__NativeString__to_s_with_length(var202
, var203
);
6550 varonce200
= var201
;
6552 var205
= NEW_array__Array(&type_array__Arraykernel__Object
);
6553 { /* var205 = array_instance Array[Object] */
6555 var207
= NEW_array__NativeArray(var206
, &type_array__NativeArraykernel__Object
);
6556 ((struct instance_array__NativeArray
*)var207
)->values
[0] = (val
*) var183
;
6557 ((struct instance_array__NativeArray
*)var207
)->values
[1] = (val
*) var_name
;
6558 ((struct instance_array__NativeArray
*)var207
)->values
[2] = (val
*) var188
;
6559 var208
= BOX_kernel__Int(var192
); /* autobox from Int to Object */
6560 ((struct instance_array__NativeArray
*)var207
)->values
[3] = (val
*) var208
;
6561 ((struct instance_array__NativeArray
*)var207
)->values
[4] = (val
*) var196
;
6562 var209
= BOX_kernel__Int(var_arity
); /* autobox from Int to Object */
6563 ((struct instance_array__NativeArray
*)var207
)->values
[5] = (val
*) var209
;
6564 ((struct instance_array__NativeArray
*)var207
)->values
[6] = (val
*) var201
;
6566 ((void (*)(val
*, val
*, long))(var205
->class->vft
[COLOR_array__Array__with_native
]))(var205
, var207
, var206
) /* with_native on <var205:Array[Object]>*/;
6570 var210
= ((val
* (*)(val
*))(var205
->class->vft
[COLOR_string__Object__to_s
]))(var205
) /* to_s on <var205:Array[Object]>*/;
6573 modelbuilder__ModelBuilder__error(self
, var_ntype
, var210
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
6584 { /* Inline kernel#Int#== (var_arity,var212) on <var_arity:Int> */
6585 var216
= var_arity
== var212
;
6588 RET_LABEL215
:(void)0;
6594 { /* Inline model#MClass#mclass_type (var_mclass) on <var_mclass:nullable MClass(MClass)> */
6595 var219
= var_mclass
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_mclass:nullable MClass(MClass)> */
6596 if (unlikely(var219
== NULL
)) {
6597 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
6598 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
6602 RET_LABEL218
:(void)0;
6607 var220
= parser_nodes__AType__n_kwnullable(var_ntype
);
6610 if (var220
== NULL
) {
6611 var222
= 0; /* is null */
6613 var222
= 1; /* arg is null and recv is not */
6616 { /* Inline kernel#Object#!= (var220,var221) on <var220:nullable TKwnullable> */
6619 var226
= ((short int (*)(val
*, val
*))(var220
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var220
, var_other
) /* == on <var220:nullable TKwnullable(TKwnullable)>*/;
6625 RET_LABEL224
:(void)0;
6631 var228
= model__MType__as_nullable(var_res
);
6637 { /* Inline modelize_class#AType#mtype= (var_ntype,var_res) on <var_ntype:AType> */
6638 var_ntype
->attrs
[COLOR_modelize_class__AType___mtype
].val
= var_res
; /* _mtype on <var_ntype:AType> */
6639 RET_LABEL229
:(void)0;
6645 var230
= NEW_array__Array(&type_array__Arraymodel__MType
);
6647 array__Array__init(var230
); /* Direct call array#Array#init on <var230:Array[MType]>*/
6649 var_mtypes
= var230
;
6651 { /* Inline parser_nodes#AType#n_types (var_ntype) on <var_ntype:AType> */
6652 var233
= var_ntype
->attrs
[COLOR_parser_nodes__AType___n_types
].val
; /* _n_types on <var_ntype:AType> */
6653 if (unlikely(var233
== NULL
)) {
6654 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types");
6655 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 1397);
6659 RET_LABEL232
:(void)0;
6663 var234
= parser_nodes__ANodes__iterator(var231
);
6667 var235
= ((short int (*)(val
*))(var234
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var234
) /* is_ok on <var234:Iterator[ANode]>*/;
6671 var236
= ((val
* (*)(val
*))(var234
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var234
) /* item on <var234:Iterator[ANode]>*/;
6675 var237
= modelize_class__ModelBuilder__resolve_mtype_unchecked(self
, var_mmodule
, var_mclassdef
, var_nt
, var_with_virtual
);
6679 if (var_mt
== NULL
) {
6680 var239
= 1; /* is null */
6682 var239
= 0; /* arg is null but recv is not */
6685 { /* Inline kernel#Object#== (var_mt,var238) on <var_mt:nullable MType> */
6686 var_other242
= var238
;
6688 { /* Inline kernel#Object#is_same_instance (var_mt,var_other242) on <var_mt:nullable MType(MType)> */
6689 var245
= var_mt
== var_other242
;
6692 RET_LABEL244
:(void)0;
6697 RET_LABEL241
:(void)0;
6708 array__Array__add(var_mtypes
, var_mt
); /* Direct call array#Array#add on <var_mtypes:Array[MType]>*/
6710 CONTINUE_label247
: (void)0;
6712 ((void (*)(val
*))(var234
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var234
) /* next on <var234:Iterator[ANode]>*/;
6715 BREAK_label247
: (void)0;
6717 var248
= model__MClass__get_mtype(var_mclass
, var_mtypes
);
6721 var249
= parser_nodes__AType__n_kwnullable(var_ntype
);
6724 if (var249
== NULL
) {
6725 var251
= 0; /* is null */
6727 var251
= 1; /* arg is null and recv is not */
6730 { /* Inline kernel#Object#!= (var249,var250) on <var249:nullable TKwnullable> */
6733 var255
= ((short int (*)(val
*, val
*))(var249
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var249
, var_other
) /* == on <var249:nullable TKwnullable(TKwnullable)>*/;
6739 RET_LABEL253
:(void)0;
6745 var257
= model__MType__as_nullable(var_res
);
6751 { /* Inline modelize_class#AType#mtype= (var_ntype,var_res) on <var_ntype:AType> */
6752 var_ntype
->attrs
[COLOR_modelize_class__AType___mtype
].val
= var_res
; /* _mtype on <var_ntype:AType> */
6753 RET_LABEL258
:(void)0;
6762 var260
= varonce259
;
6764 var261
= "Type error: class ";
6766 var263
= string__NativeString__to_s_with_length(var261
, var262
);
6768 varonce259
= var260
;
6771 var265
= varonce264
;
6773 var266
= " not found in module ";
6775 var268
= string__NativeString__to_s_with_length(var266
, var267
);
6777 varonce264
= var265
;
6780 var270
= varonce269
;
6784 var273
= string__NativeString__to_s_with_length(var271
, var272
);
6786 varonce269
= var270
;
6788 var274
= NEW_array__Array(&type_array__Arraykernel__Object
);
6789 { /* var274 = array_instance Array[Object] */
6791 var276
= NEW_array__NativeArray(var275
, &type_array__NativeArraykernel__Object
);
6792 ((struct instance_array__NativeArray
*)var276
)->values
[0] = (val
*) var260
;
6793 ((struct instance_array__NativeArray
*)var276
)->values
[1] = (val
*) var_name
;
6794 ((struct instance_array__NativeArray
*)var276
)->values
[2] = (val
*) var265
;
6795 ((struct instance_array__NativeArray
*)var276
)->values
[3] = (val
*) var_mmodule
;
6796 ((struct instance_array__NativeArray
*)var276
)->values
[4] = (val
*) var270
;
6798 ((void (*)(val
*, val
*, long))(var274
->class->vft
[COLOR_array__Array__with_native
]))(var274
, var276
, var275
) /* with_native on <var274:Array[Object]>*/;
6802 var277
= ((val
* (*)(val
*))(var274
->class->vft
[COLOR_string__Object__to_s
]))(var274
) /* to_s on <var274:Array[Object]>*/;
6805 modelbuilder__ModelBuilder__error(self
, var_ntype
, var277
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
6813 /* method modelize_class#ModelBuilder#resolve_mtype_unchecked for (self: Object, MModule, nullable MClassDef, AType, Bool): nullable MType */
6814 val
* VIRTUAL_modelize_class__ModelBuilder__resolve_mtype_unchecked(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
6815 val
* var
/* : nullable MType */;
6816 val
* var1
/* : nullable MType */;
6817 var1
= modelize_class__ModelBuilder__resolve_mtype_unchecked(self
, p0
, p1
, p2
, p3
);
6822 /* method modelize_class#ModelBuilder#resolve_mtype for (self: ModelBuilder, MModule, nullable MClassDef, AType): nullable MType */
6823 val
* modelize_class__ModelBuilder__resolve_mtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
6824 val
* var
/* : nullable MType */;
6825 val
* var_mmodule
/* var mmodule: MModule */;
6826 val
* var_mclassdef
/* var mclassdef: nullable MClassDef */;
6827 val
* var_ntype
/* var ntype: AType */;
6828 val
* var1
/* : nullable MType */;
6829 val
* var3
/* : nullable MType */;
6830 val
* var_mtype
/* var mtype: nullable MType */;
6831 val
* var4
/* : null */;
6832 short int var5
/* : Bool */;
6833 short int var6
/* : Bool */;
6834 val
* var_other
/* var other: nullable Object */;
6835 short int var8
/* : Bool */;
6836 short int var10
/* : Bool */;
6837 short int var11
/* : Bool */;
6838 val
* var12
/* : nullable MType */;
6839 val
* var13
/* : null */;
6840 short int var14
/* : Bool */;
6841 short int var15
/* : Bool */;
6842 short int var17
/* : Bool */;
6843 short int var19
/* : Bool */;
6844 val
* var20
/* : null */;
6845 short int var21
/* : Bool */;
6846 short int var23
/* : Bool */;
6847 short int var24
/* : Bool */;
6850 val
* var25
/* : MClass */;
6851 val
* var27
/* : MClass */;
6852 val
* var_mclass
/* var mclass: MClass */;
6853 val
* var28
/* : Range[Int] */;
6854 long var29
/* : Int */;
6855 long var30
/* : Int */;
6856 long var32
/* : Int */;
6857 val
* var33
/* : Discrete */;
6858 val
* var34
/* : Discrete */;
6859 val
* var35
/* : Iterator[Discrete] */;
6860 short int var36
/* : Bool */;
6861 val
* var37
/* : nullable Object */;
6862 long var_i
/* var i: Int */;
6863 long var38
/* : Int */;
6864 val
* var39
/* : MClassDef */;
6865 val
* var40
/* : MClassType */;
6866 val
* var42
/* : MClassType */;
6867 val
* var43
/* : Array[MType] */;
6868 val
* var45
/* : Array[MType] */;
6869 val
* var46
/* : nullable Object */;
6870 val
* var_bound
/* var bound: MType */;
6871 val
* var47
/* : ANodes[AType] */;
6872 val
* var49
/* : ANodes[AType] */;
6873 val
* var50
/* : ANode */;
6874 val
* var_nt
/* var nt: AType */;
6875 val
* var51
/* : nullable MType */;
6876 val
* var_mt
/* var mt: nullable MType */;
6877 val
* var52
/* : null */;
6878 short int var53
/* : Bool */;
6879 short int var54
/* : Bool */;
6880 short int var56
/* : Bool */;
6881 short int var58
/* : Bool */;
6882 val
* var59
/* : null */;
6883 val
* var60
/* : null */;
6884 short int var61
/* : Bool */;
6885 short int var62
/* : Bool */;
6886 val
* var_other64
/* var other: nullable Object */;
6887 short int var65
/* : Bool */;
6888 short int var66
/* : Bool */;
6889 short int var67
/* : Bool */;
6890 val
* var68
/* : MClassType */;
6891 val
* var70
/* : MClassType */;
6892 val
* var_anchor
/* var anchor: nullable Object */;
6893 val
* var71
/* : null */;
6894 short int var72
/* : Bool */;
6895 short int var73
/* : Bool */;
6896 static val
* varonce
;
6897 val
* var74
/* : String */;
6898 char* var75
/* : NativeString */;
6899 long var76
/* : Int */;
6900 val
* var77
/* : FlatString */;
6901 static val
* varonce78
;
6902 val
* var79
/* : String */;
6903 char* var80
/* : NativeString */;
6904 long var81
/* : Int */;
6905 val
* var82
/* : FlatString */;
6906 val
* var83
/* : Array[Object] */;
6907 long var84
/* : Int */;
6908 val
* var85
/* : NativeArray[Object] */;
6909 val
* var86
/* : String */;
6910 val
* var87
/* : null */;
6911 short int var88
/* : Bool */;
6916 { /* Inline modelize_class#AType#mtype (var_ntype) on <var_ntype:AType> */
6917 var3
= var_ntype
->attrs
[COLOR_modelize_class__AType___mtype
].val
; /* _mtype on <var_ntype:AType> */
6924 if (var_mtype
== NULL
) {
6925 var5
= 1; /* is null */
6927 var5
= 0; /* arg is null but recv is not */
6930 { /* Inline kernel#Object#== (var_mtype,var4) on <var_mtype:nullable MType> */
6933 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
6934 var10
= var_mtype
== var_other
;
6949 var12
= modelize_class__ModelBuilder__resolve_mtype_unchecked(self
, var_mmodule
, var_mclassdef
, var_ntype
, var11
);
6955 if (var_mtype
== NULL
) {
6956 var14
= 1; /* is null */
6958 var14
= 0; /* arg is null but recv is not */
6961 { /* Inline kernel#Object#== (var_mtype,var13) on <var_mtype:nullable MType> */
6964 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
6965 var19
= var_mtype
== var_other
;
6968 RET_LABEL18
:(void)0;
6973 RET_LABEL16
:(void)0;
6984 { /* Inline modelize_class#AType#checked_mtype (var_ntype) on <var_ntype:AType> */
6985 var23
= var_ntype
->attrs
[COLOR_modelize_class__AType___checked_mtype
].s
; /* _checked_mtype on <var_ntype:AType> */
6987 RET_LABEL22
:(void)0;
6995 /* <var_mtype:nullable MType(MType)> isa MGenericType */
6996 cltype
= type_model__MGenericType
.color
;
6997 idtype
= type_model__MGenericType
.id
;
6998 if(cltype
>= var_mtype
->type
->table_size
) {
7001 var24
= var_mtype
->type
->type_table
[cltype
] == idtype
;
7005 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:nullable MType(MGenericType)> */
7006 var27
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:nullable MType(MGenericType)> */
7007 if (unlikely(var27
== NULL
)) {
7008 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
7009 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
7013 RET_LABEL26
:(void)0;
7017 var28
= NEW_range__Range(&type_range__Rangekernel__Int
);
7020 { /* Inline model#MClass#arity (var_mclass) on <var_mclass:MClass> */
7021 var32
= var_mclass
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <var_mclass:MClass> */
7023 RET_LABEL31
:(void)0;
7027 var33
= BOX_kernel__Int(var29
); /* autobox from Int to Discrete */
7028 var34
= BOX_kernel__Int(var30
); /* autobox from Int to Discrete */
7029 range__Range__without_last(var28
, var33
, var34
); /* Direct call range#Range#without_last on <var28:Range[Int]>*/
7032 var35
= range__Range__iterator(var28
);
7036 var36
= ((short int (*)(val
*))(var35
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var35
) /* is_ok on <var35:Iterator[Discrete]>*/;
7040 var37
= ((val
* (*)(val
*))(var35
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var35
) /* item on <var35:Iterator[Discrete]>*/;
7042 var38
= ((struct instance_kernel__Int
*)var37
)->value
; /* autounbox from nullable Object to Int */;
7045 var39
= model__MClass__intro(var_mclass
);
7048 { /* Inline model#MClassDef#bound_mtype (var39) on <var39:MClassDef> */
7049 var42
= var39
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var39:MClassDef> */
7050 if (unlikely(var42
== NULL
)) {
7051 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
7052 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
7056 RET_LABEL41
:(void)0;
7060 { /* Inline model#MClassType#arguments (var40) on <var40:MClassType> */
7061 var45
= var40
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <var40:MClassType> */
7062 if (unlikely(var45
== NULL
)) {
7063 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
7064 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
7068 RET_LABEL44
:(void)0;
7072 var46
= array__Array___91d_93d(var43
, var_i
);
7076 { /* Inline parser_nodes#AType#n_types (var_ntype) on <var_ntype:AType> */
7077 var49
= var_ntype
->attrs
[COLOR_parser_nodes__AType___n_types
].val
; /* _n_types on <var_ntype:AType> */
7078 if (unlikely(var49
== NULL
)) {
7079 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types");
7080 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 1397);
7084 RET_LABEL48
:(void)0;
7088 var50
= parser_nodes__ANodes___91d_93d(var47
, var_i
);
7092 var51
= modelize_class__ModelBuilder__resolve_mtype(self
, var_mmodule
, var_mclassdef
, var_nt
);
7096 if (var_mt
== NULL
) {
7097 var53
= 1; /* is null */
7099 var53
= 0; /* arg is null but recv is not */
7102 { /* Inline kernel#Object#== (var_mt,var52) on <var_mt:nullable MType> */
7105 { /* Inline kernel#Object#is_same_instance (var_mt,var_other) on <var_mt:nullable MType(MType)> */
7106 var58
= var_mt
== var_other
;
7109 RET_LABEL57
:(void)0;
7114 RET_LABEL55
:(void)0;
7125 if (var_mclassdef
== NULL
) {
7126 var61
= 0; /* is null */
7128 var61
= 1; /* arg is null and recv is not */
7131 { /* Inline kernel#Object#!= (var_mclassdef,var60) on <var_mclassdef:nullable MClassDef> */
7132 var_other64
= var60
;
7134 var66
= ((short int (*)(val
*, val
*))(var_mclassdef
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mclassdef
, var_other64
) /* == on <var_mclassdef:nullable MClassDef(MClassDef)>*/;
7140 RET_LABEL63
:(void)0;
7146 { /* Inline model#MClassDef#bound_mtype (var_mclassdef) on <var_mclassdef:nullable MClassDef(MClassDef)> */
7147 var70
= var_mclassdef
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var_mclassdef:nullable MClassDef(MClassDef)> */
7148 if (unlikely(var70
== NULL
)) {
7149 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
7150 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
7154 RET_LABEL69
:(void)0;
7163 var72
= model__MType__is_subtype(var_mt
, var_mmodule
, var_anchor
, var_bound
);
7170 var75
= "Type error: expected ";
7172 var77
= string__NativeString__to_s_with_length(var75
, var76
);
7181 var82
= string__NativeString__to_s_with_length(var80
, var81
);
7185 var83
= NEW_array__Array(&type_array__Arraykernel__Object
);
7186 { /* var83 = array_instance Array[Object] */
7188 var85
= NEW_array__NativeArray(var84
, &type_array__NativeArraykernel__Object
);
7189 ((struct instance_array__NativeArray
*)var85
)->values
[0] = (val
*) var74
;
7190 ((struct instance_array__NativeArray
*)var85
)->values
[1] = (val
*) var_bound
;
7191 ((struct instance_array__NativeArray
*)var85
)->values
[2] = (val
*) var79
;
7192 ((struct instance_array__NativeArray
*)var85
)->values
[3] = (val
*) var_mt
;
7194 ((void (*)(val
*, val
*, long))(var83
->class->vft
[COLOR_array__Array__with_native
]))(var83
, var85
, var84
) /* with_native on <var83:Array[Object]>*/;
7198 var86
= ((val
* (*)(val
*))(var83
->class->vft
[COLOR_string__Object__to_s
]))(var83
) /* to_s on <var83:Array[Object]>*/;
7201 modelbuilder__ModelBuilder__error(self
, var_nt
, var86
); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
7208 CONTINUE_label
: (void)0;
7210 ((void (*)(val
*))(var35
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var35
) /* next on <var35:Iterator[Discrete]>*/;
7213 BREAK_label
: (void)0;
7218 { /* Inline modelize_class#AType#checked_mtype= (var_ntype,var88) on <var_ntype:AType> */
7219 var_ntype
->attrs
[COLOR_modelize_class__AType___checked_mtype
].s
= var88
; /* _checked_mtype on <var_ntype:AType> */
7220 RET_LABEL89
:(void)0;
7228 /* method modelize_class#ModelBuilder#resolve_mtype for (self: Object, MModule, nullable MClassDef, AType): nullable MType */
7229 val
* VIRTUAL_modelize_class__ModelBuilder__resolve_mtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
7230 val
* var
/* : nullable MType */;
7231 val
* var1
/* : nullable MType */;
7232 var1
= modelize_class__ModelBuilder__resolve_mtype(self
, p0
, p1
, p2
);
7237 /* method modelize_class#AModule#build_classes_is_done for (self: AModule): Bool */
7238 short int modelize_class__AModule__build_classes_is_done(val
* self
) {
7239 short int var
/* : Bool */;
7240 short int var1
/* : Bool */;
7241 var1
= self
->attrs
[COLOR_modelize_class__AModule___build_classes_is_done
].s
; /* _build_classes_is_done on <self:AModule> */
7246 /* method modelize_class#AModule#build_classes_is_done for (self: Object): Bool */
7247 short int VIRTUAL_modelize_class__AModule__build_classes_is_done(val
* self
) {
7248 short int var
/* : Bool */;
7249 short int var1
/* : Bool */;
7250 short int var3
/* : Bool */;
7251 { /* Inline modelize_class#AModule#build_classes_is_done (self) on <self:Object(AModule)> */
7252 var3
= self
->attrs
[COLOR_modelize_class__AModule___build_classes_is_done
].s
; /* _build_classes_is_done on <self:Object(AModule)> */
7260 /* method modelize_class#AModule#build_classes_is_done= for (self: AModule, Bool) */
7261 void modelize_class__AModule__build_classes_is_done_61d(val
* self
, short int p0
) {
7262 self
->attrs
[COLOR_modelize_class__AModule___build_classes_is_done
].s
= p0
; /* _build_classes_is_done on <self:AModule> */
7265 /* method modelize_class#AModule#build_classes_is_done= for (self: Object, Bool) */
7266 void VIRTUAL_modelize_class__AModule__build_classes_is_done_61d(val
* self
, short int p0
) {
7267 { /* Inline modelize_class#AModule#build_classes_is_done= (self,p0) on <self:Object(AModule)> */
7268 self
->attrs
[COLOR_modelize_class__AModule___build_classes_is_done
].s
= p0
; /* _build_classes_is_done on <self:Object(AModule)> */
7273 /* method modelize_class#AModule#mclass2nclassdef for (self: AModule): Map[MClass, AClassdef] */
7274 val
* modelize_class__AModule__mclass2nclassdef(val
* self
) {
7275 val
* var
/* : Map[MClass, AClassdef] */;
7276 val
* var1
/* : Map[MClass, AClassdef] */;
7277 var1
= self
->attrs
[COLOR_modelize_class__AModule___mclass2nclassdef
].val
; /* _mclass2nclassdef on <self:AModule> */
7278 if (unlikely(var1
== NULL
)) {
7279 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass2nclassdef");
7280 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 515);
7287 /* method modelize_class#AModule#mclass2nclassdef for (self: Object): Map[MClass, AClassdef] */
7288 val
* VIRTUAL_modelize_class__AModule__mclass2nclassdef(val
* self
) {
7289 val
* var
/* : Map[MClass, AClassdef] */;
7290 val
* var1
/* : Map[MClass, AClassdef] */;
7291 val
* var3
/* : Map[MClass, AClassdef] */;
7292 { /* Inline modelize_class#AModule#mclass2nclassdef (self) on <self:Object(AModule)> */
7293 var3
= self
->attrs
[COLOR_modelize_class__AModule___mclass2nclassdef
].val
; /* _mclass2nclassdef on <self:Object(AModule)> */
7294 if (unlikely(var3
== NULL
)) {
7295 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass2nclassdef");
7296 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 515);
7306 /* method modelize_class#AClassdef#mclass for (self: AClassdef): nullable MClass */
7307 val
* modelize_class__AClassdef__mclass(val
* self
) {
7308 val
* var
/* : nullable MClass */;
7309 val
* var1
/* : nullable MClass */;
7310 var1
= self
->attrs
[COLOR_modelize_class__AClassdef___mclass
].val
; /* _mclass on <self:AClassdef> */
7315 /* method modelize_class#AClassdef#mclass for (self: Object): nullable MClass */
7316 val
* VIRTUAL_modelize_class__AClassdef__mclass(val
* self
) {
7317 val
* var
/* : nullable MClass */;
7318 val
* var1
/* : nullable MClass */;
7319 val
* var3
/* : nullable MClass */;
7320 { /* Inline modelize_class#AClassdef#mclass (self) on <self:Object(AClassdef)> */
7321 var3
= self
->attrs
[COLOR_modelize_class__AClassdef___mclass
].val
; /* _mclass on <self:Object(AClassdef)> */
7329 /* method modelize_class#AClassdef#mclass= for (self: AClassdef, nullable MClass) */
7330 void modelize_class__AClassdef__mclass_61d(val
* self
, val
* p0
) {
7331 self
->attrs
[COLOR_modelize_class__AClassdef___mclass
].val
= p0
; /* _mclass on <self:AClassdef> */
7334 /* method modelize_class#AClassdef#mclass= for (self: Object, nullable MClass) */
7335 void VIRTUAL_modelize_class__AClassdef__mclass_61d(val
* self
, val
* p0
) {
7336 { /* Inline modelize_class#AClassdef#mclass= (self,p0) on <self:Object(AClassdef)> */
7337 self
->attrs
[COLOR_modelize_class__AClassdef___mclass
].val
= p0
; /* _mclass on <self:Object(AClassdef)> */
7342 /* method modelize_class#AClassdef#mclassdef for (self: AClassdef): nullable MClassDef */
7343 val
* modelize_class__AClassdef__mclassdef(val
* self
) {
7344 val
* var
/* : nullable MClassDef */;
7345 val
* var1
/* : nullable MClassDef */;
7346 var1
= self
->attrs
[COLOR_modelize_class__AClassdef___mclassdef
].val
; /* _mclassdef on <self:AClassdef> */
7351 /* method modelize_class#AClassdef#mclassdef for (self: Object): nullable MClassDef */
7352 val
* VIRTUAL_modelize_class__AClassdef__mclassdef(val
* self
) {
7353 val
* var
/* : nullable MClassDef */;
7354 val
* var1
/* : nullable MClassDef */;
7355 val
* var3
/* : nullable MClassDef */;
7356 { /* Inline modelize_class#AClassdef#mclassdef (self) on <self:Object(AClassdef)> */
7357 var3
= self
->attrs
[COLOR_modelize_class__AClassdef___mclassdef
].val
; /* _mclassdef on <self:Object(AClassdef)> */
7365 /* method modelize_class#AClassdef#mclassdef= for (self: AClassdef, nullable MClassDef) */
7366 void modelize_class__AClassdef__mclassdef_61d(val
* self
, val
* p0
) {
7367 self
->attrs
[COLOR_modelize_class__AClassdef___mclassdef
].val
= p0
; /* _mclassdef on <self:AClassdef> */
7370 /* method modelize_class#AClassdef#mclassdef= for (self: Object, nullable MClassDef) */
7371 void VIRTUAL_modelize_class__AClassdef__mclassdef_61d(val
* self
, val
* p0
) {
7372 { /* Inline modelize_class#AClassdef#mclassdef= (self,p0) on <self:Object(AClassdef)> */
7373 self
->attrs
[COLOR_modelize_class__AClassdef___mclassdef
].val
= p0
; /* _mclassdef on <self:Object(AClassdef)> */
7378 /* method modelize_class#AClassdef#all_defs for (self: AClassdef): nullable Array[AClassdef] */
7379 val
* modelize_class__AClassdef__all_defs(val
* self
) {
7380 val
* var
/* : nullable Array[AClassdef] */;
7381 val
* var1
/* : nullable Array[AClassdef] */;
7382 var1
= self
->attrs
[COLOR_modelize_class__AClassdef___all_defs
].val
; /* _all_defs on <self:AClassdef> */
7387 /* method modelize_class#AClassdef#all_defs for (self: Object): nullable Array[AClassdef] */
7388 val
* VIRTUAL_modelize_class__AClassdef__all_defs(val
* self
) {
7389 val
* var
/* : nullable Array[AClassdef] */;
7390 val
* var1
/* : nullable Array[AClassdef] */;
7391 val
* var3
/* : nullable Array[AClassdef] */;
7392 { /* Inline modelize_class#AClassdef#all_defs (self) on <self:Object(AClassdef)> */
7393 var3
= self
->attrs
[COLOR_modelize_class__AClassdef___all_defs
].val
; /* _all_defs on <self:Object(AClassdef)> */
7401 /* method modelize_class#AClassdef#all_defs= for (self: AClassdef, nullable Array[AClassdef]) */
7402 void modelize_class__AClassdef__all_defs_61d(val
* self
, val
* p0
) {
7403 self
->attrs
[COLOR_modelize_class__AClassdef___all_defs
].val
= p0
; /* _all_defs on <self:AClassdef> */
7406 /* method modelize_class#AClassdef#all_defs= for (self: Object, nullable Array[AClassdef]) */
7407 void VIRTUAL_modelize_class__AClassdef__all_defs_61d(val
* self
, val
* p0
) {
7408 { /* Inline modelize_class#AClassdef#all_defs= (self,p0) on <self:Object(AClassdef)> */
7409 self
->attrs
[COLOR_modelize_class__AClassdef___all_defs
].val
= p0
; /* _all_defs on <self:Object(AClassdef)> */
7414 /* method modelize_class#AConcreteClasskind#mkind for (self: AConcreteClasskind): MClassKind */
7415 val
* modelize_class__AConcreteClasskind__mkind(val
* self
) {
7416 val
* var
/* : MClassKind */;
7417 val
* var1
/* : MClassKind */;
7419 var1
= model__Object__concrete_kind(self
);
7426 /* method modelize_class#AConcreteClasskind#mkind for (self: Object): MClassKind */
7427 val
* VIRTUAL_modelize_class__AConcreteClasskind__mkind(val
* self
) {
7428 val
* var
/* : MClassKind */;
7429 val
* var1
/* : MClassKind */;
7430 var1
= modelize_class__AConcreteClasskind__mkind(self
);
7435 /* method modelize_class#AAbstractClasskind#mkind for (self: AAbstractClasskind): MClassKind */
7436 val
* modelize_class__AAbstractClasskind__mkind(val
* self
) {
7437 val
* var
/* : MClassKind */;
7438 val
* var1
/* : MClassKind */;
7440 var1
= model__Object__abstract_kind(self
);
7447 /* method modelize_class#AAbstractClasskind#mkind for (self: Object): MClassKind */
7448 val
* VIRTUAL_modelize_class__AAbstractClasskind__mkind(val
* self
) {
7449 val
* var
/* : MClassKind */;
7450 val
* var1
/* : MClassKind */;
7451 var1
= modelize_class__AAbstractClasskind__mkind(self
);
7456 /* method modelize_class#AInterfaceClasskind#mkind for (self: AInterfaceClasskind): MClassKind */
7457 val
* modelize_class__AInterfaceClasskind__mkind(val
* self
) {
7458 val
* var
/* : MClassKind */;
7459 val
* var1
/* : MClassKind */;
7461 var1
= model__Object__interface_kind(self
);
7468 /* method modelize_class#AInterfaceClasskind#mkind for (self: Object): MClassKind */
7469 val
* VIRTUAL_modelize_class__AInterfaceClasskind__mkind(val
* self
) {
7470 val
* var
/* : MClassKind */;
7471 val
* var1
/* : MClassKind */;
7472 var1
= modelize_class__AInterfaceClasskind__mkind(self
);
7477 /* method modelize_class#AEnumClasskind#mkind for (self: AEnumClasskind): MClassKind */
7478 val
* modelize_class__AEnumClasskind__mkind(val
* self
) {
7479 val
* var
/* : MClassKind */;
7480 val
* var1
/* : MClassKind */;
7482 var1
= model__Object__enum_kind(self
);
7489 /* method modelize_class#AEnumClasskind#mkind for (self: Object): MClassKind */
7490 val
* VIRTUAL_modelize_class__AEnumClasskind__mkind(val
* self
) {
7491 val
* var
/* : MClassKind */;
7492 val
* var1
/* : MClassKind */;
7493 var1
= modelize_class__AEnumClasskind__mkind(self
);
7498 /* method modelize_class#AExternClasskind#mkind for (self: AExternClasskind): MClassKind */
7499 val
* modelize_class__AExternClasskind__mkind(val
* self
) {
7500 val
* var
/* : MClassKind */;
7501 val
* var1
/* : MClassKind */;
7503 var1
= model__Object__extern_kind(self
);
7510 /* method modelize_class#AExternClasskind#mkind for (self: Object): MClassKind */
7511 val
* VIRTUAL_modelize_class__AExternClasskind__mkind(val
* self
) {
7512 val
* var
/* : MClassKind */;
7513 val
* var1
/* : MClassKind */;
7514 var1
= modelize_class__AExternClasskind__mkind(self
);
7519 /* method modelize_class#AFormaldef#mtype= for (self: AFormaldef, nullable MParameterType) */
7520 void modelize_class__AFormaldef__mtype_61d(val
* self
, val
* p0
) {
7521 self
->attrs
[COLOR_modelize_class__AFormaldef___mtype
].val
= p0
; /* _mtype on <self:AFormaldef> */
7524 /* method modelize_class#AFormaldef#mtype= for (self: Object, nullable MParameterType) */
7525 void VIRTUAL_modelize_class__AFormaldef__mtype_61d(val
* self
, val
* p0
) {
7526 { /* Inline modelize_class#AFormaldef#mtype= (self,p0) on <self:Object(AFormaldef)> */
7527 self
->attrs
[COLOR_modelize_class__AFormaldef___mtype
].val
= p0
; /* _mtype on <self:Object(AFormaldef)> */
7532 /* method modelize_class#AFormaldef#bound= for (self: AFormaldef, nullable MType) */
7533 void modelize_class__AFormaldef__bound_61d(val
* self
, val
* p0
) {
7534 self
->attrs
[COLOR_modelize_class__AFormaldef___bound
].val
= p0
; /* _bound on <self:AFormaldef> */
7537 /* method modelize_class#AFormaldef#bound= for (self: Object, nullable MType) */
7538 void VIRTUAL_modelize_class__AFormaldef__bound_61d(val
* self
, val
* p0
) {
7539 { /* Inline modelize_class#AFormaldef#bound= (self,p0) on <self:Object(AFormaldef)> */
7540 self
->attrs
[COLOR_modelize_class__AFormaldef___bound
].val
= p0
; /* _bound on <self:Object(AFormaldef)> */
7545 /* method modelize_class#AType#mtype for (self: AType): nullable MType */
7546 val
* modelize_class__AType__mtype(val
* self
) {
7547 val
* var
/* : nullable MType */;
7548 val
* var1
/* : nullable MType */;
7549 var1
= self
->attrs
[COLOR_modelize_class__AType___mtype
].val
; /* _mtype on <self:AType> */
7554 /* method modelize_class#AType#mtype for (self: Object): nullable MType */
7555 val
* VIRTUAL_modelize_class__AType__mtype(val
* self
) {
7556 val
* var
/* : nullable MType */;
7557 val
* var1
/* : nullable MType */;
7558 val
* var3
/* : nullable MType */;
7559 { /* Inline modelize_class#AType#mtype (self) on <self:Object(AType)> */
7560 var3
= self
->attrs
[COLOR_modelize_class__AType___mtype
].val
; /* _mtype on <self:Object(AType)> */
7568 /* method modelize_class#AType#mtype= for (self: AType, nullable MType) */
7569 void modelize_class__AType__mtype_61d(val
* self
, val
* p0
) {
7570 self
->attrs
[COLOR_modelize_class__AType___mtype
].val
= p0
; /* _mtype on <self:AType> */
7573 /* method modelize_class#AType#mtype= for (self: Object, nullable MType) */
7574 void VIRTUAL_modelize_class__AType__mtype_61d(val
* self
, val
* p0
) {
7575 { /* Inline modelize_class#AType#mtype= (self,p0) on <self:Object(AType)> */
7576 self
->attrs
[COLOR_modelize_class__AType___mtype
].val
= p0
; /* _mtype on <self:Object(AType)> */
7581 /* method modelize_class#AType#checked_mtype for (self: AType): Bool */
7582 short int modelize_class__AType__checked_mtype(val
* self
) {
7583 short int var
/* : Bool */;
7584 short int var1
/* : Bool */;
7585 var1
= self
->attrs
[COLOR_modelize_class__AType___checked_mtype
].s
; /* _checked_mtype on <self:AType> */
7590 /* method modelize_class#AType#checked_mtype for (self: Object): Bool */
7591 short int VIRTUAL_modelize_class__AType__checked_mtype(val
* self
) {
7592 short int var
/* : Bool */;
7593 short int var1
/* : Bool */;
7594 short int var3
/* : Bool */;
7595 { /* Inline modelize_class#AType#checked_mtype (self) on <self:Object(AType)> */
7596 var3
= self
->attrs
[COLOR_modelize_class__AType___checked_mtype
].s
; /* _checked_mtype on <self:Object(AType)> */
7604 /* method modelize_class#AType#checked_mtype= for (self: AType, Bool) */
7605 void modelize_class__AType__checked_mtype_61d(val
* self
, short int p0
) {
7606 self
->attrs
[COLOR_modelize_class__AType___checked_mtype
].s
= p0
; /* _checked_mtype on <self:AType> */
7609 /* method modelize_class#AType#checked_mtype= for (self: Object, Bool) */
7610 void VIRTUAL_modelize_class__AType__checked_mtype_61d(val
* self
, short int p0
) {
7611 { /* Inline modelize_class#AType#checked_mtype= (self,p0) on <self:Object(AType)> */
7612 self
->attrs
[COLOR_modelize_class__AType___checked_mtype
].s
= p0
; /* _checked_mtype on <self:Object(AType)> */