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___64dmodelize_class_phase
].val
; /* @modelize_class_phase on <self:ToolContext> */
8 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @modelize_class_phase");
9 fprintf(stderr
, " (%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 var1
= modelize_class__ToolContext__modelize_class_phase(self
);
25 /* method modelize_class#ToolContext#modelize_class_phase= for (self: ToolContext, Phase) */
26 void modelize_class__ToolContext__modelize_class_phase_61d(val
* self
, val
* p0
) {
27 self
->attrs
[COLOR_modelize_class__ToolContext___64dmodelize_class_phase
].val
= p0
; /* @modelize_class_phase on <self:ToolContext> */
30 /* method modelize_class#ToolContext#modelize_class_phase= for (self: Object, Phase) */
31 void VIRTUAL_modelize_class__ToolContext__modelize_class_phase_61d(val
* self
, val
* p0
) {
32 modelize_class__ToolContext__modelize_class_phase_61d(self
, p0
);
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
* var1
/* : ModelBuilder */;
41 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_phase__Phase__toolcontext
]))(self
) /* toolcontext on <self:ModelizeClassPhase>*/;
42 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_modelbuilder__ToolContext__modelbuilder
]))(var
) /* modelbuilder on <var:ToolContext>*/;
43 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_modelize_class__ModelBuilder__build_classes
]))(var1
, var_nmodule
) /* build_classes on <var1:ModelBuilder>*/;
46 /* method modelize_class#ModelizeClassPhase#process_nmodule for (self: Object, AModule) */
47 void VIRTUAL_modelize_class__ModelizeClassPhase__process_nmodule(val
* self
, val
* p0
) {
48 modelize_class__ModelizeClassPhase__process_nmodule(self
, p0
);
51 /* method modelize_class#ModelBuilder#build_a_mclass for (self: ModelBuilder, AModule, AClassdef) */
52 void modelize_class__ModelBuilder__build_a_mclass(val
* self
, val
* p0
, val
* p1
) {
53 val
* var_nmodule
/* var nmodule: AModule */;
54 val
* var_nclassdef
/* var nclassdef: AClassdef */;
55 val
* var
/* : nullable MModule */;
56 val
* var_mmodule
/* var mmodule: MModule */;
57 long var1
/* : Int */;
58 long var_arity
/* var arity: Int */;
59 short int var2
/* : Bool */;
62 val
* var3
/* : nullable TClassid */;
63 val
* var4
/* : String */;
64 val
* var_name
/* var name: String */;
65 val
* var5
/* : AClasskind */;
66 val
* var_nkind
/* var nkind: nullable AClasskind */;
67 val
* var6
/* : MClassKind */;
68 val
* var_mkind
/* var mkind: MClassKind */;
69 val
* var7
/* : AVisibility */;
70 val
* var_nvisibility
/* var nvisibility: nullable AVisibility */;
71 val
* var8
/* : MVisibility */;
72 val
* var_mvisibility
/* var mvisibility: nullable MVisibility */;
73 val
* var9
/* : ANodes[AFormaldef] */;
74 long var10
/* : Int */;
75 val
* var11
/* : MVisibility */;
76 short int var12
/* : Bool */;
78 val
* var13
/* : String */;
79 char* var14
/* : NativeString */;
80 long var15
/* : Int */;
81 val
* var16
/* : String */;
82 val
* var17
/* : MVisibility */;
83 short int var18
/* : Bool */;
84 static val
* varonce19
;
85 val
* var20
/* : String */;
86 char* var21
/* : NativeString */;
87 long var22
/* : Int */;
88 val
* var23
/* : String */;
89 short int var24
/* : Bool */;
92 static val
* varonce27
;
93 val
* var28
/* : String */;
94 char* var29
/* : NativeString */;
95 long var30
/* : Int */;
96 val
* var31
/* : String */;
97 val
* var32
/* : null */;
98 val
* var33
/* : MClassKind */;
99 val
* var34
/* : null */;
100 val
* var35
/* : MVisibility */;
101 short int var36
/* : Bool */;
104 static val
* varonce39
;
105 val
* var40
/* : String */;
106 char* var41
/* : NativeString */;
107 long var42
/* : Int */;
108 val
* var43
/* : String */;
109 val
* var44
/* : null */;
110 val
* var45
/* : MClassKind */;
111 val
* var46
/* : null */;
112 val
* var47
/* : MVisibility */;
113 val
* var48
/* : nullable MClass */;
114 val
* var_mclass
/* var mclass: nullable MClass */;
115 val
* var49
/* : null */;
116 short int var50
/* : Bool */;
117 short int var51
/* : Bool */;
118 short int var52
/* : Bool */;
121 short int var_
/* var : Bool */;
122 val
* var55
/* : nullable TKwredef */;
123 val
* var56
/* : null */;
124 short int var57
/* : Bool */;
125 static val
* varonce58
;
126 val
* var59
/* : String */;
127 char* var60
/* : NativeString */;
128 long var61
/* : Int */;
129 val
* var62
/* : String */;
130 static val
* varonce63
;
131 val
* var64
/* : String */;
132 char* var65
/* : NativeString */;
133 long var66
/* : Int */;
134 val
* var67
/* : String */;
135 val
* var68
/* : Array[Object] */;
136 long var69
/* : Int */;
137 val
* var70
/* : NativeArray[Object] */;
138 val
* var71
/* : String */;
139 val
* var72
/* : MClass */;
140 short int var73
/* : Bool */;
141 short int var74
/* : Bool */;
144 short int var_77
/* var : Bool */;
145 val
* var78
/* : Map[MClass, AClassdef] */;
146 short int var79
/* : Bool */;
147 static val
* varonce80
;
148 val
* var81
/* : String */;
149 char* var82
/* : NativeString */;
150 long var83
/* : Int */;
151 val
* var84
/* : String */;
152 static val
* varonce85
;
153 val
* var86
/* : String */;
154 char* var87
/* : NativeString */;
155 long var88
/* : Int */;
156 val
* var89
/* : String */;
157 val
* var90
/* : Map[MClass, AClassdef] */;
158 val
* var91
/* : nullable Object */;
159 val
* var92
/* : Location */;
160 long var93
/* : Int */;
161 static val
* varonce94
;
162 val
* var95
/* : String */;
163 char* var96
/* : NativeString */;
164 long var97
/* : Int */;
165 val
* var98
/* : String */;
166 val
* var99
/* : Array[Object] */;
167 long var100
/* : Int */;
168 val
* var101
/* : NativeArray[Object] */;
169 val
* var102
/* : Object */;
170 val
* var103
/* : String */;
171 short int var104
/* : Bool */;
172 short int var105
/* : Bool */;
175 short int var_108
/* var : Bool */;
176 val
* var109
/* : nullable TKwredef */;
177 val
* var110
/* : null */;
178 short int var111
/* : Bool */;
179 static val
* varonce112
;
180 val
* var113
/* : String */;
181 char* var114
/* : NativeString */;
182 long var115
/* : Int */;
183 val
* var116
/* : String */;
184 static val
* varonce117
;
185 val
* var118
/* : String */;
186 char* var119
/* : NativeString */;
187 long var120
/* : Int */;
188 val
* var121
/* : String */;
189 val
* var122
/* : Array[Object] */;
190 long var123
/* : Int */;
191 val
* var124
/* : NativeArray[Object] */;
192 val
* var125
/* : String */;
193 long var126
/* : Int */;
194 short int var127
/* : Bool */;
195 short int var129
/* : Bool */;
196 short int var130
/* : Bool */;
197 static val
* varonce131
;
198 val
* var132
/* : String */;
199 char* var133
/* : NativeString */;
200 long var134
/* : Int */;
201 val
* var135
/* : String */;
202 static val
* varonce136
;
203 val
* var137
/* : String */;
204 char* var138
/* : NativeString */;
205 long var139
/* : Int */;
206 val
* var140
/* : String */;
207 long var141
/* : Int */;
208 static val
* varonce142
;
209 val
* var143
/* : String */;
210 char* var144
/* : NativeString */;
211 long var145
/* : Int */;
212 val
* var146
/* : String */;
213 val
* var147
/* : Array[Object] */;
214 long var148
/* : Int */;
215 val
* var149
/* : NativeArray[Object] */;
216 val
* var150
/* : Object */;
217 val
* var151
/* : Object */;
218 val
* var152
/* : String */;
219 short int var153
/* : Bool */;
220 short int var154
/* : Bool */;
221 val
* var155
/* : null */;
222 short int var156
/* : Bool */;
223 short int var_157
/* var : Bool */;
224 val
* var158
/* : MClassKind */;
225 short int var159
/* : Bool */;
226 short int var_160
/* var : Bool */;
227 val
* var161
/* : MClassKind */;
228 short int var162
/* : Bool */;
229 static val
* varonce163
;
230 val
* var164
/* : String */;
231 char* var165
/* : NativeString */;
232 long var166
/* : Int */;
233 val
* var167
/* : String */;
234 val
* var168
/* : MClassKind */;
235 static val
* varonce169
;
236 val
* var170
/* : String */;
237 char* var171
/* : NativeString */;
238 long var172
/* : Int */;
239 val
* var173
/* : String */;
240 val
* var174
/* : Array[Object] */;
241 long var175
/* : Int */;
242 val
* var176
/* : NativeArray[Object] */;
243 val
* var177
/* : String */;
244 short int var178
/* : Bool */;
245 short int var179
/* : Bool */;
246 val
* var180
/* : null */;
247 short int var181
/* : Bool */;
248 short int var_182
/* var : Bool */;
249 val
* var183
/* : MVisibility */;
250 short int var184
/* : Bool */;
251 short int var_185
/* var : Bool */;
252 val
* var186
/* : MVisibility */;
253 short int var187
/* : Bool */;
254 static val
* varonce188
;
255 val
* var189
/* : String */;
256 char* var190
/* : NativeString */;
257 long var191
/* : Int */;
258 val
* var192
/* : String */;
259 val
* var193
/* : MVisibility */;
260 static val
* varonce194
;
261 val
* var195
/* : String */;
262 char* var196
/* : NativeString */;
263 long var197
/* : Int */;
264 val
* var198
/* : String */;
265 val
* var199
/* : Array[Object] */;
266 long var200
/* : Int */;
267 val
* var201
/* : NativeArray[Object] */;
268 val
* var202
/* : String */;
269 val
* var203
/* : Map[MClass, AClassdef] */;
272 var
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_modelbuilder__AModule__mmodule
]))(var_nmodule
) /* mmodule on <var_nmodule:AModule>*/;
274 fprintf(stderr
, "Runtime error: %s", "Cast failed");
275 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 39);
281 /* <var_nclassdef:AClassdef> isa AStdClassdef */
282 cltype
= type_parser_nodes__AStdClassdef
.color
;
283 idtype
= type_parser_nodes__AStdClassdef
.id
;
284 if(cltype
>= var_nclassdef
->type
->table_size
) {
287 var2
= var_nclassdef
->type
->type_table
[cltype
] == idtype
;
290 var3
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__AStdClassdef__n_id
]))(var_nclassdef
) /* n_id on <var_nclassdef:AClassdef(AStdClassdef)>*/;
292 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
293 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 48);
296 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_parser_nodes__Token__text
]))(var3
) /* text on <var3:nullable TClassid>*/;
299 var5
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__AStdClassdef__n_classkind
]))(var_nclassdef
) /* n_classkind on <var_nclassdef:AClassdef(AStdClassdef)>*/;
301 var6
= ((val
* (*)(val
*))(var_nkind
->class->vft
[COLOR_modelize_class__AClasskind__mkind
]))(var_nkind
) /* mkind on <var_nkind:nullable AClasskind(AClasskind)>*/;
303 var7
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__AStdClassdef__n_visibility
]))(var_nclassdef
) /* n_visibility on <var_nclassdef:AClassdef(AStdClassdef)>*/;
304 var_nvisibility
= var7
;
305 var8
= ((val
* (*)(val
*))(var_nvisibility
->class->vft
[COLOR_modelbuilder__AVisibility__mvisibility
]))(var_nvisibility
) /* mvisibility on <var_nvisibility:nullable AVisibility(AVisibility)>*/;
306 var_mvisibility
= var8
;
307 var9
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__AStdClassdef__n_formaldefs
]))(var_nclassdef
) /* n_formaldefs on <var_nclassdef:AClassdef(AStdClassdef)>*/;
308 var10
= ((long (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var9
) /* length on <var9:ANodes[AFormaldef]>*/;
310 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model_base__Object__protected_visibility
]))(self
) /* protected_visibility on <self:ModelBuilder>*/;
311 var12
= ((short int (*)(val
*, val
*))(var_mvisibility
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mvisibility
, var11
) /* == on <var_mvisibility:nullable MVisibility(MVisibility)>*/;
316 var14
= "Error: only properties can be protected.";
318 var16
= string__NativeString__to_s_with_length(var14
, var15
);
322 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var_nvisibility
, var13
) /* error on <self:ModelBuilder>*/;
325 var17
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model_base__Object__intrude_visibility
]))(self
) /* intrude_visibility on <self:ModelBuilder>*/;
326 var18
= ((short int (*)(val
*, val
*))(var_mvisibility
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mvisibility
, var17
) /* == on <var_mvisibility:nullable MVisibility(MVisibility)>*/;
331 var21
= "Error: intrude is not a legal visibility for classes.";
333 var23
= string__NativeString__to_s_with_length(var21
, var22
);
337 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var_nvisibility
, var20
) /* error on <self:ModelBuilder>*/;
343 /* <var_nclassdef:AClassdef> isa ATopClassdef */
344 cltype25
= type_parser_nodes__ATopClassdef
.color
;
345 idtype26
= type_parser_nodes__ATopClassdef
.id
;
346 if(cltype25
>= var_nclassdef
->type
->table_size
) {
349 var24
= var_nclassdef
->type
->type_table
[cltype25
] == idtype26
;
357 var31
= string__NativeString__to_s_with_length(var29
, var30
);
364 var33
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__interface_kind
]))(self
) /* interface_kind on <self:ModelBuilder>*/;
367 var_nvisibility
= var34
;
368 var35
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model_base__Object__public_visibility
]))(self
) /* public_visibility on <self:ModelBuilder>*/;
369 var_mvisibility
= var35
;
371 /* <var_nclassdef:AClassdef> isa AMainClassdef */
372 cltype37
= type_parser_nodes__AMainClassdef
.color
;
373 idtype38
= type_parser_nodes__AMainClassdef
.id
;
374 if(cltype37
>= var_nclassdef
->type
->table_size
) {
377 var36
= var_nclassdef
->type
->type_table
[cltype37
] == idtype38
;
385 var43
= string__NativeString__to_s_with_length(var41
, var42
);
392 var45
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__concrete_kind
]))(self
) /* concrete_kind on <self:ModelBuilder>*/;
395 var_nvisibility
= var46
;
396 var47
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model_base__Object__public_visibility
]))(self
) /* public_visibility on <self:ModelBuilder>*/;
397 var_mvisibility
= var47
;
399 fprintf(stderr
, "Runtime error: %s", "Aborted");
400 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 74);
405 var48
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__try_get_mclass_by_name
]))(self
, var_nclassdef
, var_mmodule
, var_name
) /* try_get_mclass_by_name on <self:ModelBuilder>*/;
408 if (var_mclass
== NULL
) {
409 var50
= 1; /* is null */
411 var50
= 0; /* arg is null but recv is not */
414 /* <var_nclassdef:AClassdef> isa AStdClassdef */
415 cltype53
= type_parser_nodes__AStdClassdef
.color
;
416 idtype54
= type_parser_nodes__AStdClassdef
.id
;
417 if(cltype53
>= var_nclassdef
->type
->table_size
) {
420 var52
= var_nclassdef
->type
->type_table
[cltype53
] == idtype54
;
424 var55
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__AStdClassdef__n_kwredef
]))(var_nclassdef
) /* n_kwredef on <var_nclassdef:AClassdef(AStdClassdef)>*/;
427 var57
= 0; /* is null */
429 var57
= 1; /* arg is null and recv is not */
439 var60
= "Redef error: No imported class ";
441 var62
= string__NativeString__to_s_with_length(var60
, var61
);
448 var65
= " to refine.";
450 var67
= string__NativeString__to_s_with_length(var65
, var66
);
454 var68
= NEW_array__Array(&type_array__Arraykernel__Object
);
455 { /* var68 = array_instance Array[Object] */
457 var70
= NEW_array__NativeArray(var69
, &type_array__NativeArraykernel__Object
);
458 ((struct instance_array__NativeArray
*)var70
)->values
[0] = (val
*) var59
;
459 ((struct instance_array__NativeArray
*)var70
)->values
[1] = (val
*) var_name
;
460 ((struct instance_array__NativeArray
*)var70
)->values
[2] = (val
*) var64
;
461 ((void (*)(val
*, val
*, long))(var68
->class->vft
[COLOR_array__Array__with_native
]))(var68
, var70
, var69
) /* with_native on <var68:Array[Object]>*/;
463 var71
= ((val
* (*)(val
*))(var68
->class->vft
[COLOR_string__Object__to_s
]))(var68
) /* to_s on <var68:Array[Object]>*/;
464 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var_nclassdef
, var71
) /* error on <self:ModelBuilder>*/;
468 var72
= NEW_model__MClass(&type_model__MClass
);
469 ((void (*)(val
*, val
*, val
*, long, val
*, val
*))(var72
->class->vft
[COLOR_model__MClass__init
]))(var72
, var_mmodule
, var_name
, var_arity
, var_mkind
, var_mvisibility
) /* init on <var72:MClass>*/;
472 /* <var_nclassdef:AClassdef> isa AStdClassdef */
473 cltype75
= type_parser_nodes__AStdClassdef
.color
;
474 idtype76
= type_parser_nodes__AStdClassdef
.id
;
475 if(cltype75
>= var_nclassdef
->type
->table_size
) {
478 var74
= var_nclassdef
->type
->type_table
[cltype75
] == idtype76
;
482 var78
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_modelize_class__AModule__mclass2nclassdef
]))(var_nmodule
) /* mclass2nclassdef on <var_nmodule:AModule>*/;
483 var79
= ((short int (*)(val
*, val
*))(var78
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var78
, var_mclass
) /* has_key on <var78:Map[MClass, AClassdef]>*/;
492 var82
= "Error: A class ";
494 var84
= string__NativeString__to_s_with_length(var82
, var83
);
501 var87
= " is already defined at line ";
503 var89
= string__NativeString__to_s_with_length(var87
, var88
);
507 var90
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_modelize_class__AModule__mclass2nclassdef
]))(var_nmodule
) /* mclass2nclassdef on <var_nmodule:AModule>*/;
508 var91
= ((val
* (*)(val
*, val
*))(var90
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var90
, var_mclass
) /* [] on <var90:Map[MClass, AClassdef]>*/;
509 var92
= ((val
* (*)(val
*))(var91
->class->vft
[COLOR_parser_nodes__ANode__location
]))(var91
) /* location on <var91:nullable Object(AClassdef)>*/;
510 var93
= ((long (*)(val
*))(var92
->class->vft
[COLOR_location__Location__line_start
]))(var92
) /* line_start on <var92:Location>*/;
516 var98
= string__NativeString__to_s_with_length(var96
, var97
);
520 var99
= NEW_array__Array(&type_array__Arraykernel__Object
);
521 { /* var99 = array_instance Array[Object] */
523 var101
= NEW_array__NativeArray(var100
, &type_array__NativeArraykernel__Object
);
524 ((struct instance_array__NativeArray
*)var101
)->values
[0] = (val
*) var81
;
525 ((struct instance_array__NativeArray
*)var101
)->values
[1] = (val
*) var_name
;
526 ((struct instance_array__NativeArray
*)var101
)->values
[2] = (val
*) var86
;
527 var102
= BOX_kernel__Int(var93
); /* autobox from Int to Object */
528 ((struct instance_array__NativeArray
*)var101
)->values
[3] = (val
*) var102
;
529 ((struct instance_array__NativeArray
*)var101
)->values
[4] = (val
*) var95
;
530 ((void (*)(val
*, val
*, long))(var99
->class->vft
[COLOR_array__Array__with_native
]))(var99
, var101
, var100
) /* with_native on <var99:Array[Object]>*/;
532 var103
= ((val
* (*)(val
*))(var99
->class->vft
[COLOR_string__Object__to_s
]))(var99
) /* to_s on <var99:Array[Object]>*/;
533 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var_nclassdef
, var103
) /* error on <self:ModelBuilder>*/;
536 /* <var_nclassdef:AClassdef> isa AStdClassdef */
537 cltype106
= type_parser_nodes__AStdClassdef
.color
;
538 idtype107
= type_parser_nodes__AStdClassdef
.id
;
539 if(cltype106
>= var_nclassdef
->type
->table_size
) {
542 var105
= var_nclassdef
->type
->type_table
[cltype106
] == idtype107
;
546 var109
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__AStdClassdef__n_kwredef
]))(var_nclassdef
) /* n_kwredef on <var_nclassdef:AClassdef(AStdClassdef)>*/;
548 if (var109
== NULL
) {
549 var111
= 1; /* is null */
551 var111
= 0; /* arg is null but recv is not */
561 var114
= "Redef error: ";
563 var116
= string__NativeString__to_s_with_length(var114
, var115
);
570 var119
= " is an imported class. Add the redef keyword to refine it.";
572 var121
= string__NativeString__to_s_with_length(var119
, var120
);
576 var122
= NEW_array__Array(&type_array__Arraykernel__Object
);
577 { /* var122 = array_instance Array[Object] */
579 var124
= NEW_array__NativeArray(var123
, &type_array__NativeArraykernel__Object
);
580 ((struct instance_array__NativeArray
*)var124
)->values
[0] = (val
*) var113
;
581 ((struct instance_array__NativeArray
*)var124
)->values
[1] = (val
*) var_name
;
582 ((struct instance_array__NativeArray
*)var124
)->values
[2] = (val
*) var118
;
583 ((void (*)(val
*, val
*, long))(var122
->class->vft
[COLOR_array__Array__with_native
]))(var122
, var124
, var123
) /* with_native on <var122:Array[Object]>*/;
585 var125
= ((val
* (*)(val
*))(var122
->class->vft
[COLOR_string__Object__to_s
]))(var122
) /* to_s on <var122:Array[Object]>*/;
586 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var_nclassdef
, var125
) /* error on <self:ModelBuilder>*/;
589 var126
= ((long (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__arity
]))(var_mclass
) /* arity on <var_mclass:nullable MClass(MClass)>*/;
590 { /* Inline kernel#Int#!= (var126,var_arity) */
591 var129
= var126
== var_arity
;
595 RET_LABEL128
:(void)0;
601 var133
= "Redef error: Formal parameter arity missmatch; got ";
603 var135
= string__NativeString__to_s_with_length(var133
, var134
);
610 var138
= ", expected ";
612 var140
= string__NativeString__to_s_with_length(var138
, var139
);
616 var141
= ((long (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__arity
]))(var_mclass
) /* arity on <var_mclass:nullable MClass(MClass)>*/;
622 var146
= string__NativeString__to_s_with_length(var144
, var145
);
626 var147
= NEW_array__Array(&type_array__Arraykernel__Object
);
627 { /* var147 = array_instance Array[Object] */
629 var149
= NEW_array__NativeArray(var148
, &type_array__NativeArraykernel__Object
);
630 ((struct instance_array__NativeArray
*)var149
)->values
[0] = (val
*) var132
;
631 var150
= BOX_kernel__Int(var_arity
); /* autobox from Int to Object */
632 ((struct instance_array__NativeArray
*)var149
)->values
[1] = (val
*) var150
;
633 ((struct instance_array__NativeArray
*)var149
)->values
[2] = (val
*) var137
;
634 var151
= BOX_kernel__Int(var141
); /* autobox from Int to Object */
635 ((struct instance_array__NativeArray
*)var149
)->values
[3] = (val
*) var151
;
636 ((struct instance_array__NativeArray
*)var149
)->values
[4] = (val
*) var143
;
637 ((void (*)(val
*, val
*, long))(var147
->class->vft
[COLOR_array__Array__with_native
]))(var147
, var149
, var148
) /* with_native on <var147:Array[Object]>*/;
639 var152
= ((val
* (*)(val
*))(var147
->class->vft
[COLOR_string__Object__to_s
]))(var147
) /* to_s on <var147:Array[Object]>*/;
640 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var_nclassdef
, var152
) /* error on <self:ModelBuilder>*/;
644 if (var_nkind
== NULL
) {
645 var156
= 0; /* is null */
647 var156
= 1; /* arg is null and recv is not */
651 var158
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__concrete_kind
]))(self
) /* concrete_kind on <self:ModelBuilder>*/;
652 var159
= ((short int (*)(val
*, val
*))(var_mkind
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_mkind
, var158
) /* != on <var_mkind:MClassKind>*/;
659 var161
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__kind
]))(var_mclass
) /* kind on <var_mclass:nullable MClass(MClass)>*/;
660 var162
= ((short int (*)(val
*, val
*))(var161
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var161
, var_mkind
) /* != on <var161:MClassKind>*/;
669 var165
= "Error: refinement changed the kind from a ";
671 var167
= string__NativeString__to_s_with_length(var165
, var166
);
675 var168
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__kind
]))(var_mclass
) /* kind on <var_mclass:nullable MClass(MClass)>*/;
681 var173
= string__NativeString__to_s_with_length(var171
, var172
);
685 var174
= NEW_array__Array(&type_array__Arraykernel__Object
);
686 { /* var174 = array_instance Array[Object] */
688 var176
= NEW_array__NativeArray(var175
, &type_array__NativeArraykernel__Object
);
689 ((struct instance_array__NativeArray
*)var176
)->values
[0] = (val
*) var164
;
690 ((struct instance_array__NativeArray
*)var176
)->values
[1] = (val
*) var168
;
691 ((struct instance_array__NativeArray
*)var176
)->values
[2] = (val
*) var170
;
692 ((struct instance_array__NativeArray
*)var176
)->values
[3] = (val
*) var_mkind
;
693 ((void (*)(val
*, val
*, long))(var174
->class->vft
[COLOR_array__Array__with_native
]))(var174
, var176
, var175
) /* with_native on <var174:Array[Object]>*/;
695 var177
= ((val
* (*)(val
*))(var174
->class->vft
[COLOR_string__Object__to_s
]))(var174
) /* to_s on <var174:Array[Object]>*/;
696 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var_nkind
, var177
) /* error on <self:ModelBuilder>*/;
699 if (var_nvisibility
== NULL
) {
700 var181
= 0; /* is null */
702 var181
= 1; /* arg is null and recv is not */
706 var183
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model_base__Object__public_visibility
]))(self
) /* public_visibility on <self:ModelBuilder>*/;
707 var184
= ((short int (*)(val
*, val
*))(var_mvisibility
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_mvisibility
, var183
) /* != on <var_mvisibility:nullable MVisibility(MVisibility)>*/;
714 var186
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__visibility
]))(var_mclass
) /* visibility on <var_mclass:nullable MClass(MClass)>*/;
715 var187
= ((short int (*)(val
*, val
*))(var186
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var186
, var_mvisibility
) /* != on <var186:MVisibility>*/;
724 var190
= "Error: refinement changed the visibility from a ";
726 var192
= string__NativeString__to_s_with_length(var190
, var191
);
730 var193
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__visibility
]))(var_mclass
) /* visibility on <var_mclass:nullable MClass(MClass)>*/;
736 var198
= string__NativeString__to_s_with_length(var196
, var197
);
740 var199
= NEW_array__Array(&type_array__Arraykernel__Object
);
741 { /* var199 = array_instance Array[Object] */
743 var201
= NEW_array__NativeArray(var200
, &type_array__NativeArraykernel__Object
);
744 ((struct instance_array__NativeArray
*)var201
)->values
[0] = (val
*) var189
;
745 ((struct instance_array__NativeArray
*)var201
)->values
[1] = (val
*) var193
;
746 ((struct instance_array__NativeArray
*)var201
)->values
[2] = (val
*) var195
;
747 ((struct instance_array__NativeArray
*)var201
)->values
[3] = (val
*) var_mvisibility
;
748 ((void (*)(val
*, val
*, long))(var199
->class->vft
[COLOR_array__Array__with_native
]))(var199
, var201
, var200
) /* with_native on <var199:Array[Object]>*/;
750 var202
= ((val
* (*)(val
*))(var199
->class->vft
[COLOR_string__Object__to_s
]))(var199
) /* to_s on <var199:Array[Object]>*/;
751 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var_nvisibility
, var202
) /* error on <self:ModelBuilder>*/;
759 ((void (*)(val
*, val
*))(var_nclassdef
->class->vft
[COLOR_modelize_class__AClassdef__mclass_61d
]))(var_nclassdef
, var_mclass
) /* mclass= on <var_nclassdef:AClassdef>*/;
760 var203
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_modelize_class__AModule__mclass2nclassdef
]))(var_nmodule
) /* mclass2nclassdef on <var_nmodule:AModule>*/;
761 ((void (*)(val
*, val
*, val
*))(var203
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var203
, var_mclass
, var_nclassdef
) /* []= on <var203:Map[MClass, AClassdef]>*/;
764 /* method modelize_class#ModelBuilder#build_a_mclass for (self: Object, AModule, AClassdef) */
765 void VIRTUAL_modelize_class__ModelBuilder__build_a_mclass(val
* self
, val
* p0
, val
* p1
) {
766 modelize_class__ModelBuilder__build_a_mclass(self
, p0
, p1
);
769 /* method modelize_class#ModelBuilder#build_a_mclassdef for (self: ModelBuilder, AModule, AClassdef) */
770 void modelize_class__ModelBuilder__build_a_mclassdef(val
* self
, val
* p0
, val
* p1
) {
771 val
* var_nmodule
/* var nmodule: AModule */;
772 val
* var_nclassdef
/* var nclassdef: AClassdef */;
773 val
* var
/* : nullable MModule */;
774 val
* var_mmodule
/* var mmodule: MModule */;
776 val
* var1
/* : String */;
777 char* var2
/* : NativeString */;
778 long var3
/* : Int */;
779 val
* var4
/* : String */;
780 val
* var5
/* : nullable MClass */;
781 val
* var_objectclass
/* var objectclass: nullable MClass */;
782 val
* var6
/* : nullable MClass */;
783 val
* var_mclass
/* var mclass: nullable MClass */;
784 val
* var7
/* : null */;
785 short int var8
/* : Bool */;
786 val
* var9
/* : Array[String] */;
787 val
* var_names
/* var names: Array[String] */;
788 val
* var10
/* : Array[MType] */;
789 val
* var_bounds
/* var bounds: Array[MType] */;
790 short int var11
/* : Bool */;
791 short int var12
/* : Bool */;
794 short int var_
/* var : Bool */;
795 long var13
/* : Int */;
796 long var14
/* : Int */;
797 short int var15
/* : Bool */;
798 short int var17
/* : Bool */;
801 const char* var_class_name
;
802 short int var20
/* : Bool */;
803 val
* var21
/* : Range[Int] */;
804 long var22
/* : Int */;
805 long var23
/* : Int */;
806 val
* var24
/* : Discrete */;
807 val
* var25
/* : Discrete */;
808 val
* var26
/* : Iterator[nullable Object] */;
809 short int var27
/* : Bool */;
810 val
* var28
/* : nullable Object */;
811 long var_i
/* var i: Int */;
812 long var29
/* : Int */;
813 val
* var30
/* : ANodes[AFormaldef] */;
814 val
* var31
/* : nullable Object */;
815 val
* var_nfd
/* var nfd: AFormaldef */;
816 val
* var32
/* : TClassid */;
817 val
* var33
/* : String */;
818 val
* var_ptname
/* var ptname: String */;
819 short int var34
/* : Bool */;
820 static val
* varonce35
;
821 val
* var36
/* : String */;
822 char* var37
/* : NativeString */;
823 long var38
/* : Int */;
824 val
* var39
/* : String */;
825 static val
* varonce40
;
826 val
* var41
/* : String */;
827 char* var42
/* : NativeString */;
828 long var43
/* : Int */;
829 val
* var44
/* : String */;
830 val
* var45
/* : Array[Object] */;
831 long var46
/* : Int */;
832 val
* var47
/* : NativeArray[Object] */;
833 val
* var48
/* : String */;
834 val
* var49
/* : Iterator[nullable Object] */;
835 short int var50
/* : Bool */;
836 val
* var51
/* : nullable Object */;
837 char var_c
/* var c: Char */;
838 char var52
/* : Char */;
839 short int var53
/* : Bool */;
840 char var54
/* : Char */;
841 short int var55
/* : Bool */;
842 short int var57
/* : Bool */;
845 const char* var_class_name60
;
846 short int var61
/* : Bool */;
847 short int var_62
/* var : Bool */;
848 char var63
/* : Char */;
849 short int var64
/* : Bool */;
850 short int var66
/* : Bool */;
853 const char* var_class_name69
;
854 short int var70
/* : Bool */;
855 static val
* varonce71
;
856 val
* var72
/* : String */;
857 char* var73
/* : NativeString */;
858 long var74
/* : Int */;
859 val
* var75
/* : String */;
860 val
* var76
/* : Array[Object] */;
861 long var77
/* : Int */;
862 val
* var78
/* : NativeArray[Object] */;
863 val
* var79
/* : String */;
864 val
* var80
/* : MClassType */;
865 val
* var81
/* : Array[MType] */;
866 val
* var82
/* : nullable Object */;
867 short int var83
/* : Bool */;
870 const char* var_class_name86
;
871 val
* var88
/* : Range[Int] */;
872 long var89
/* : Int */;
873 long var90
/* : Int */;
874 val
* var91
/* : Discrete */;
875 val
* var92
/* : Discrete */;
876 val
* var93
/* : Iterator[nullable Object] */;
877 short int var94
/* : Bool */;
878 val
* var95
/* : nullable Object */;
879 long var_i96
/* var i: Int */;
880 long var97
/* : Int */;
881 val
* var98
/* : ANodes[AFormaldef] */;
882 val
* var99
/* : nullable Object */;
883 val
* var_nfd100
/* var nfd: AFormaldef */;
884 val
* var101
/* : nullable AType */;
885 val
* var_nfdt
/* var nfdt: nullable AType */;
886 val
* var102
/* : null */;
887 short int var103
/* : Bool */;
888 short int var104
/* : Bool */;
889 val
* var105
/* : nullable MType */;
890 val
* var_bound
/* var bound: nullable MType */;
891 val
* var106
/* : null */;
892 short int var107
/* : Bool */;
893 short int var108
/* : Bool */;
894 static val
* varonce109
;
895 val
* var110
/* : String */;
896 char* var111
/* : NativeString */;
897 long var112
/* : Int */;
898 val
* var113
/* : String */;
899 val
* var114
/* : nullable Object */;
900 static val
* varonce115
;
901 val
* var116
/* : String */;
902 char* var117
/* : NativeString */;
903 long var118
/* : Int */;
904 val
* var119
/* : String */;
905 val
* var120
/* : Array[Object] */;
906 long var121
/* : Int */;
907 val
* var122
/* : NativeArray[Object] */;
908 val
* var123
/* : String */;
909 val
* var124
/* : Array[MClassDef] */;
910 short int var125
/* : Bool */;
911 val
* var126
/* : MClassType */;
912 val
* var127
/* : MType */;
913 val
* var_bound128
/* var bound: MType */;
914 val
* var129
/* : MClassDef */;
915 val
* var130
/* : MClassType */;
916 val
* var131
/* : Array[MType] */;
917 val
* var132
/* : nullable Object */;
918 val
* var_bound133
/* var bound: MType */;
919 val
* var135
/* : MClassType */;
920 val
* var_bound_mtype
/* var bound_mtype: MClassType */;
921 val
* var136
/* : MClassDef */;
922 val
* var137
/* : Location */;
923 val
* var_mclassdef
/* var mclassdef: MClassDef */;
924 val
* var138
/* : HashMap[MClassDef, AClassdef] */;
925 short int var139
/* : Bool */;
926 val
* var140
/* : ToolContext */;
927 static val
* varonce141
;
928 val
* var142
/* : String */;
929 char* var143
/* : NativeString */;
930 long var144
/* : Int */;
931 val
* var145
/* : String */;
932 val
* var146
/* : MClassKind */;
933 static val
* varonce147
;
934 val
* var148
/* : String */;
935 char* var149
/* : NativeString */;
936 long var150
/* : Int */;
937 val
* var151
/* : String */;
938 val
* var152
/* : String */;
939 val
* var153
/* : Array[Object] */;
940 long var154
/* : Int */;
941 val
* var155
/* : NativeArray[Object] */;
942 val
* var156
/* : String */;
943 long var157
/* : Int */;
944 val
* var158
/* : ToolContext */;
945 static val
* varonce159
;
946 val
* var160
/* : String */;
947 char* var161
/* : NativeString */;
948 long var162
/* : Int */;
949 val
* var163
/* : String */;
950 val
* var164
/* : MClassKind */;
951 static val
* varonce165
;
952 val
* var166
/* : String */;
953 char* var167
/* : NativeString */;
954 long var168
/* : Int */;
955 val
* var169
/* : String */;
956 val
* var170
/* : String */;
957 val
* var171
/* : Array[Object] */;
958 long var172
/* : Int */;
959 val
* var173
/* : NativeArray[Object] */;
960 val
* var174
/* : String */;
961 long var175
/* : Int */;
964 var
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_modelbuilder__AModule__mmodule
]))(var_nmodule
) /* mmodule on <var_nmodule:AModule>*/;
966 fprintf(stderr
, "Runtime error: %s", "Cast failed");
967 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 106);
976 var4
= string__NativeString__to_s_with_length(var2
, var3
);
980 var5
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__try_get_mclass_by_name
]))(self
, var_nmodule
, var_mmodule
, var1
) /* try_get_mclass_by_name on <self:ModelBuilder>*/;
981 var_objectclass
= var5
;
982 var6
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_modelize_class__AClassdef__mclass
]))(var_nclassdef
) /* mclass on <var_nclassdef:AClassdef>*/;
985 if (var_mclass
== NULL
) {
986 var8
= 1; /* is null */
988 var8
= 0; /* arg is null but recv is not */
994 var9
= NEW_array__Array(&type_array__Arraystring__String
);
995 ((void (*)(val
*))(var9
->class->vft
[COLOR_array__Array__init
]))(var9
) /* init on <var9:Array[String]>*/;
997 var10
= NEW_array__Array(&type_array__Arraymodel__MType
);
998 ((void (*)(val
*))(var10
->class->vft
[COLOR_array__Array__init
]))(var10
) /* init on <var10:Array[MType]>*/;
1000 /* <var_nclassdef:AClassdef> isa AStdClassdef */
1001 cltype
= type_parser_nodes__AStdClassdef
.color
;
1002 idtype
= type_parser_nodes__AStdClassdef
.id
;
1003 if(cltype
>= var_nclassdef
->type
->table_size
) {
1006 var12
= var_nclassdef
->type
->type_table
[cltype
] == idtype
;
1010 var13
= ((long (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__arity
]))(var_mclass
) /* arity on <var_mclass:nullable MClass(MClass)>*/;
1012 { /* Inline kernel#Int#> (var13,var14) */
1013 /* Covariant cast for argument 0 (i) <var14:Int> isa OTHER */
1014 /* <var14:Int> isa OTHER */
1015 var17
= 1; /* easy <var14:Int> isa OTHER*/
1017 var_class_name
= type_kernel__Int
.name
;
1018 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1019 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
1022 var20
= var13
> var14
;
1025 RET_LABEL16
:(void)0;
1032 var21
= NEW_range__Range(&type_range__Rangekernel__Int
);
1034 var23
= ((long (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__arity
]))(var_mclass
) /* arity on <var_mclass:nullable MClass(MClass)>*/;
1035 var24
= BOX_kernel__Int(var22
); /* autobox from Int to Discrete */
1036 var25
= BOX_kernel__Int(var23
); /* autobox from Int to Discrete */
1037 ((void (*)(val
*, val
*, val
*))(var21
->class->vft
[COLOR_range__Range__without_last
]))(var21
, var24
, var25
) /* without_last on <var21:Range[Int]>*/;
1038 var26
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var21
) /* iterator on <var21:Range[Int]>*/;
1040 var27
= ((short int (*)(val
*))(var26
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var26
) /* is_ok on <var26:Iterator[nullable Object]>*/;
1042 var28
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var26
) /* item on <var26:Iterator[nullable Object]>*/;
1043 var29
= ((struct instance_kernel__Int
*)var28
)->value
; /* autounbox from nullable Object to Int */;
1045 var30
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__AStdClassdef__n_formaldefs
]))(var_nclassdef
) /* n_formaldefs on <var_nclassdef:AClassdef(AStdClassdef)>*/;
1046 var31
= ((val
* (*)(val
*, long))(var30
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var30
, var_i
) /* [] on <var30:ANodes[AFormaldef]>*/;
1048 var32
= ((val
* (*)(val
*))(var_nfd
->class->vft
[COLOR_parser_nodes__AFormaldef__n_id
]))(var_nfd
) /* n_id on <var_nfd:AFormaldef>*/;
1049 var33
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_parser_nodes__Token__text
]))(var32
) /* text on <var32:TClassid>*/;
1051 var34
= ((short int (*)(val
*, val
*))(var_names
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var_names
, var_ptname
) /* has on <var_names:Array[String]>*/;
1056 var37
= "Error: A formal parameter type `";
1058 var39
= string__NativeString__to_s_with_length(var37
, var38
);
1065 var42
= "\' already exists";
1067 var44
= string__NativeString__to_s_with_length(var42
, var43
);
1071 var45
= NEW_array__Array(&type_array__Arraykernel__Object
);
1072 { /* var45 = array_instance Array[Object] */
1074 var47
= NEW_array__NativeArray(var46
, &type_array__NativeArraykernel__Object
);
1075 ((struct instance_array__NativeArray
*)var47
)->values
[0] = (val
*) var36
;
1076 ((struct instance_array__NativeArray
*)var47
)->values
[1] = (val
*) var_ptname
;
1077 ((struct instance_array__NativeArray
*)var47
)->values
[2] = (val
*) var41
;
1078 ((void (*)(val
*, val
*, long))(var45
->class->vft
[COLOR_array__Array__with_native
]))(var45
, var47
, var46
) /* with_native on <var45:Array[Object]>*/;
1080 var48
= ((val
* (*)(val
*))(var45
->class->vft
[COLOR_string__Object__to_s
]))(var45
) /* to_s on <var45:Array[Object]>*/;
1081 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var_nfd
, var48
) /* error on <self:ModelBuilder>*/;
1085 var49
= ((val
* (*)(val
*))(var_ptname
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_ptname
) /* iterator on <var_ptname:String>*/;
1087 var50
= ((short int (*)(val
*))(var49
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var49
) /* is_ok on <var49:Iterator[nullable Object]>*/;
1089 var51
= ((val
* (*)(val
*))(var49
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var49
) /* item on <var49:Iterator[nullable Object]>*/;
1090 var52
= ((struct instance_kernel__Char
*)var51
)->value
; /* autounbox from nullable Object to Char */;
1093 { /* Inline kernel#Char#>= (var_c,var54) */
1094 /* Covariant cast for argument 0 (i) <var54:Char> isa OTHER */
1095 /* <var54:Char> isa OTHER */
1096 var57
= 1; /* easy <var54:Char> isa OTHER*/
1098 var_class_name60
= type_kernel__Char
.name
;
1099 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name60
);
1100 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 438);
1103 var61
= var_c
>= var54
;
1106 RET_LABEL56
:(void)0;
1111 { /* Inline kernel#Char#<= (var_c,var63) */
1112 /* Covariant cast for argument 0 (i) <var63:Char> isa OTHER */
1113 /* <var63:Char> isa OTHER */
1114 var66
= 1; /* easy <var63:Char> isa OTHER*/
1116 var_class_name69
= type_kernel__Char
.name
;
1117 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name69
);
1118 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 436);
1121 var70
= var_c
<= var63
;
1124 RET_LABEL65
:(void)0;
1134 var73
= "Warning: lowercase in the formal parameter type ";
1136 var75
= string__NativeString__to_s_with_length(var73
, var74
);
1140 var76
= NEW_array__Array(&type_array__Arraykernel__Object
);
1141 { /* var76 = array_instance Array[Object] */
1143 var78
= NEW_array__NativeArray(var77
, &type_array__NativeArraykernel__Object
);
1144 ((struct instance_array__NativeArray
*)var78
)->values
[0] = (val
*) var72
;
1145 ((struct instance_array__NativeArray
*)var78
)->values
[1] = (val
*) var_ptname
;
1146 ((void (*)(val
*, val
*, long))(var76
->class->vft
[COLOR_array__Array__with_native
]))(var76
, var78
, var77
) /* with_native on <var76:Array[Object]>*/;
1148 var79
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_string__Object__to_s
]))(var76
) /* to_s on <var76:Array[Object]>*/;
1149 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__warning
]))(self
, var_nfd
, var79
) /* warning on <self:ModelBuilder>*/;
1153 CONTINUE_label
: (void)0;
1154 ((void (*)(val
*))(var49
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var49
) /* next on <var49:Iterator[nullable Object]>*/;
1156 BREAK_label
: (void)0;
1157 ((void (*)(val
*, val
*))(var_names
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_names
, var_ptname
) /* add on <var_names:Array[String]>*/;
1158 var80
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:nullable MClass(MClass)>*/;
1159 var81
= ((val
* (*)(val
*))(var80
->class->vft
[COLOR_model__MClassType__arguments
]))(var80
) /* arguments on <var80:MClassType>*/;
1160 var82
= ((val
* (*)(val
*, long))(var81
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var81
, var_i
) /* [] on <var81:Array[MType]>*/;
1161 /* <var82:nullable Object(MType)> isa MParameterType */
1162 cltype84
= type_model__MParameterType
.color
;
1163 idtype85
= type_model__MParameterType
.id
;
1164 if(cltype84
>= var82
->type
->table_size
) {
1167 var83
= var82
->type
->type_table
[cltype84
] == idtype85
;
1170 var_class_name86
= var82
== NULL ?
"null" : var82
->type
->name
;
1171 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MParameterType", var_class_name86
);
1172 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 128);
1175 ((void (*)(val
*, val
*))(var_nfd
->class->vft
[COLOR_modelize_class__AFormaldef__mtype_61d
]))(var_nfd
, var82
) /* mtype= on <var_nfd:AFormaldef>*/;
1176 CONTINUE_label87
: (void)0;
1177 ((void (*)(val
*))(var26
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var26
) /* next on <var26:Iterator[nullable Object]>*/;
1179 BREAK_label87
: (void)0;
1180 var88
= NEW_range__Range(&type_range__Rangekernel__Int
);
1182 var90
= ((long (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__arity
]))(var_mclass
) /* arity on <var_mclass:nullable MClass(MClass)>*/;
1183 var91
= BOX_kernel__Int(var89
); /* autobox from Int to Discrete */
1184 var92
= BOX_kernel__Int(var90
); /* autobox from Int to Discrete */
1185 ((void (*)(val
*, val
*, val
*))(var88
->class->vft
[COLOR_range__Range__without_last
]))(var88
, var91
, var92
) /* without_last on <var88:Range[Int]>*/;
1186 var93
= ((val
* (*)(val
*))(var88
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var88
) /* iterator on <var88:Range[Int]>*/;
1188 var94
= ((short int (*)(val
*))(var93
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var93
) /* is_ok on <var93:Iterator[nullable Object]>*/;
1190 var95
= ((val
* (*)(val
*))(var93
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var93
) /* item on <var93:Iterator[nullable Object]>*/;
1191 var97
= ((struct instance_kernel__Int
*)var95
)->value
; /* autounbox from nullable Object to Int */;
1193 var98
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__AStdClassdef__n_formaldefs
]))(var_nclassdef
) /* n_formaldefs on <var_nclassdef:AClassdef(AStdClassdef)>*/;
1194 var99
= ((val
* (*)(val
*, long))(var98
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var98
, var_i96
) /* [] on <var98:ANodes[AFormaldef]>*/;
1196 var101
= ((val
* (*)(val
*))(var_nfd100
->class->vft
[COLOR_parser_nodes__AFormaldef__n_type
]))(var_nfd100
) /* n_type on <var_nfd100:AFormaldef>*/;
1199 if (var_nfdt
== NULL
) {
1200 var103
= 0; /* is null */
1202 var103
= 1; /* arg is null and recv is not */
1206 var105
= ((val
* (*)(val
*, val
*, val
*, short int))(self
->class->vft
[COLOR_modelize_class__ModelBuilder__resolve_mtype_unchecked
]))(self
, var_nclassdef
, var_nfdt
, var104
) /* resolve_mtype_unchecked on <self:ModelBuilder>*/;
1209 if (var_bound
== NULL
) {
1210 var107
= 1; /* is null */
1212 var107
= 0; /* arg is null but recv is not */
1218 var108
= ((short int (*)(val
*))(var_bound
->class->vft
[COLOR_model__MType__need_anchor
]))(var_bound
) /* need_anchor on <var_bound:nullable MType(MType)>*/;
1221 var110
= varonce109
;
1223 var111
= "Error: Formal parameter type `";
1225 var113
= string__NativeString__to_s_with_length(var111
, var112
);
1227 varonce109
= var110
;
1229 var114
= ((val
* (*)(val
*, long))(var_names
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_names
, var_i96
) /* [] on <var_names:Array[String]>*/;
1231 var116
= varonce115
;
1233 var117
= "\' bounded with a formal parameter type";
1235 var119
= string__NativeString__to_s_with_length(var117
, var118
);
1237 varonce115
= var116
;
1239 var120
= NEW_array__Array(&type_array__Arraykernel__Object
);
1240 { /* var120 = array_instance Array[Object] */
1242 var122
= NEW_array__NativeArray(var121
, &type_array__NativeArraykernel__Object
);
1243 ((struct instance_array__NativeArray
*)var122
)->values
[0] = (val
*) var110
;
1244 ((struct instance_array__NativeArray
*)var122
)->values
[1] = (val
*) var114
;
1245 ((struct instance_array__NativeArray
*)var122
)->values
[2] = (val
*) var116
;
1246 ((void (*)(val
*, val
*, long))(var120
->class->vft
[COLOR_array__Array__with_native
]))(var120
, var122
, var121
) /* with_native on <var120:Array[Object]>*/;
1248 var123
= ((val
* (*)(val
*))(var120
->class->vft
[COLOR_string__Object__to_s
]))(var120
) /* to_s on <var120:Array[Object]>*/;
1249 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var_nfd100
, var123
) /* error on <self:ModelBuilder>*/;
1251 ((void (*)(val
*, val
*))(var_bounds
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_bounds
, var_bound
) /* add on <var_bounds:Array[MType]>*/;
1252 ((void (*)(val
*, val
*))(var_nfd100
->class->vft
[COLOR_modelize_class__AFormaldef__bound_61d
]))(var_nfd100
, var_bound
) /* bound= on <var_nfd100:AFormaldef>*/;
1255 var124
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclassdefs
]))(var_mclass
) /* mclassdefs on <var_mclass:nullable MClass(MClass)>*/;
1256 var125
= ((short int (*)(val
*))(var124
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var124
) /* is_empty on <var124:Array[MClassDef]>*/;
1258 if (var_objectclass
== NULL
) {
1259 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
1260 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 147);
1263 var126
= ((val
* (*)(val
*))(var_objectclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_objectclass
) /* mclass_type on <var_objectclass:nullable MClass>*/;
1265 var127
= ((val
* (*)(val
*))(var126
->class->vft
[COLOR_model__MType__as_nullable
]))(var126
) /* as_nullable on <var126:MClassType>*/;
1266 var_bound128
= var127
;
1267 ((void (*)(val
*, val
*))(var_bounds
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_bounds
, var_bound128
) /* add on <var_bounds:Array[MType]>*/;
1268 ((void (*)(val
*, val
*))(var_nfd100
->class->vft
[COLOR_modelize_class__AFormaldef__bound_61d
]))(var_nfd100
, var_bound128
) /* bound= on <var_nfd100:AFormaldef>*/;
1270 var129
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro
]))(var_mclass
) /* intro on <var_mclass:nullable MClass(MClass)>*/;
1271 var130
= ((val
* (*)(val
*))(var129
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var129
) /* bound_mtype on <var129:MClassDef>*/;
1272 var131
= ((val
* (*)(val
*))(var130
->class->vft
[COLOR_model__MClassType__arguments
]))(var130
) /* arguments on <var130:MClassType>*/;
1273 var132
= ((val
* (*)(val
*, long))(var131
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var131
, var_i96
) /* [] on <var131:Array[MType]>*/;
1274 var_bound133
= var132
;
1275 ((void (*)(val
*, val
*))(var_bounds
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_bounds
, var_bound133
) /* add on <var_bounds:Array[MType]>*/;
1276 ((void (*)(val
*, val
*))(var_nfd100
->class->vft
[COLOR_modelize_class__AFormaldef__bound_61d
]))(var_nfd100
, var_bound133
) /* bound= on <var_nfd100:AFormaldef>*/;
1279 CONTINUE_label134
: (void)0;
1280 ((void (*)(val
*))(var93
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var93
) /* next on <var93:Iterator[nullable Object]>*/;
1282 BREAK_label134
: (void)0;
1285 var135
= ((val
* (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_model__MClass__get_mtype
]))(var_mclass
, var_bounds
) /* get_mtype on <var_mclass:nullable MClass(MClass)>*/;
1286 var_bound_mtype
= var135
;
1287 var136
= NEW_model__MClassDef(&type_model__MClassDef
);
1288 var137
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__ANode__location
]))(var_nclassdef
) /* location on <var_nclassdef:AClassdef>*/;
1289 ((void (*)(val
*, val
*, val
*, val
*, val
*))(var136
->class->vft
[COLOR_model__MClassDef__init
]))(var136
, var_mmodule
, var_bound_mtype
, var137
, var_names
) /* init on <var136:MClassDef>*/;
1290 var_mclassdef
= var136
;
1291 ((void (*)(val
*, val
*))(var_nclassdef
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef_61d
]))(var_nclassdef
, var_mclassdef
) /* mclassdef= on <var_nclassdef:AClassdef>*/;
1292 var138
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelize_class__ModelBuilder__mclassdef2nclassdef
]))(self
) /* mclassdef2nclassdef on <self:ModelBuilder>*/;
1293 ((void (*)(val
*, val
*, val
*))(var138
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var138
, var_mclassdef
, var_nclassdef
) /* []= on <var138:HashMap[MClassDef, AClassdef]>*/;
1294 var139
= ((short int (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__is_intro
]))(var_mclassdef
) /* is_intro on <var_mclassdef:MClassDef>*/;
1296 var140
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
1298 var142
= varonce141
;
1300 var143
= " introduces new ";
1302 var145
= string__NativeString__to_s_with_length(var143
, var144
);
1304 varonce141
= var142
;
1306 var146
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__kind
]))(var_mclass
) /* kind on <var_mclass:nullable MClass(MClass)>*/;
1308 var148
= varonce147
;
1312 var151
= string__NativeString__to_s_with_length(var149
, var150
);
1314 varonce147
= var148
;
1316 var152
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__full_name
]))(var_mclass
) /* full_name on <var_mclass:nullable MClass(MClass)>*/;
1317 var153
= NEW_array__Array(&type_array__Arraykernel__Object
);
1318 { /* var153 = array_instance Array[Object] */
1320 var155
= NEW_array__NativeArray(var154
, &type_array__NativeArraykernel__Object
);
1321 ((struct instance_array__NativeArray
*)var155
)->values
[0] = (val
*) var_mclassdef
;
1322 ((struct instance_array__NativeArray
*)var155
)->values
[1] = (val
*) var142
;
1323 ((struct instance_array__NativeArray
*)var155
)->values
[2] = (val
*) var146
;
1324 ((struct instance_array__NativeArray
*)var155
)->values
[3] = (val
*) var148
;
1325 ((struct instance_array__NativeArray
*)var155
)->values
[4] = (val
*) var152
;
1326 ((void (*)(val
*, val
*, long))(var153
->class->vft
[COLOR_array__Array__with_native
]))(var153
, var155
, var154
) /* with_native on <var153:Array[Object]>*/;
1328 var156
= ((val
* (*)(val
*))(var153
->class->vft
[COLOR_string__Object__to_s
]))(var153
) /* to_s on <var153:Array[Object]>*/;
1330 ((void (*)(val
*, val
*, long))(var140
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var140
, var156
, var157
) /* info on <var140:ToolContext>*/;
1332 var158
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
1334 var160
= varonce159
;
1336 var161
= " refine ";
1338 var163
= string__NativeString__to_s_with_length(var161
, var162
);
1340 varonce159
= var160
;
1342 var164
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__kind
]))(var_mclass
) /* kind on <var_mclass:nullable MClass(MClass)>*/;
1344 var166
= varonce165
;
1348 var169
= string__NativeString__to_s_with_length(var167
, var168
);
1350 varonce165
= var166
;
1352 var170
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__full_name
]))(var_mclass
) /* full_name on <var_mclass:nullable MClass(MClass)>*/;
1353 var171
= NEW_array__Array(&type_array__Arraykernel__Object
);
1354 { /* var171 = array_instance Array[Object] */
1356 var173
= NEW_array__NativeArray(var172
, &type_array__NativeArraykernel__Object
);
1357 ((struct instance_array__NativeArray
*)var173
)->values
[0] = (val
*) var_mclassdef
;
1358 ((struct instance_array__NativeArray
*)var173
)->values
[1] = (val
*) var160
;
1359 ((struct instance_array__NativeArray
*)var173
)->values
[2] = (val
*) var164
;
1360 ((struct instance_array__NativeArray
*)var173
)->values
[3] = (val
*) var166
;
1361 ((struct instance_array__NativeArray
*)var173
)->values
[4] = (val
*) var170
;
1362 ((void (*)(val
*, val
*, long))(var171
->class->vft
[COLOR_array__Array__with_native
]))(var171
, var173
, var172
) /* with_native on <var171:Array[Object]>*/;
1364 var174
= ((val
* (*)(val
*))(var171
->class->vft
[COLOR_string__Object__to_s
]))(var171
) /* to_s on <var171:Array[Object]>*/;
1366 ((void (*)(val
*, val
*, long))(var158
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var158
, var174
, var175
) /* info on <var158:ToolContext>*/;
1370 /* method modelize_class#ModelBuilder#build_a_mclassdef for (self: Object, AModule, AClassdef) */
1371 void VIRTUAL_modelize_class__ModelBuilder__build_a_mclassdef(val
* self
, val
* p0
, val
* p1
) {
1372 modelize_class__ModelBuilder__build_a_mclassdef(self
, p0
, p1
);
1375 /* method modelize_class#ModelBuilder#collect_a_mclassdef_inheritance for (self: ModelBuilder, AModule, AClassdef) */
1376 void modelize_class__ModelBuilder__collect_a_mclassdef_inheritance(val
* self
, val
* p0
, val
* p1
) {
1377 val
* var_nmodule
/* var nmodule: AModule */;
1378 val
* var_nclassdef
/* var nclassdef: AClassdef */;
1379 val
* var
/* : nullable MModule */;
1380 val
* var_mmodule
/* var mmodule: MModule */;
1381 static val
* varonce
;
1382 val
* var1
/* : String */;
1383 char* var2
/* : NativeString */;
1384 long var3
/* : Int */;
1385 val
* var4
/* : String */;
1386 val
* var5
/* : nullable MClass */;
1387 val
* var_objectclass
/* var objectclass: nullable MClass */;
1388 static val
* varonce6
;
1389 val
* var7
/* : String */;
1390 char* var8
/* : NativeString */;
1391 long var9
/* : Int */;
1392 val
* var10
/* : String */;
1393 val
* var11
/* : nullable MClass */;
1394 val
* var_pointerclass
/* var pointerclass: nullable MClass */;
1395 val
* var12
/* : nullable MClass */;
1396 val
* var_mclass
/* var mclass: MClass */;
1397 val
* var13
/* : nullable MClassDef */;
1398 val
* var_mclassdef
/* var mclassdef: MClassDef */;
1399 short int var14
/* : Bool */;
1400 short int var_specobject
/* var specobject: Bool */;
1401 val
* var15
/* : Array[MClassType] */;
1402 val
* var_supertypes
/* var supertypes: Array[MClassType] */;
1403 short int var16
/* : Bool */;
1406 val
* var17
/* : ANodes[ASuperclass] */;
1407 val
* var18
/* : Iterator[nullable Object] */;
1408 short int var19
/* : Bool */;
1409 val
* var20
/* : nullable Object */;
1410 val
* var_nsc
/* var nsc: ASuperclass */;
1411 short int var21
/* : Bool */;
1412 val
* var22
/* : AType */;
1413 val
* var_ntype
/* var ntype: AType */;
1414 short int var23
/* : Bool */;
1415 val
* var24
/* : nullable MType */;
1416 val
* var_mtype
/* var mtype: nullable MType */;
1417 val
* var25
/* : null */;
1418 short int var26
/* : Bool */;
1419 short int var27
/* : Bool */;
1422 short int var30
/* : Bool */;
1423 static val
* varonce31
;
1424 val
* var32
/* : String */;
1425 char* var33
/* : NativeString */;
1426 long var34
/* : Int */;
1427 val
* var35
/* : String */;
1428 short int var36
/* : Bool */;
1429 short int var_
/* var : Bool */;
1430 short int var37
/* : Bool */;
1431 val
* var38
/* : MClassKind */;
1432 val
* var39
/* : MClassKind */;
1433 short int var40
/* : Bool */;
1434 val
* var41
/* : String */;
1435 static val
* varonce42
;
1436 val
* var43
/* : String */;
1437 char* var44
/* : NativeString */;
1438 long var45
/* : Int */;
1439 val
* var46
/* : String */;
1440 short int var47
/* : Bool */;
1441 val
* var48
/* : MClassType */;
1442 val
* var49
/* : MClassType */;
1443 short int var50
/* : Bool */;
1444 val
* var51
/* : String */;
1445 static val
* varonce52
;
1446 val
* var53
/* : String */;
1447 char* var54
/* : NativeString */;
1448 long var55
/* : Int */;
1449 val
* var56
/* : String */;
1450 short int var57
/* : Bool */;
1451 short int var_58
/* var : Bool */;
1452 val
* var59
/* : null */;
1453 short int var60
/* : Bool */;
1454 val
* var61
/* : MClassType */;
1455 short int var62
/* : Bool */;
1456 short int var63
/* : Bool */;
1457 val
* var64
/* : ToolContext */;
1458 static val
* varonce65
;
1459 val
* var66
/* : String */;
1460 char* var67
/* : NativeString */;
1461 long var68
/* : Int */;
1462 val
* var69
/* : String */;
1463 static val
* varonce70
;
1464 val
* var71
/* : String */;
1465 char* var72
/* : NativeString */;
1466 long var73
/* : Int */;
1467 val
* var74
/* : String */;
1468 val
* var75
/* : String */;
1469 val
* var76
/* : Array[Object] */;
1470 long var77
/* : Int */;
1471 val
* var78
/* : NativeArray[Object] */;
1472 val
* var79
/* : String */;
1473 long var80
/* : Int */;
1476 var
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_modelbuilder__AModule__mmodule
]))(var_nmodule
) /* mmodule on <var_nmodule:AModule>*/;
1478 fprintf(stderr
, "Runtime error: %s", "Cast failed");
1479 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 174);
1488 var4
= string__NativeString__to_s_with_length(var2
, var3
);
1492 var5
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__try_get_mclass_by_name
]))(self
, var_nmodule
, var_mmodule
, var1
) /* try_get_mclass_by_name on <self:ModelBuilder>*/;
1493 var_objectclass
= var5
;
1499 var10
= string__NativeString__to_s_with_length(var8
, var9
);
1503 var11
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__try_get_mclass_by_name
]))(self
, var_nmodule
, var_mmodule
, var7
) /* try_get_mclass_by_name on <self:ModelBuilder>*/;
1504 var_pointerclass
= var11
;
1505 var12
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_modelize_class__AClassdef__mclass
]))(var_nclassdef
) /* mclass on <var_nclassdef:AClassdef>*/;
1506 if (var12
== NULL
) {
1507 fprintf(stderr
, "Runtime error: %s", "Cast failed");
1508 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 177);
1512 var13
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var_nclassdef
) /* mclassdef on <var_nclassdef:AClassdef>*/;
1513 if (var13
== NULL
) {
1514 fprintf(stderr
, "Runtime error: %s", "Cast failed");
1515 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 178);
1518 var_mclassdef
= var13
;
1520 var_specobject
= var14
;
1521 var15
= NEW_array__Array(&type_array__Arraymodel__MClassType
);
1522 ((void (*)(val
*))(var15
->class->vft
[COLOR_array__Array__init
]))(var15
) /* init on <var15:Array[MClassType]>*/;
1523 var_supertypes
= var15
;
1524 /* <var_nclassdef:AClassdef> isa AStdClassdef */
1525 cltype
= type_parser_nodes__AStdClassdef
.color
;
1526 idtype
= type_parser_nodes__AStdClassdef
.id
;
1527 if(cltype
>= var_nclassdef
->type
->table_size
) {
1530 var16
= var_nclassdef
->type
->type_table
[cltype
] == idtype
;
1533 var17
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__AStdClassdef__n_superclasses
]))(var_nclassdef
) /* n_superclasses on <var_nclassdef:AClassdef(AStdClassdef)>*/;
1534 var18
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var17
) /* iterator on <var17:ANodes[ASuperclass]>*/;
1536 var19
= ((short int (*)(val
*))(var18
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var18
) /* is_ok on <var18:Iterator[nullable Object]>*/;
1538 var20
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var18
) /* item on <var18:Iterator[nullable Object]>*/;
1541 var_specobject
= var21
;
1542 var22
= ((val
* (*)(val
*))(var_nsc
->class->vft
[COLOR_parser_nodes__ASuperclass__n_type
]))(var_nsc
) /* n_type on <var_nsc:ASuperclass>*/;
1545 var24
= ((val
* (*)(val
*, val
*, val
*, short int))(self
->class->vft
[COLOR_modelize_class__ModelBuilder__resolve_mtype_unchecked
]))(self
, var_nclassdef
, var_ntype
, var23
) /* resolve_mtype_unchecked on <self:ModelBuilder>*/;
1548 if (var_mtype
== NULL
) {
1549 var26
= 1; /* is null */
1551 var26
= 0; /* arg is null but recv is not */
1554 goto CONTINUE_label
;
1557 /* <var_mtype:nullable MType(MType)> isa MClassType */
1558 cltype28
= type_model__MClassType
.color
;
1559 idtype29
= type_model__MClassType
.id
;
1560 if(cltype28
>= var_mtype
->type
->table_size
) {
1563 var27
= var_mtype
->type
->type_table
[cltype28
] == idtype29
;
1570 var33
= "Error: supertypes cannot be a formal type";
1572 var35
= string__NativeString__to_s_with_length(var33
, var34
);
1576 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var_ntype
, var32
) /* error on <self:ModelBuilder>*/;
1580 ((void (*)(val
*, val
*))(var_supertypes
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_supertypes
, var_mtype
) /* add on <var_supertypes:Array[MClassType]>*/;
1581 CONTINUE_label
: (void)0;
1582 ((void (*)(val
*))(var18
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var18
) /* next on <var18:Iterator[nullable Object]>*/;
1584 BREAK_label
: (void)0;
1587 var_
= var_specobject
;
1588 if (var_specobject
){
1589 var37
= ((short int (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__is_intro
]))(var_mclassdef
) /* is_intro on <var_mclassdef:MClassDef>*/;
1595 var38
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__kind
]))(var_mclass
) /* kind on <var_mclass:MClass>*/;
1596 var39
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__extern_kind
]))(self
) /* extern_kind on <self:ModelBuilder>*/;
1597 var40
= ((short int (*)(val
*, val
*))(var38
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var38
, var39
) /* == on <var38:MClassKind>*/;
1599 var41
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__name
]))(var_mclass
) /* name on <var_mclass:MClass>*/;
1605 var46
= string__NativeString__to_s_with_length(var44
, var45
);
1609 var47
= ((short int (*)(val
*, val
*))(var41
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var41
, var43
) /* == on <var41:String>*/;
1611 if (var_objectclass
== NULL
) {
1612 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
1613 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 199);
1616 var48
= ((val
* (*)(val
*))(var_objectclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_objectclass
) /* mclass_type on <var_objectclass:nullable MClass>*/;
1618 ((void (*)(val
*, val
*))(var_supertypes
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_supertypes
, var48
) /* add on <var_supertypes:Array[MClassType]>*/;
1620 if (var_pointerclass
== NULL
) {
1621 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
1622 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 201);
1625 var49
= ((val
* (*)(val
*))(var_pointerclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_pointerclass
) /* mclass_type on <var_pointerclass:nullable MClass>*/;
1627 ((void (*)(val
*, val
*))(var_supertypes
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_supertypes
, var49
) /* add on <var_supertypes:Array[MClassType]>*/;
1630 var51
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__name
]))(var_mclass
) /* name on <var_mclass:MClass>*/;
1636 var56
= string__NativeString__to_s_with_length(var54
, var55
);
1640 var57
= ((short int (*)(val
*, val
*))(var51
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var51
, var53
) /* != on <var51:String>*/;
1644 if (var_objectclass
== NULL
) {
1645 var60
= 0; /* is null */
1647 var60
= 1; /* arg is null and recv is not */
1654 var61
= ((val
* (*)(val
*))(var_objectclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_objectclass
) /* mclass_type on <var_objectclass:nullable MClass(MClass)>*/;
1655 ((void (*)(val
*, val
*))(var_supertypes
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_supertypes
, var61
) /* add on <var_supertypes:Array[MClassType]>*/;
1661 ((void (*)(val
*, val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__set_supertypes
]))(var_mclassdef
, var_supertypes
) /* set_supertypes on <var_mclassdef:MClassDef>*/;
1662 var62
= ((short int (*)(val
*))(var_supertypes
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_supertypes
) /* is_empty on <var_supertypes:Array[MClassType]>*/;
1665 var64
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
1669 var67
= " new super-types: ";
1671 var69
= string__NativeString__to_s_with_length(var67
, var68
);
1680 var74
= string__NativeString__to_s_with_length(var72
, var73
);
1684 var75
= ((val
* (*)(val
*, val
*))(var_supertypes
->class->vft
[COLOR_string__Collection__join
]))(var_supertypes
, var71
) /* join on <var_supertypes:Array[MClassType]>*/;
1685 var76
= NEW_array__Array(&type_array__Arraykernel__Object
);
1686 { /* var76 = array_instance Array[Object] */
1688 var78
= NEW_array__NativeArray(var77
, &type_array__NativeArraykernel__Object
);
1689 ((struct instance_array__NativeArray
*)var78
)->values
[0] = (val
*) var_mclassdef
;
1690 ((struct instance_array__NativeArray
*)var78
)->values
[1] = (val
*) var66
;
1691 ((struct instance_array__NativeArray
*)var78
)->values
[2] = (val
*) var75
;
1692 ((void (*)(val
*, val
*, long))(var76
->class->vft
[COLOR_array__Array__with_native
]))(var76
, var78
, var77
) /* with_native on <var76:Array[Object]>*/;
1694 var79
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_string__Object__to_s
]))(var76
) /* to_s on <var76:Array[Object]>*/;
1696 ((void (*)(val
*, val
*, long))(var64
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var64
, var79
, var80
) /* info on <var64:ToolContext>*/;
1701 /* method modelize_class#ModelBuilder#collect_a_mclassdef_inheritance for (self: Object, AModule, AClassdef) */
1702 void VIRTUAL_modelize_class__ModelBuilder__collect_a_mclassdef_inheritance(val
* self
, val
* p0
, val
* p1
) {
1703 modelize_class__ModelBuilder__collect_a_mclassdef_inheritance(self
, p0
, p1
);
1706 /* method modelize_class#ModelBuilder#check_supertypes for (self: ModelBuilder, AModule, AClassdef) */
1707 void modelize_class__ModelBuilder__check_supertypes(val
* self
, val
* p0
, val
* p1
) {
1708 val
* var_nmodule
/* var nmodule: AModule */;
1709 val
* var_nclassdef
/* var nclassdef: AClassdef */;
1710 val
* var
/* : nullable MModule */;
1711 val
* var_mmodule
/* var mmodule: MModule */;
1712 static val
* varonce
;
1713 val
* var1
/* : String */;
1714 char* var2
/* : NativeString */;
1715 long var3
/* : Int */;
1716 val
* var4
/* : String */;
1717 val
* var5
/* : nullable MClass */;
1718 val
* var_objectclass
/* var objectclass: nullable MClass */;
1719 val
* var6
/* : nullable MClass */;
1720 val
* var_mclass
/* var mclass: MClass */;
1721 val
* var7
/* : nullable MClassDef */;
1722 val
* var_mclassdef
/* var mclassdef: MClassDef */;
1723 val
* var8
/* : Array[MClassType] */;
1724 val
* var9
/* : Iterator[nullable Object] */;
1725 short int var10
/* : Bool */;
1726 val
* var11
/* : nullable Object */;
1727 val
* var_s
/* var s: MClassType */;
1728 val
* var12
/* : MClassType */;
1729 val
* var13
/* : MClassType */;
1730 short int var14
/* : Bool */;
1731 static val
* varonce15
;
1732 val
* var16
/* : String */;
1733 char* var17
/* : NativeString */;
1734 long var18
/* : Int */;
1735 val
* var19
/* : String */;
1736 static val
* varonce20
;
1737 val
* var21
/* : String */;
1738 char* var22
/* : NativeString */;
1739 long var23
/* : Int */;
1740 val
* var24
/* : String */;
1741 val
* var25
/* : Array[Object] */;
1742 long var26
/* : Int */;
1743 val
* var27
/* : NativeArray[Object] */;
1744 val
* var28
/* : String */;
1747 var
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_modelbuilder__AModule__mmodule
]))(var_nmodule
) /* mmodule on <var_nmodule:AModule>*/;
1749 fprintf(stderr
, "Runtime error: %s", "Cast failed");
1750 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 215);
1759 var4
= string__NativeString__to_s_with_length(var2
, var3
);
1763 var5
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__try_get_mclass_by_name
]))(self
, var_nmodule
, var_mmodule
, var1
) /* try_get_mclass_by_name on <self:ModelBuilder>*/;
1764 var_objectclass
= var5
;
1765 var6
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_modelize_class__AClassdef__mclass
]))(var_nclassdef
) /* mclass on <var_nclassdef:AClassdef>*/;
1767 fprintf(stderr
, "Runtime error: %s", "Cast failed");
1768 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 217);
1772 var7
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var_nclassdef
) /* mclassdef on <var_nclassdef:AClassdef>*/;
1774 fprintf(stderr
, "Runtime error: %s", "Cast failed");
1775 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 218);
1778 var_mclassdef
= var7
;
1779 var8
= ((val
* (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__supertypes
]))(var_mclassdef
) /* supertypes on <var_mclassdef:MClassDef>*/;
1780 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var8
) /* iterator on <var8:Array[MClassType]>*/;
1782 var10
= ((short int (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var9
) /* is_ok on <var9:Iterator[nullable Object]>*/;
1784 var11
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var9
) /* item on <var9:Iterator[nullable Object]>*/;
1786 var12
= ((val
* (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var_mclassdef
) /* bound_mtype on <var_mclassdef:MClassDef>*/;
1787 var13
= ((val
* (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var_mclassdef
) /* bound_mtype on <var_mclassdef:MClassDef>*/;
1788 var14
= ((short int (*)(val
*, val
*, val
*, val
*))(var_s
->class->vft
[COLOR_model__MType__is_subtype
]))(var_s
, var_mmodule
, var12
, var13
) /* is_subtype on <var_s:MClassType>*/;
1793 var17
= "Error: Inheritance loop for class ";
1795 var19
= string__NativeString__to_s_with_length(var17
, var18
);
1802 var22
= " with type ";
1804 var24
= string__NativeString__to_s_with_length(var22
, var23
);
1808 var25
= NEW_array__Array(&type_array__Arraykernel__Object
);
1809 { /* var25 = array_instance Array[Object] */
1811 var27
= NEW_array__NativeArray(var26
, &type_array__NativeArraykernel__Object
);
1812 ((struct instance_array__NativeArray
*)var27
)->values
[0] = (val
*) var16
;
1813 ((struct instance_array__NativeArray
*)var27
)->values
[1] = (val
*) var_mclass
;
1814 ((struct instance_array__NativeArray
*)var27
)->values
[2] = (val
*) var21
;
1815 ((struct instance_array__NativeArray
*)var27
)->values
[3] = (val
*) var_s
;
1816 ((void (*)(val
*, val
*, long))(var25
->class->vft
[COLOR_array__Array__with_native
]))(var25
, var27
, var26
) /* with_native on <var25:Array[Object]>*/;
1818 var28
= ((val
* (*)(val
*))(var25
->class->vft
[COLOR_string__Object__to_s
]))(var25
) /* to_s on <var25:Array[Object]>*/;
1819 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var_nclassdef
, var28
) /* error on <self:ModelBuilder>*/;
1822 CONTINUE_label
: (void)0;
1823 ((void (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var9
) /* next on <var9:Iterator[nullable Object]>*/;
1825 BREAK_label
: (void)0;
1828 /* method modelize_class#ModelBuilder#check_supertypes for (self: Object, AModule, AClassdef) */
1829 void VIRTUAL_modelize_class__ModelBuilder__check_supertypes(val
* self
, val
* p0
, val
* p1
) {
1830 modelize_class__ModelBuilder__check_supertypes(self
, p0
, p1
);
1833 /* method modelize_class#ModelBuilder#build_classes for (self: ModelBuilder, AModule) */
1834 void modelize_class__ModelBuilder__build_classes(val
* self
, val
* p0
) {
1835 val
* var_nmodule
/* var nmodule: AModule */;
1836 val
* var
/* : ToolContext */;
1837 long var1
/* : Int */;
1838 long var_errcount
/* var errcount: Int */;
1839 short int var2
/* : Bool */;
1840 short int var3
/* : Bool */;
1841 val
* var4
/* : nullable MModule */;
1842 val
* var_mmodule
/* var mmodule: MModule */;
1843 val
* var5
/* : POSetElement[MModule] */;
1844 val
* var6
/* : Collection[Object] */;
1845 val
* var7
/* : Iterator[nullable Object] */;
1846 short int var8
/* : Bool */;
1847 val
* var9
/* : nullable Object */;
1848 val
* var_imp
/* var imp: MModule */;
1849 val
* var10
/* : HashMap[MModule, AModule] */;
1850 val
* var11
/* : nullable Object */;
1851 val
* var12
/* : ToolContext */;
1852 long var13
/* : Int */;
1853 short int var14
/* : Bool */;
1854 short int var16
/* : Bool */;
1855 short int var17
/* : Bool */;
1856 val
* var18
/* : ANodes[AClassdef] */;
1857 val
* var19
/* : Iterator[nullable Object] */;
1858 short int var20
/* : Bool */;
1859 val
* var21
/* : nullable Object */;
1860 val
* var_nclassdef
/* var nclassdef: AClassdef */;
1861 val
* var23
/* : ToolContext */;
1862 long var24
/* : Int */;
1863 short int var25
/* : Bool */;
1864 short int var27
/* : Bool */;
1865 short int var28
/* : Bool */;
1866 val
* var29
/* : ANodes[AClassdef] */;
1867 val
* var30
/* : Iterator[nullable Object] */;
1868 short int var31
/* : Bool */;
1869 val
* var32
/* : nullable Object */;
1870 val
* var_nclassdef33
/* var nclassdef: AClassdef */;
1871 val
* var35
/* : ToolContext */;
1872 long var36
/* : Int */;
1873 short int var37
/* : Bool */;
1874 short int var39
/* : Bool */;
1875 short int var40
/* : Bool */;
1876 val
* var41
/* : ANodes[AClassdef] */;
1877 val
* var42
/* : Iterator[nullable Object] */;
1878 short int var43
/* : Bool */;
1879 val
* var44
/* : nullable Object */;
1880 val
* var_nclassdef45
/* var nclassdef: AClassdef */;
1881 val
* var47
/* : ToolContext */;
1882 long var48
/* : Int */;
1883 short int var49
/* : Bool */;
1884 short int var51
/* : Bool */;
1885 short int var52
/* : Bool */;
1886 val
* var53
/* : ANodes[AClassdef] */;
1887 val
* var54
/* : Iterator[nullable Object] */;
1888 short int var55
/* : Bool */;
1889 val
* var56
/* : nullable Object */;
1890 val
* var_nclassdef57
/* var nclassdef: AClassdef */;
1891 val
* var58
/* : nullable MClassDef */;
1892 val
* var_mclassdef
/* var mclassdef: MClassDef */;
1893 val
* var60
/* : ToolContext */;
1894 long var61
/* : Int */;
1895 short int var62
/* : Bool */;
1896 short int var64
/* : Bool */;
1897 short int var65
/* : Bool */;
1898 val
* var66
/* : ANodes[AClassdef] */;
1899 val
* var67
/* : Iterator[nullable Object] */;
1900 short int var68
/* : Bool */;
1901 val
* var69
/* : nullable Object */;
1902 val
* var_nclassdef70
/* var nclassdef: AClassdef */;
1903 val
* var72
/* : ToolContext */;
1904 long var73
/* : Int */;
1905 short int var74
/* : Bool */;
1906 short int var76
/* : Bool */;
1907 short int var77
/* : Bool */;
1908 val
* var78
/* : ANodes[AClassdef] */;
1909 val
* var79
/* : Iterator[nullable Object] */;
1910 short int var80
/* : Bool */;
1911 val
* var81
/* : nullable Object */;
1912 val
* var_nclassdef82
/* var nclassdef: AClassdef */;
1913 short int var83
/* : Bool */;
1916 val
* var84
/* : ANodes[AFormaldef] */;
1917 val
* var85
/* : Iterator[nullable Object] */;
1918 short int var86
/* : Bool */;
1919 val
* var87
/* : nullable Object */;
1920 val
* var_nfd
/* var nfd: AFormaldef */;
1921 val
* var88
/* : nullable AType */;
1922 val
* var_nfdt
/* var nfdt: nullable AType */;
1923 short int var89
/* : Bool */;
1924 val
* var90
/* : null */;
1925 short int var91
/* : Bool */;
1926 short int var_
/* var : Bool */;
1927 val
* var92
/* : nullable MType */;
1928 val
* var93
/* : null */;
1929 short int var94
/* : Bool */;
1930 val
* var95
/* : nullable MType */;
1931 val
* var_bound
/* var bound: nullable MType */;
1932 val
* var96
/* : null */;
1933 short int var97
/* : Bool */;
1934 val
* var99
/* : ANodes[ASuperclass] */;
1935 val
* var100
/* : Iterator[nullable Object] */;
1936 short int var101
/* : Bool */;
1937 val
* var102
/* : nullable Object */;
1938 val
* var_nsc
/* var nsc: ASuperclass */;
1939 val
* var103
/* : AType */;
1940 val
* var_ntype
/* var ntype: AType */;
1941 val
* var104
/* : nullable MType */;
1942 val
* var105
/* : null */;
1943 short int var106
/* : Bool */;
1944 val
* var107
/* : nullable MType */;
1945 val
* var_mtype
/* var mtype: nullable MType */;
1946 val
* var108
/* : null */;
1947 short int var109
/* : Bool */;
1948 val
* var112
/* : ToolContext */;
1949 long var113
/* : Int */;
1950 short int var114
/* : Bool */;
1951 short int var116
/* : Bool */;
1952 short int var117
/* : Bool */;
1953 val
* var118
/* : ANodes[AClassdef] */;
1954 val
* var119
/* : Iterator[nullable Object] */;
1955 short int var120
/* : Bool */;
1956 val
* var121
/* : nullable Object */;
1957 val
* var_nclassdef122
/* var nclassdef: AClassdef */;
1958 val
* var123
/* : nullable MClassDef */;
1959 val
* var_mclassdef124
/* var mclassdef: MClassDef */;
1960 val
* var125
/* : HashMap[MClass, MClassType] */;
1961 val
* var_superclasses
/* var superclasses: HashMap[MClass, MClassType] */;
1962 val
* var126
/* : nullable POSetElement[MClassDef] */;
1963 val
* var127
/* : Collection[Object] */;
1964 val
* var128
/* : Iterator[nullable Object] */;
1965 short int var129
/* : Bool */;
1966 val
* var130
/* : nullable Object */;
1967 val
* var_scd
/* var scd: MClassDef */;
1968 val
* var131
/* : Array[MClassType] */;
1969 val
* var132
/* : Iterator[nullable Object] */;
1970 short int var133
/* : Bool */;
1971 val
* var134
/* : nullable Object */;
1972 val
* var_st
/* var st: MClassType */;
1973 val
* var135
/* : MClass */;
1974 short int var136
/* : Bool */;
1975 short int var137
/* : Bool */;
1976 val
* var138
/* : MClass */;
1977 val
* var139
/* : MClass */;
1978 val
* var140
/* : nullable Object */;
1979 short int var141
/* : Bool */;
1980 val
* var142
/* : MClass */;
1981 val
* var143
/* : nullable Object */;
1982 val
* var144
/* : MClass */;
1983 val
* var145
/* : MClassType */;
1984 val
* var146
/* : MClassType */;
1985 short int var147
/* : Bool */;
1986 val
* var148
/* : MType */;
1987 val
* var_st1
/* var st1: MClassType */;
1988 val
* var149
/* : MClass */;
1989 val
* var150
/* : MClassType */;
1990 val
* var151
/* : MClassType */;
1991 short int var152
/* : Bool */;
1992 val
* var153
/* : MType */;
1993 val
* var_st2
/* var st2: MClassType */;
1994 short int var154
/* : Bool */;
1995 static val
* varonce
;
1996 val
* var155
/* : String */;
1997 char* var156
/* : NativeString */;
1998 long var157
/* : Int */;
1999 val
* var158
/* : String */;
2000 val
* var159
/* : MClass */;
2001 static val
* varonce160
;
2002 val
* var161
/* : String */;
2003 char* var162
/* : NativeString */;
2004 long var163
/* : Int */;
2005 val
* var164
/* : String */;
2006 static val
* varonce165
;
2007 val
* var166
/* : String */;
2008 char* var167
/* : NativeString */;
2009 long var168
/* : Int */;
2010 val
* var169
/* : String */;
2011 val
* var170
/* : Array[Object] */;
2012 long var171
/* : Int */;
2013 val
* var172
/* : NativeArray[Object] */;
2014 val
* var173
/* : String */;
2015 val
* var177
/* : ToolContext */;
2016 long var178
/* : Int */;
2017 short int var179
/* : Bool */;
2018 short int var181
/* : Bool */;
2019 short int var182
/* : Bool */;
2020 val
* var183
/* : ANodes[AClassdef] */;
2021 val
* var184
/* : Iterator[nullable Object] */;
2022 short int var185
/* : Bool */;
2023 val
* var186
/* : nullable Object */;
2024 val
* var_nclassdef187
/* var nclassdef: AClassdef */;
2025 short int var188
/* : Bool */;
2028 short int var191
/* : Bool */;
2029 val
* var193
/* : nullable MClassDef */;
2030 val
* var_mclassdef194
/* var mclassdef: MClassDef */;
2031 val
* var195
/* : Array[MClass] */;
2032 val
* var_parents
/* var parents: Array[MClass] */;
2033 val
* var196
/* : nullable POSetElement[MClassDef] */;
2034 val
* var197
/* : Collection[Object] */;
2035 val
* var198
/* : Iterator[nullable Object] */;
2036 short int var199
/* : Bool */;
2037 val
* var200
/* : nullable Object */;
2038 val
* var_sup
/* var sup: MClassDef */;
2039 val
* var201
/* : MClass */;
2040 val
* var203
/* : ArrayMap[MClass, AType] */;
2041 val
* var_seen_parents
/* var seen_parents: ArrayMap[MClass, AType] */;
2042 static val
* varonce204
;
2043 val
* var205
/* : String */;
2044 char* var206
/* : NativeString */;
2045 long var207
/* : Int */;
2046 val
* var208
/* : String */;
2047 val
* var209
/* : nullable MClass */;
2048 val
* var_objectclass
/* var objectclass: nullable MClass */;
2049 val
* var210
/* : ANodes[ASuperclass] */;
2050 val
* var211
/* : Iterator[nullable Object] */;
2051 short int var212
/* : Bool */;
2052 val
* var213
/* : nullable Object */;
2053 val
* var_nsc214
/* var nsc: ASuperclass */;
2054 val
* var215
/* : AType */;
2055 val
* var_ntype216
/* var ntype: AType */;
2056 val
* var217
/* : nullable MType */;
2057 val
* var_mtype218
/* var mtype: nullable MType */;
2058 val
* var219
/* : null */;
2059 short int var220
/* : Bool */;
2060 short int var222
/* : Bool */;
2063 val
* var225
/* : MClass */;
2064 val
* var_sc
/* var sc: MClass */;
2065 short int var226
/* : Bool */;
2066 short int var227
/* : Bool */;
2067 short int var228
/* : Bool */;
2068 short int var_229
/* var : Bool */;
2069 short int var230
/* : Bool */;
2070 static val
* varonce231
;
2071 val
* var232
/* : String */;
2072 char* var233
/* : NativeString */;
2073 long var234
/* : Int */;
2074 val
* var235
/* : String */;
2075 static val
* varonce236
;
2076 val
* var237
/* : String */;
2077 char* var238
/* : NativeString */;
2078 long var239
/* : Int */;
2079 val
* var240
/* : String */;
2080 val
* var241
/* : MClass */;
2081 static val
* varonce242
;
2082 val
* var243
/* : String */;
2083 char* var244
/* : NativeString */;
2084 long var245
/* : Int */;
2085 val
* var246
/* : String */;
2086 val
* var247
/* : Array[Object] */;
2087 long var248
/* : Int */;
2088 val
* var249
/* : NativeArray[Object] */;
2089 val
* var250
/* : String */;
2090 short int var251
/* : Bool */;
2091 short int var252
/* : Bool */;
2092 static val
* varonce253
;
2093 val
* var254
/* : String */;
2094 char* var255
/* : NativeString */;
2095 long var256
/* : Int */;
2096 val
* var257
/* : String */;
2097 static val
* varonce258
;
2098 val
* var259
/* : String */;
2099 char* var260
/* : NativeString */;
2100 long var261
/* : Int */;
2101 val
* var262
/* : String */;
2102 val
* var263
/* : MClass */;
2103 static val
* varonce264
;
2104 val
* var265
/* : String */;
2105 char* var266
/* : NativeString */;
2106 long var267
/* : Int */;
2107 val
* var268
/* : String */;
2108 val
* var269
/* : Array[Object] */;
2109 long var270
/* : Int */;
2110 val
* var271
/* : NativeArray[Object] */;
2111 val
* var272
/* : String */;
2113 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
2114 var1
= ((long (*)(val
*))(var
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(var
) /* error_count on <var:ToolContext>*/;
2115 var_errcount
= var1
;
2116 var2
= ((short int (*)(val
*))(var_nmodule
->class->vft
[COLOR_modelize_class__AModule__build_classes_is_done
]))(var_nmodule
) /* build_classes_is_done on <var_nmodule:AModule>*/;
2122 ((void (*)(val
*, short int))(var_nmodule
->class->vft
[COLOR_modelize_class__AModule__build_classes_is_done_61d
]))(var_nmodule
, var3
) /* build_classes_is_done= on <var_nmodule:AModule>*/;
2123 var4
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_modelbuilder__AModule__mmodule
]))(var_nmodule
) /* mmodule on <var_nmodule:AModule>*/;
2125 fprintf(stderr
, "Runtime error: %s", "Cast failed");
2126 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 235);
2130 var5
= ((val
* (*)(val
*))(var_mmodule
->class->vft
[COLOR_mmodule__MModule__in_importation
]))(var_mmodule
) /* in_importation on <var_mmodule:MModule>*/;
2131 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_poset__POSetElement__direct_greaters
]))(var5
) /* direct_greaters on <var5:POSetElement[MModule]>*/;
2132 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var6
) /* iterator on <var6:Collection[Object](Collection[MModule])>*/;
2134 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
2136 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
2138 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__mmodule2nmodule
]))(self
) /* mmodule2nmodule on <self:ModelBuilder>*/;
2139 var11
= ((val
* (*)(val
*, val
*))(var10
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var10
, var_imp
) /* [] on <var10:HashMap[MModule, AModule]>*/;
2140 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_modelize_class__ModelBuilder__build_classes
]))(self
, var11
) /* build_classes on <self:ModelBuilder>*/;
2141 CONTINUE_label
: (void)0;
2142 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
2144 BREAK_label
: (void)0;
2145 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
2146 var13
= ((long (*)(val
*))(var12
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(var12
) /* error_count on <var12:ToolContext>*/;
2147 { /* Inline kernel#Int#!= (var_errcount,var13) */
2148 var16
= var_errcount
== var13
;
2152 RET_LABEL15
:(void)0;
2158 var18
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_parser_nodes__AModule__n_classdefs
]))(var_nmodule
) /* n_classdefs on <var_nmodule:AModule>*/;
2159 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var18
) /* iterator on <var18:ANodes[AClassdef]>*/;
2161 var20
= ((short int (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var19
) /* is_ok on <var19:Iterator[nullable Object]>*/;
2163 var21
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var19
) /* item on <var19:Iterator[nullable Object]>*/;
2164 var_nclassdef
= var21
;
2165 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelize_class__ModelBuilder__build_a_mclass
]))(self
, var_nmodule
, var_nclassdef
) /* build_a_mclass on <self:ModelBuilder>*/;
2166 CONTINUE_label22
: (void)0;
2167 ((void (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var19
) /* next on <var19:Iterator[nullable Object]>*/;
2169 BREAK_label22
: (void)0;
2170 var23
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
2171 var24
= ((long (*)(val
*))(var23
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(var23
) /* error_count on <var23:ToolContext>*/;
2172 { /* Inline kernel#Int#!= (var_errcount,var24) */
2173 var27
= var_errcount
== var24
;
2177 RET_LABEL26
:(void)0;
2183 var29
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_parser_nodes__AModule__n_classdefs
]))(var_nmodule
) /* n_classdefs on <var_nmodule:AModule>*/;
2184 var30
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var29
) /* iterator on <var29:ANodes[AClassdef]>*/;
2186 var31
= ((short int (*)(val
*))(var30
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var30
) /* is_ok on <var30:Iterator[nullable Object]>*/;
2188 var32
= ((val
* (*)(val
*))(var30
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var30
) /* item on <var30:Iterator[nullable Object]>*/;
2189 var_nclassdef33
= var32
;
2190 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelize_class__ModelBuilder__build_a_mclassdef
]))(self
, var_nmodule
, var_nclassdef33
) /* build_a_mclassdef on <self:ModelBuilder>*/;
2191 CONTINUE_label34
: (void)0;
2192 ((void (*)(val
*))(var30
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var30
) /* next on <var30:Iterator[nullable Object]>*/;
2194 BREAK_label34
: (void)0;
2195 var35
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
2196 var36
= ((long (*)(val
*))(var35
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(var35
) /* error_count on <var35:ToolContext>*/;
2197 { /* Inline kernel#Int#!= (var_errcount,var36) */
2198 var39
= var_errcount
== var36
;
2202 RET_LABEL38
:(void)0;
2208 var41
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_parser_nodes__AModule__n_classdefs
]))(var_nmodule
) /* n_classdefs on <var_nmodule:AModule>*/;
2209 var42
= ((val
* (*)(val
*))(var41
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var41
) /* iterator on <var41:ANodes[AClassdef]>*/;
2211 var43
= ((short int (*)(val
*))(var42
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var42
) /* is_ok on <var42:Iterator[nullable Object]>*/;
2213 var44
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var42
) /* item on <var42:Iterator[nullable Object]>*/;
2214 var_nclassdef45
= var44
;
2215 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelize_class__ModelBuilder__collect_a_mclassdef_inheritance
]))(self
, var_nmodule
, var_nclassdef45
) /* collect_a_mclassdef_inheritance on <self:ModelBuilder>*/;
2216 CONTINUE_label46
: (void)0;
2217 ((void (*)(val
*))(var42
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var42
) /* next on <var42:Iterator[nullable Object]>*/;
2219 BREAK_label46
: (void)0;
2220 var47
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
2221 var48
= ((long (*)(val
*))(var47
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(var47
) /* error_count on <var47:ToolContext>*/;
2222 { /* Inline kernel#Int#!= (var_errcount,var48) */
2223 var51
= var_errcount
== var48
;
2227 RET_LABEL50
:(void)0;
2233 var53
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_parser_nodes__AModule__n_classdefs
]))(var_nmodule
) /* n_classdefs on <var_nmodule:AModule>*/;
2234 var54
= ((val
* (*)(val
*))(var53
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var53
) /* iterator on <var53:ANodes[AClassdef]>*/;
2236 var55
= ((short int (*)(val
*))(var54
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var54
) /* is_ok on <var54:Iterator[nullable Object]>*/;
2238 var56
= ((val
* (*)(val
*))(var54
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var54
) /* item on <var54:Iterator[nullable Object]>*/;
2239 var_nclassdef57
= var56
;
2240 var58
= ((val
* (*)(val
*))(var_nclassdef57
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var_nclassdef57
) /* mclassdef on <var_nclassdef57:AClassdef>*/;
2241 if (var58
== NULL
) {
2242 fprintf(stderr
, "Runtime error: %s", "Cast failed");
2243 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 266);
2246 var_mclassdef
= var58
;
2247 ((void (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__add_in_hierarchy
]))(var_mclassdef
) /* add_in_hierarchy on <var_mclassdef:MClassDef>*/;
2248 CONTINUE_label59
: (void)0;
2249 ((void (*)(val
*))(var54
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var54
) /* next on <var54:Iterator[nullable Object]>*/;
2251 BREAK_label59
: (void)0;
2252 var60
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
2253 var61
= ((long (*)(val
*))(var60
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(var60
) /* error_count on <var60:ToolContext>*/;
2254 { /* Inline kernel#Int#!= (var_errcount,var61) */
2255 var64
= var_errcount
== var61
;
2259 RET_LABEL63
:(void)0;
2265 var66
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_parser_nodes__AModule__n_classdefs
]))(var_nmodule
) /* n_classdefs on <var_nmodule:AModule>*/;
2266 var67
= ((val
* (*)(val
*))(var66
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var66
) /* iterator on <var66:ANodes[AClassdef]>*/;
2268 var68
= ((short int (*)(val
*))(var67
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var67
) /* is_ok on <var67:Iterator[nullable Object]>*/;
2270 var69
= ((val
* (*)(val
*))(var67
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var67
) /* item on <var67:Iterator[nullable Object]>*/;
2271 var_nclassdef70
= var69
;
2272 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelize_class__ModelBuilder__check_supertypes
]))(self
, var_nmodule
, var_nclassdef70
) /* check_supertypes on <self:ModelBuilder>*/;
2273 CONTINUE_label71
: (void)0;
2274 ((void (*)(val
*))(var67
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var67
) /* next on <var67:Iterator[nullable Object]>*/;
2276 BREAK_label71
: (void)0;
2277 var72
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
2278 var73
= ((long (*)(val
*))(var72
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(var72
) /* error_count on <var72:ToolContext>*/;
2279 { /* Inline kernel#Int#!= (var_errcount,var73) */
2280 var76
= var_errcount
== var73
;
2284 RET_LABEL75
:(void)0;
2290 var78
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_parser_nodes__AModule__n_classdefs
]))(var_nmodule
) /* n_classdefs on <var_nmodule:AModule>*/;
2291 var79
= ((val
* (*)(val
*))(var78
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var78
) /* iterator on <var78:ANodes[AClassdef]>*/;
2293 var80
= ((short int (*)(val
*))(var79
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var79
) /* is_ok on <var79:Iterator[nullable Object]>*/;
2295 var81
= ((val
* (*)(val
*))(var79
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var79
) /* item on <var79:Iterator[nullable Object]>*/;
2296 var_nclassdef82
= var81
;
2297 /* <var_nclassdef82:AClassdef> isa AStdClassdef */
2298 cltype
= type_parser_nodes__AStdClassdef
.color
;
2299 idtype
= type_parser_nodes__AStdClassdef
.id
;
2300 if(cltype
>= var_nclassdef82
->type
->table_size
) {
2303 var83
= var_nclassdef82
->type
->type_table
[cltype
] == idtype
;
2306 var84
= ((val
* (*)(val
*))(var_nclassdef82
->class->vft
[COLOR_parser_nodes__AStdClassdef__n_formaldefs
]))(var_nclassdef82
) /* n_formaldefs on <var_nclassdef82:AClassdef(AStdClassdef)>*/;
2307 var85
= ((val
* (*)(val
*))(var84
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var84
) /* iterator on <var84:ANodes[AFormaldef]>*/;
2309 var86
= ((short int (*)(val
*))(var85
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var85
) /* is_ok on <var85:Iterator[nullable Object]>*/;
2311 var87
= ((val
* (*)(val
*))(var85
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var85
) /* item on <var85:Iterator[nullable Object]>*/;
2313 var88
= ((val
* (*)(val
*))(var_nfd
->class->vft
[COLOR_parser_nodes__AFormaldef__n_type
]))(var_nfd
) /* n_type on <var_nfd:AFormaldef>*/;
2316 if (var_nfdt
== NULL
) {
2317 var91
= 0; /* is null */
2319 var91
= 1; /* arg is null and recv is not */
2323 var92
= ((val
* (*)(val
*))(var_nfdt
->class->vft
[COLOR_modelize_class__AType__mtype
]))(var_nfdt
) /* mtype on <var_nfdt:nullable AType(AType)>*/;
2325 if (var92
== NULL
) {
2326 var94
= 0; /* is null */
2328 var94
= 1; /* arg is null and recv is not */
2335 var95
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelize_class__ModelBuilder__resolve_mtype
]))(self
, var_nclassdef82
, var_nfdt
) /* resolve_mtype on <self:ModelBuilder>*/;
2338 if (var_bound
== NULL
) {
2339 var97
= 1; /* is null */
2341 var97
= 0; /* arg is null but recv is not */
2349 CONTINUE_label98
: (void)0;
2350 ((void (*)(val
*))(var85
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var85
) /* next on <var85:Iterator[nullable Object]>*/;
2352 BREAK_label98
: (void)0;
2353 var99
= ((val
* (*)(val
*))(var_nclassdef82
->class->vft
[COLOR_parser_nodes__AStdClassdef__n_superclasses
]))(var_nclassdef82
) /* n_superclasses on <var_nclassdef82:AClassdef(AStdClassdef)>*/;
2354 var100
= ((val
* (*)(val
*))(var99
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var99
) /* iterator on <var99:ANodes[ASuperclass]>*/;
2356 var101
= ((short int (*)(val
*))(var100
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var100
) /* is_ok on <var100:Iterator[nullable Object]>*/;
2358 var102
= ((val
* (*)(val
*))(var100
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var100
) /* item on <var100:Iterator[nullable Object]>*/;
2360 var103
= ((val
* (*)(val
*))(var_nsc
->class->vft
[COLOR_parser_nodes__ASuperclass__n_type
]))(var_nsc
) /* n_type on <var_nsc:ASuperclass>*/;
2362 var104
= ((val
* (*)(val
*))(var_ntype
->class->vft
[COLOR_modelize_class__AType__mtype
]))(var_ntype
) /* mtype on <var_ntype:AType>*/;
2364 if (var104
== NULL
) {
2365 var106
= 0; /* is null */
2367 var106
= 1; /* arg is null and recv is not */
2370 var107
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelize_class__ModelBuilder__resolve_mtype
]))(self
, var_nclassdef82
, var_ntype
) /* resolve_mtype on <self:ModelBuilder>*/;
2373 if (var_mtype
== NULL
) {
2374 var109
= 1; /* is null */
2376 var109
= 0; /* arg is null but recv is not */
2384 CONTINUE_label110
: (void)0;
2385 ((void (*)(val
*))(var100
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var100
) /* next on <var100:Iterator[nullable Object]>*/;
2387 BREAK_label110
: (void)0;
2390 CONTINUE_label111
: (void)0;
2391 ((void (*)(val
*))(var79
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var79
) /* next on <var79:Iterator[nullable Object]>*/;
2393 BREAK_label111
: (void)0;
2394 var112
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
2395 var113
= ((long (*)(val
*))(var112
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(var112
) /* error_count on <var112:ToolContext>*/;
2396 { /* Inline kernel#Int#!= (var_errcount,var113) */
2397 var116
= var_errcount
== var113
;
2401 RET_LABEL115
:(void)0;
2407 var118
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_parser_nodes__AModule__n_classdefs
]))(var_nmodule
) /* n_classdefs on <var_nmodule:AModule>*/;
2408 var119
= ((val
* (*)(val
*))(var118
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var118
) /* iterator on <var118:ANodes[AClassdef]>*/;
2410 var120
= ((short int (*)(val
*))(var119
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var119
) /* is_ok on <var119:Iterator[nullable Object]>*/;
2412 var121
= ((val
* (*)(val
*))(var119
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var119
) /* item on <var119:Iterator[nullable Object]>*/;
2413 var_nclassdef122
= var121
;
2414 var123
= ((val
* (*)(val
*))(var_nclassdef122
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var_nclassdef122
) /* mclassdef on <var_nclassdef122:AClassdef>*/;
2415 if (var123
== NULL
) {
2416 fprintf(stderr
, "Runtime error: %s", "Cast failed");
2417 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 305);
2420 var_mclassdef124
= var123
;
2421 var125
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassmodel__MClassType
);
2422 ((void (*)(val
*))(var125
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var125
) /* init on <var125:HashMap[MClass, MClassType]>*/;
2423 var_superclasses
= var125
;
2424 var126
= ((val
* (*)(val
*))(var_mclassdef124
->class->vft
[COLOR_model__MClassDef__in_hierarchy
]))(var_mclassdef124
) /* in_hierarchy on <var_mclassdef124:MClassDef>*/;
2425 if (var126
== NULL
) {
2426 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
2427 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 307);
2430 var127
= ((val
* (*)(val
*))(var126
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var126
) /* greaters on <var126:nullable POSetElement[MClassDef]>*/;
2432 var128
= ((val
* (*)(val
*))(var127
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var127
) /* iterator on <var127:Collection[Object](Collection[MClassDef])>*/;
2434 var129
= ((short int (*)(val
*))(var128
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var128
) /* is_ok on <var128:Iterator[nullable Object]>*/;
2436 var130
= ((val
* (*)(val
*))(var128
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var128
) /* item on <var128:Iterator[nullable Object]>*/;
2438 var131
= ((val
* (*)(val
*))(var_scd
->class->vft
[COLOR_model__MClassDef__supertypes
]))(var_scd
) /* supertypes on <var_scd:MClassDef>*/;
2439 var132
= ((val
* (*)(val
*))(var131
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var131
) /* iterator on <var131:Array[MClassType]>*/;
2441 var133
= ((short int (*)(val
*))(var132
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var132
) /* is_ok on <var132:Iterator[nullable Object]>*/;
2443 var134
= ((val
* (*)(val
*))(var132
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var132
) /* item on <var132:Iterator[nullable Object]>*/;
2445 var135
= ((val
* (*)(val
*))(var_st
->class->vft
[COLOR_model__MClassType__mclass
]))(var_st
) /* mclass on <var_st:MClassType>*/;
2446 var136
= ((short int (*)(val
*, val
*))(var_superclasses
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var_superclasses
, var135
) /* has_key on <var_superclasses:HashMap[MClass, MClassType]>*/;
2449 var138
= ((val
* (*)(val
*))(var_st
->class->vft
[COLOR_model__MClassType__mclass
]))(var_st
) /* mclass on <var_st:MClassType>*/;
2450 ((void (*)(val
*, val
*, val
*))(var_superclasses
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_superclasses
, var138
, var_st
) /* []= on <var_superclasses:HashMap[MClass, MClassType]>*/;
2452 var139
= ((val
* (*)(val
*))(var_st
->class->vft
[COLOR_model__MClassType__mclass
]))(var_st
) /* mclass on <var_st:MClassType>*/;
2453 var140
= ((val
* (*)(val
*, val
*))(var_superclasses
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_superclasses
, var139
) /* [] on <var_superclasses:HashMap[MClass, MClassType]>*/;
2454 var141
= ((short int (*)(val
*, val
*))(var140
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var140
, var_st
) /* != on <var140:nullable Object(MClassType)>*/;
2456 var142
= ((val
* (*)(val
*))(var_st
->class->vft
[COLOR_model__MClassType__mclass
]))(var_st
) /* mclass on <var_st:MClassType>*/;
2457 var143
= ((val
* (*)(val
*, val
*))(var_superclasses
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_superclasses
, var142
) /* [] on <var_superclasses:HashMap[MClass, MClassType]>*/;
2458 var144
= ((val
* (*)(val
*))(var_mclassdef124
->class->vft
[COLOR_model__MClassDef__mclass
]))(var_mclassdef124
) /* mclass on <var_mclassdef124:MClassDef>*/;
2459 var145
= ((val
* (*)(val
*))(var144
->class->vft
[COLOR_model__MClass__mclass_type
]))(var144
) /* mclass_type on <var144:MClass>*/;
2460 var146
= ((val
* (*)(val
*))(var_mclassdef124
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var_mclassdef124
) /* bound_mtype on <var_mclassdef124:MClassDef>*/;
2462 var148
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var143
->class->vft
[COLOR_model__MType__resolve_for
]))(var143
, var145
, var146
, var_mmodule
, var147
) /* resolve_for on <var143:nullable Object(MClassType)>*/;
2464 var149
= ((val
* (*)(val
*))(var_mclassdef124
->class->vft
[COLOR_model__MClassDef__mclass
]))(var_mclassdef124
) /* mclass on <var_mclassdef124:MClassDef>*/;
2465 var150
= ((val
* (*)(val
*))(var149
->class->vft
[COLOR_model__MClass__mclass_type
]))(var149
) /* mclass_type on <var149:MClass>*/;
2466 var151
= ((val
* (*)(val
*))(var_mclassdef124
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var_mclassdef124
) /* bound_mtype on <var_mclassdef124:MClassDef>*/;
2468 var153
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_st
->class->vft
[COLOR_model__MType__resolve_for
]))(var_st
, var150
, var151
, var_mmodule
, var152
) /* resolve_for on <var_st:MClassType>*/;
2470 var154
= ((short int (*)(val
*, val
*))(var_st1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_st1
, var_st2
) /* != on <var_st1:MClassType>*/;
2475 var156
= "Error: Incompatibles ancestors for ";
2477 var158
= string__NativeString__to_s_with_length(var156
, var157
);
2481 var159
= ((val
* (*)(val
*))(var_mclassdef124
->class->vft
[COLOR_model__MClassDef__mclass
]))(var_mclassdef124
) /* mclass on <var_mclassdef124:MClassDef>*/;
2483 var161
= varonce160
;
2487 var164
= string__NativeString__to_s_with_length(var162
, var163
);
2489 varonce160
= var161
;
2492 var166
= varonce165
;
2496 var169
= string__NativeString__to_s_with_length(var167
, var168
);
2498 varonce165
= var166
;
2500 var170
= NEW_array__Array(&type_array__Arraykernel__Object
);
2501 { /* var170 = array_instance Array[Object] */
2503 var172
= NEW_array__NativeArray(var171
, &type_array__NativeArraykernel__Object
);
2504 ((struct instance_array__NativeArray
*)var172
)->values
[0] = (val
*) var155
;
2505 ((struct instance_array__NativeArray
*)var172
)->values
[1] = (val
*) var159
;
2506 ((struct instance_array__NativeArray
*)var172
)->values
[2] = (val
*) var161
;
2507 ((struct instance_array__NativeArray
*)var172
)->values
[3] = (val
*) var_st1
;
2508 ((struct instance_array__NativeArray
*)var172
)->values
[4] = (val
*) var166
;
2509 ((struct instance_array__NativeArray
*)var172
)->values
[5] = (val
*) var_st2
;
2510 ((void (*)(val
*, val
*, long))(var170
->class->vft
[COLOR_array__Array__with_native
]))(var170
, var172
, var171
) /* with_native on <var170:Array[Object]>*/;
2512 var173
= ((val
* (*)(val
*))(var170
->class->vft
[COLOR_string__Object__to_s
]))(var170
) /* to_s on <var170:Array[Object]>*/;
2513 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var_nclassdef122
, var173
) /* error on <self:ModelBuilder>*/;
2519 CONTINUE_label174
: (void)0;
2520 ((void (*)(val
*))(var132
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var132
) /* next on <var132:Iterator[nullable Object]>*/;
2522 BREAK_label174
: (void)0;
2523 CONTINUE_label175
: (void)0;
2524 ((void (*)(val
*))(var128
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var128
) /* next on <var128:Iterator[nullable Object]>*/;
2526 BREAK_label175
: (void)0;
2527 CONTINUE_label176
: (void)0;
2528 ((void (*)(val
*))(var119
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var119
) /* next on <var119:Iterator[nullable Object]>*/;
2530 BREAK_label176
: (void)0;
2531 var177
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
2532 var178
= ((long (*)(val
*))(var177
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(var177
) /* error_count on <var177:ToolContext>*/;
2533 { /* Inline kernel#Int#!= (var_errcount,var178) */
2534 var181
= var_errcount
== var178
;
2538 RET_LABEL180
:(void)0;
2544 var183
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_parser_nodes__AModule__n_classdefs
]))(var_nmodule
) /* n_classdefs on <var_nmodule:AModule>*/;
2545 var184
= ((val
* (*)(val
*))(var183
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var183
) /* iterator on <var183:ANodes[AClassdef]>*/;
2547 var185
= ((short int (*)(val
*))(var184
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var184
) /* is_ok on <var184:Iterator[nullable Object]>*/;
2549 var186
= ((val
* (*)(val
*))(var184
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var184
) /* item on <var184:Iterator[nullable Object]>*/;
2550 var_nclassdef187
= var186
;
2551 /* <var_nclassdef187:AClassdef> isa AStdClassdef */
2552 cltype189
= type_parser_nodes__AStdClassdef
.color
;
2553 idtype190
= type_parser_nodes__AStdClassdef
.id
;
2554 if(cltype189
>= var_nclassdef187
->type
->table_size
) {
2557 var188
= var_nclassdef187
->type
->type_table
[cltype189
] == idtype190
;
2561 goto CONTINUE_label192
;
2564 var193
= ((val
* (*)(val
*))(var_nclassdef187
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var_nclassdef187
) /* mclassdef on <var_nclassdef187:AClassdef(AStdClassdef)>*/;
2565 if (var193
== NULL
) {
2566 fprintf(stderr
, "Runtime error: %s", "Cast failed");
2567 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 329);
2570 var_mclassdef194
= var193
;
2571 var195
= NEW_array__Array(&type_array__Arraymodel__MClass
);
2572 ((void (*)(val
*))(var195
->class->vft
[COLOR_array__Array__init
]))(var195
) /* init on <var195:Array[MClass]>*/;
2573 var_parents
= var195
;
2574 var196
= ((val
* (*)(val
*))(var_mclassdef194
->class->vft
[COLOR_model__MClassDef__in_hierarchy
]))(var_mclassdef194
) /* in_hierarchy on <var_mclassdef194:MClassDef>*/;
2575 if (var196
== NULL
) {
2576 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
2577 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 334);
2580 var197
= ((val
* (*)(val
*))(var196
->class->vft
[COLOR_poset__POSetElement__direct_greaters
]))(var196
) /* direct_greaters on <var196:nullable POSetElement[MClassDef]>*/;
2582 var198
= ((val
* (*)(val
*))(var197
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var197
) /* iterator on <var197:Collection[Object](Collection[MClassDef])>*/;
2584 var199
= ((short int (*)(val
*))(var198
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var198
) /* is_ok on <var198:Iterator[nullable Object]>*/;
2586 var200
= ((val
* (*)(val
*))(var198
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var198
) /* item on <var198:Iterator[nullable Object]>*/;
2588 var201
= ((val
* (*)(val
*))(var_sup
->class->vft
[COLOR_model__MClassDef__mclass
]))(var_sup
) /* mclass on <var_sup:MClassDef>*/;
2589 ((void (*)(val
*, val
*))(var_parents
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_parents
, var201
) /* add on <var_parents:Array[MClass]>*/;
2590 CONTINUE_label202
: (void)0;
2591 ((void (*)(val
*))(var198
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var198
) /* next on <var198:Iterator[nullable Object]>*/;
2593 BREAK_label202
: (void)0;
2594 var203
= NEW_array__ArrayMap(&type_array__ArrayMapmodel__MClassparser_nodes__AType
);
2595 ((void (*)(val
*))(var203
->class->vft
[COLOR_array__ArrayMap__init
]))(var203
) /* init on <var203:ArrayMap[MClass, AType]>*/;
2596 var_seen_parents
= var203
;
2598 var205
= varonce204
;
2602 var208
= string__NativeString__to_s_with_length(var206
, var207
);
2604 varonce204
= var205
;
2606 var209
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__try_get_mclass_by_name
]))(self
, var_nmodule
, var_mmodule
, var205
) /* try_get_mclass_by_name on <self:ModelBuilder>*/;
2607 var_objectclass
= var209
;
2608 var210
= ((val
* (*)(val
*))(var_nclassdef187
->class->vft
[COLOR_parser_nodes__AStdClassdef__n_superclasses
]))(var_nclassdef187
) /* n_superclasses on <var_nclassdef187:AClassdef(AStdClassdef)>*/;
2609 var211
= ((val
* (*)(val
*))(var210
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var210
) /* iterator on <var210:ANodes[ASuperclass]>*/;
2611 var212
= ((short int (*)(val
*))(var211
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var211
) /* is_ok on <var211:Iterator[nullable Object]>*/;
2613 var213
= ((val
* (*)(val
*))(var211
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var211
) /* item on <var211:Iterator[nullable Object]>*/;
2614 var_nsc214
= var213
;
2615 var215
= ((val
* (*)(val
*))(var_nsc214
->class->vft
[COLOR_parser_nodes__ASuperclass__n_type
]))(var_nsc214
) /* n_type on <var_nsc214:ASuperclass>*/;
2616 var_ntype216
= var215
;
2617 var217
= ((val
* (*)(val
*))(var_ntype216
->class->vft
[COLOR_modelize_class__AType__mtype
]))(var_ntype216
) /* mtype on <var_ntype216:AType>*/;
2618 var_mtype218
= var217
;
2620 if (var_mtype218
== NULL
) {
2621 var220
= 1; /* is null */
2623 var220
= 0; /* arg is null but recv is not */
2626 goto CONTINUE_label221
;
2629 /* <var_mtype218:nullable MType(MType)> isa MClassType */
2630 cltype223
= type_model__MClassType
.color
;
2631 idtype224
= type_model__MClassType
.id
;
2632 if(cltype223
>= var_mtype218
->type
->table_size
) {
2635 var222
= var_mtype218
->type
->type_table
[cltype223
] == idtype224
;
2638 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2639 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 349);
2642 var225
= ((val
* (*)(val
*))(var_mtype218
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype218
) /* mclass on <var_mtype218:nullable MType(MClassType)>*/;
2644 var227
= ((short int (*)(val
*, val
*))(var_parents
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var_parents
, var_sc
) /* has on <var_parents:Array[MClass]>*/;
2650 var230
= ((short int (*)(val
*, val
*))(var_sc
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_sc
, var_objectclass
) /* == on <var_sc:MClass>*/;
2655 var232
= varonce231
;
2657 var233
= "Warning: superfluous super-class ";
2659 var235
= string__NativeString__to_s_with_length(var233
, var234
);
2661 varonce231
= var232
;
2664 var237
= varonce236
;
2666 var238
= " in class ";
2668 var240
= string__NativeString__to_s_with_length(var238
, var239
);
2670 varonce236
= var237
;
2672 var241
= ((val
* (*)(val
*))(var_mclassdef194
->class->vft
[COLOR_model__MClassDef__mclass
]))(var_mclassdef194
) /* mclass on <var_mclassdef194:MClassDef>*/;
2674 var243
= varonce242
;
2678 var246
= string__NativeString__to_s_with_length(var244
, var245
);
2680 varonce242
= var243
;
2682 var247
= NEW_array__Array(&type_array__Arraykernel__Object
);
2683 { /* var247 = array_instance Array[Object] */
2685 var249
= NEW_array__NativeArray(var248
, &type_array__NativeArraykernel__Object
);
2686 ((struct instance_array__NativeArray
*)var249
)->values
[0] = (val
*) var232
;
2687 ((struct instance_array__NativeArray
*)var249
)->values
[1] = (val
*) var_mtype218
;
2688 ((struct instance_array__NativeArray
*)var249
)->values
[2] = (val
*) var237
;
2689 ((struct instance_array__NativeArray
*)var249
)->values
[3] = (val
*) var241
;
2690 ((struct instance_array__NativeArray
*)var249
)->values
[4] = (val
*) var243
;
2691 ((void (*)(val
*, val
*, long))(var247
->class->vft
[COLOR_array__Array__with_native
]))(var247
, var249
, var248
) /* with_native on <var247:Array[Object]>*/;
2693 var250
= ((val
* (*)(val
*))(var247
->class->vft
[COLOR_string__Object__to_s
]))(var247
) /* to_s on <var247:Array[Object]>*/;
2694 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__warning
]))(self
, var_ntype216
, var250
) /* warning on <self:ModelBuilder>*/;
2696 var251
= ((short int (*)(val
*, val
*))(var_seen_parents
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var_seen_parents
, var_sc
) /* has_key on <var_seen_parents:ArrayMap[MClass, AType]>*/;
2699 ((void (*)(val
*, val
*, val
*))(var_seen_parents
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_seen_parents
, var_sc
, var_ntype216
) /* []= on <var_seen_parents:ArrayMap[MClass, AType]>*/;
2702 var254
= varonce253
;
2704 var255
= "Warning: duplicated super-class ";
2706 var257
= string__NativeString__to_s_with_length(var255
, var256
);
2708 varonce253
= var254
;
2711 var259
= varonce258
;
2713 var260
= " in class ";
2715 var262
= string__NativeString__to_s_with_length(var260
, var261
);
2717 varonce258
= var259
;
2719 var263
= ((val
* (*)(val
*))(var_mclassdef194
->class->vft
[COLOR_model__MClassDef__mclass
]))(var_mclassdef194
) /* mclass on <var_mclassdef194:MClassDef>*/;
2721 var265
= varonce264
;
2725 var268
= string__NativeString__to_s_with_length(var266
, var267
);
2727 varonce264
= var265
;
2729 var269
= NEW_array__Array(&type_array__Arraykernel__Object
);
2730 { /* var269 = array_instance Array[Object] */
2732 var271
= NEW_array__NativeArray(var270
, &type_array__NativeArraykernel__Object
);
2733 ((struct instance_array__NativeArray
*)var271
)->values
[0] = (val
*) var254
;
2734 ((struct instance_array__NativeArray
*)var271
)->values
[1] = (val
*) var_mtype218
;
2735 ((struct instance_array__NativeArray
*)var271
)->values
[2] = (val
*) var259
;
2736 ((struct instance_array__NativeArray
*)var271
)->values
[3] = (val
*) var263
;
2737 ((struct instance_array__NativeArray
*)var271
)->values
[4] = (val
*) var265
;
2738 ((void (*)(val
*, val
*, long))(var269
->class->vft
[COLOR_array__Array__with_native
]))(var269
, var271
, var270
) /* with_native on <var269:Array[Object]>*/;
2740 var272
= ((val
* (*)(val
*))(var269
->class->vft
[COLOR_string__Object__to_s
]))(var269
) /* to_s on <var269:Array[Object]>*/;
2741 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__warning
]))(self
, var_ntype216
, var272
) /* warning on <self:ModelBuilder>*/;
2744 CONTINUE_label221
: (void)0;
2745 ((void (*)(val
*))(var211
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var211
) /* next on <var211:Iterator[nullable Object]>*/;
2747 BREAK_label221
: (void)0;
2748 CONTINUE_label192
: (void)0;
2749 ((void (*)(val
*))(var184
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var184
) /* next on <var184:Iterator[nullable Object]>*/;
2751 BREAK_label192
: (void)0;
2754 /* method modelize_class#ModelBuilder#build_classes for (self: Object, AModule) */
2755 void VIRTUAL_modelize_class__ModelBuilder__build_classes(val
* self
, val
* p0
) {
2756 modelize_class__ModelBuilder__build_classes(self
, p0
);
2759 /* method modelize_class#ModelBuilder#mclassdef2nclassdef for (self: ModelBuilder): HashMap[MClassDef, AClassdef] */
2760 val
* modelize_class__ModelBuilder__mclassdef2nclassdef(val
* self
) {
2761 val
* var
/* : HashMap[MClassDef, AClassdef] */;
2762 val
* var1
/* : HashMap[MClassDef, AClassdef] */;
2763 var1
= self
->attrs
[COLOR_modelize_class__ModelBuilder___64dmclassdef2nclassdef
].val
; /* @mclassdef2nclassdef on <self:ModelBuilder> */
2765 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mclassdef2nclassdef");
2766 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 362);
2773 /* method modelize_class#ModelBuilder#mclassdef2nclassdef for (self: Object): HashMap[MClassDef, AClassdef] */
2774 val
* VIRTUAL_modelize_class__ModelBuilder__mclassdef2nclassdef(val
* self
) {
2775 val
* var
/* : HashMap[MClassDef, AClassdef] */;
2776 val
* var1
/* : HashMap[MClassDef, AClassdef] */;
2777 var1
= modelize_class__ModelBuilder__mclassdef2nclassdef(self
);
2782 /* method modelize_class#ModelBuilder#mclassdef2nclassdef= for (self: ModelBuilder, HashMap[MClassDef, AClassdef]) */
2783 void modelize_class__ModelBuilder__mclassdef2nclassdef_61d(val
* self
, val
* p0
) {
2784 self
->attrs
[COLOR_modelize_class__ModelBuilder___64dmclassdef2nclassdef
].val
= p0
; /* @mclassdef2nclassdef on <self:ModelBuilder> */
2787 /* method modelize_class#ModelBuilder#mclassdef2nclassdef= for (self: Object, HashMap[MClassDef, AClassdef]) */
2788 void VIRTUAL_modelize_class__ModelBuilder__mclassdef2nclassdef_61d(val
* self
, val
* p0
) {
2789 modelize_class__ModelBuilder__mclassdef2nclassdef_61d(self
, p0
);
2792 /* method modelize_class#ModelBuilder#resolve_mtype_unchecked for (self: ModelBuilder, AClassdef, AType, Bool): nullable MType */
2793 val
* modelize_class__ModelBuilder__resolve_mtype_unchecked(val
* self
, val
* p0
, val
* p1
, short int p2
) {
2794 val
* var
/* : nullable MType */;
2795 val
* var_nclassdef
/* var nclassdef: AClassdef */;
2796 val
* var_ntype
/* var ntype: AType */;
2797 short int var_with_virtual
/* var with_virtual: Bool */;
2798 val
* var1
/* : TClassid */;
2799 val
* var2
/* : String */;
2800 val
* var_name
/* var name: String */;
2801 val
* var3
/* : nullable MClassDef */;
2802 val
* var_mclassdef
/* var mclassdef: nullable MClassDef */;
2803 val
* var4
/* : nullable ANode */;
2804 short int var5
/* : Bool */;
2807 const char* var_class_name
;
2808 val
* var6
/* : nullable MModule */;
2809 val
* var_mmodule
/* var mmodule: MModule */;
2810 short int var7
/* : Bool */;
2811 val
* var8
/* : null */;
2812 short int var9
/* : Bool */;
2813 val
* var10
/* : nullable MProperty */;
2814 short int var11
/* : Bool */;
2817 const char* var_class_name14
;
2818 val
* var_prop
/* var prop: nullable MVirtualTypeProp */;
2819 val
* var15
/* : null */;
2820 short int var16
/* : Bool */;
2821 val
* var17
/* : ANodes[AType] */;
2822 short int var18
/* : Bool */;
2823 short int var19
/* : Bool */;
2824 static val
* varonce
;
2825 val
* var20
/* : String */;
2826 char* var21
/* : NativeString */;
2827 long var22
/* : Int */;
2828 val
* var23
/* : String */;
2829 static val
* varonce24
;
2830 val
* var25
/* : String */;
2831 char* var26
/* : NativeString */;
2832 long var27
/* : Int */;
2833 val
* var28
/* : String */;
2834 val
* var29
/* : Array[Object] */;
2835 long var30
/* : Int */;
2836 val
* var31
/* : NativeArray[Object] */;
2837 val
* var32
/* : String */;
2838 val
* var33
/* : MVirtualType */;
2839 val
* var_res
/* var res: MType */;
2840 val
* var34
/* : nullable TKwnullable */;
2841 val
* var35
/* : null */;
2842 short int var36
/* : Bool */;
2843 val
* var37
/* : MType */;
2844 short int var38
/* : Bool */;
2845 val
* var39
/* : null */;
2846 short int var40
/* : Bool */;
2847 short int var_
/* var : Bool */;
2848 val
* var41
/* : Array[String] */;
2849 short int var42
/* : Bool */;
2850 val
* var43
/* : ANodes[AType] */;
2851 short int var44
/* : Bool */;
2852 short int var45
/* : Bool */;
2853 static val
* varonce46
;
2854 val
* var47
/* : String */;
2855 char* var48
/* : NativeString */;
2856 long var49
/* : Int */;
2857 val
* var50
/* : String */;
2858 static val
* varonce51
;
2859 val
* var52
/* : String */;
2860 char* var53
/* : NativeString */;
2861 long var54
/* : Int */;
2862 val
* var55
/* : String */;
2863 val
* var56
/* : Array[Object] */;
2864 long var57
/* : Int */;
2865 val
* var58
/* : NativeArray[Object] */;
2866 val
* var59
/* : String */;
2867 val
* var60
/* : Range[Int] */;
2868 long var61
/* : Int */;
2869 val
* var62
/* : Array[String] */;
2870 long var63
/* : Int */;
2871 val
* var64
/* : Discrete */;
2872 val
* var65
/* : Discrete */;
2873 val
* var66
/* : Iterator[nullable Object] */;
2874 short int var67
/* : Bool */;
2875 val
* var68
/* : nullable Object */;
2876 long var_i
/* var i: Int */;
2877 long var69
/* : Int */;
2878 val
* var70
/* : Array[String] */;
2879 val
* var71
/* : nullable Object */;
2880 short int var72
/* : Bool */;
2881 val
* var73
/* : MClass */;
2882 val
* var74
/* : MClassType */;
2883 val
* var75
/* : Array[MType] */;
2884 val
* var76
/* : nullable Object */;
2885 val
* var77
/* : nullable TKwnullable */;
2886 val
* var78
/* : null */;
2887 short int var79
/* : Bool */;
2888 val
* var80
/* : MType */;
2889 val
* var81
/* : nullable MClass */;
2890 val
* var_mclass
/* var mclass: nullable MClass */;
2891 val
* var82
/* : null */;
2892 short int var83
/* : Bool */;
2893 val
* var84
/* : ANodes[AType] */;
2894 long var85
/* : Int */;
2895 long var_arity
/* var arity: Int */;
2896 long var86
/* : Int */;
2897 short int var87
/* : Bool */;
2898 short int var89
/* : Bool */;
2899 short int var90
/* : Bool */;
2900 long var91
/* : Int */;
2901 short int var92
/* : Bool */;
2902 short int var94
/* : Bool */;
2903 static val
* varonce95
;
2904 val
* var96
/* : String */;
2905 char* var97
/* : NativeString */;
2906 long var98
/* : Int */;
2907 val
* var99
/* : String */;
2908 static val
* varonce100
;
2909 val
* var101
/* : String */;
2910 char* var102
/* : NativeString */;
2911 long var103
/* : Int */;
2912 val
* var104
/* : String */;
2913 val
* var105
/* : Array[Object] */;
2914 long var106
/* : Int */;
2915 val
* var107
/* : NativeArray[Object] */;
2916 val
* var108
/* : String */;
2917 long var109
/* : Int */;
2918 long var110
/* : Int */;
2919 short int var111
/* : Bool */;
2920 short int var113
/* : Bool */;
2921 static val
* varonce114
;
2922 val
* var115
/* : String */;
2923 char* var116
/* : NativeString */;
2924 long var117
/* : Int */;
2925 val
* var118
/* : String */;
2926 static val
* varonce119
;
2927 val
* var120
/* : String */;
2928 char* var121
/* : NativeString */;
2929 long var122
/* : Int */;
2930 val
* var123
/* : String */;
2931 val
* var124
/* : Array[Object] */;
2932 long var125
/* : Int */;
2933 val
* var126
/* : NativeArray[Object] */;
2934 val
* var127
/* : String */;
2935 static val
* varonce128
;
2936 val
* var129
/* : String */;
2937 char* var130
/* : NativeString */;
2938 long var131
/* : Int */;
2939 val
* var132
/* : String */;
2940 static val
* varonce133
;
2941 val
* var134
/* : String */;
2942 char* var135
/* : NativeString */;
2943 long var136
/* : Int */;
2944 val
* var137
/* : String */;
2945 long var138
/* : Int */;
2946 static val
* varonce139
;
2947 val
* var140
/* : String */;
2948 char* var141
/* : NativeString */;
2949 long var142
/* : Int */;
2950 val
* var143
/* : String */;
2951 static val
* varonce144
;
2952 val
* var145
/* : String */;
2953 char* var146
/* : NativeString */;
2954 long var147
/* : Int */;
2955 val
* var148
/* : String */;
2956 val
* var149
/* : Array[Object] */;
2957 long var150
/* : Int */;
2958 val
* var151
/* : NativeArray[Object] */;
2959 val
* var152
/* : Object */;
2960 val
* var153
/* : Object */;
2961 val
* var154
/* : String */;
2962 val
* var155
/* : null */;
2963 long var156
/* : Int */;
2964 short int var157
/* : Bool */;
2965 short int var159
/* : Bool */;
2966 val
* var160
/* : MClassType */;
2967 val
* var161
/* : nullable TKwnullable */;
2968 val
* var162
/* : null */;
2969 short int var163
/* : Bool */;
2970 val
* var164
/* : MType */;
2971 val
* var165
/* : Array[MType] */;
2972 val
* var_mtypes
/* var mtypes: Array[MType] */;
2973 val
* var166
/* : ANodes[AType] */;
2974 val
* var167
/* : Iterator[nullable Object] */;
2975 short int var168
/* : Bool */;
2976 val
* var169
/* : nullable Object */;
2977 val
* var_nt
/* var nt: AType */;
2978 val
* var170
/* : nullable MType */;
2979 val
* var_mt
/* var mt: nullable MType */;
2980 val
* var171
/* : null */;
2981 short int var172
/* : Bool */;
2982 val
* var173
/* : null */;
2983 val
* var175
/* : MClassType */;
2984 val
* var176
/* : nullable TKwnullable */;
2985 val
* var177
/* : null */;
2986 short int var178
/* : Bool */;
2987 val
* var179
/* : MType */;
2988 static val
* varonce180
;
2989 val
* var181
/* : String */;
2990 char* var182
/* : NativeString */;
2991 long var183
/* : Int */;
2992 val
* var184
/* : String */;
2993 static val
* varonce185
;
2994 val
* var186
/* : String */;
2995 char* var187
/* : NativeString */;
2996 long var188
/* : Int */;
2997 val
* var189
/* : String */;
2998 static val
* varonce190
;
2999 val
* var191
/* : String */;
3000 char* var192
/* : NativeString */;
3001 long var193
/* : Int */;
3002 val
* var194
/* : String */;
3003 val
* var195
/* : Array[Object] */;
3004 long var196
/* : Int */;
3005 val
* var197
/* : NativeArray[Object] */;
3006 val
* var198
/* : String */;
3007 val
* var199
/* : null */;
3010 var_with_virtual
= p2
;
3011 var1
= ((val
* (*)(val
*))(var_ntype
->class->vft
[COLOR_parser_nodes__AType__n_id
]))(var_ntype
) /* n_id on <var_ntype:AType>*/;
3012 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_parser_nodes__Token__text
]))(var1
) /* text on <var1:TClassid>*/;
3014 var3
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var_nclassdef
) /* mclassdef on <var_nclassdef:AClassdef>*/;
3015 var_mclassdef
= var3
;
3016 var4
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__ANode__parent
]))(var_nclassdef
) /* parent on <var_nclassdef:AClassdef>*/;
3017 /* <var4:nullable ANode> isa AModule */
3018 cltype
= type_parser_nodes__AModule
.color
;
3019 idtype
= type_parser_nodes__AModule
.id
;
3023 if(cltype
>= var4
->type
->table_size
) {
3026 var5
= var4
->type
->type_table
[cltype
] == idtype
;
3030 var_class_name
= var4
== NULL ?
"null" : var4
->type
->name
;
3031 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AModule", var_class_name
);
3032 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 375);
3035 var6
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_modelbuilder__AModule__mmodule
]))(var4
) /* mmodule on <var4:nullable ANode(AModule)>*/;
3037 fprintf(stderr
, "Runtime error: %s", "Cast failed");
3038 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 375);
3043 if (var_mclassdef
== NULL
) {
3044 var9
= 0; /* is null */
3046 var9
= 1; /* arg is null and recv is not */
3051 var7
= var_with_virtual
;
3054 var10
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name
]))(self
, var_ntype
, var_mclassdef
, var_name
) /* try_get_mproperty_by_name on <self:ModelBuilder>*/;
3055 /* <var10:nullable MProperty> isa nullable MVirtualTypeProp */
3056 cltype12
= type_nullable_model__MVirtualTypeProp
.color
;
3057 idtype13
= type_nullable_model__MVirtualTypeProp
.id
;
3061 if(cltype12
>= var10
->type
->table_size
) {
3064 var11
= var10
->type
->type_table
[cltype12
] == idtype13
;
3068 var_class_name14
= var10
== NULL ?
"null" : var10
->type
->name
;
3069 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MVirtualTypeProp", var_class_name14
);
3070 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 380);
3075 if (var_prop
== NULL
) {
3076 var16
= 0; /* is null */
3078 var16
= 1; /* arg is null and recv is not */
3081 var17
= ((val
* (*)(val
*))(var_ntype
->class->vft
[COLOR_parser_nodes__AType__n_types
]))(var_ntype
) /* n_types on <var_ntype:AType>*/;
3082 var18
= ((short int (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var17
) /* is_empty on <var17:ANodes[AType]>*/;
3088 var21
= "Type error: formal type ";
3090 var23
= string__NativeString__to_s_with_length(var21
, var22
);
3097 var26
= " cannot have formal parameters.";
3099 var28
= string__NativeString__to_s_with_length(var26
, var27
);
3103 var29
= NEW_array__Array(&type_array__Arraykernel__Object
);
3104 { /* var29 = array_instance Array[Object] */
3106 var31
= NEW_array__NativeArray(var30
, &type_array__NativeArraykernel__Object
);
3107 ((struct instance_array__NativeArray
*)var31
)->values
[0] = (val
*) var20
;
3108 ((struct instance_array__NativeArray
*)var31
)->values
[1] = (val
*) var_name
;
3109 ((struct instance_array__NativeArray
*)var31
)->values
[2] = (val
*) var25
;
3110 ((void (*)(val
*, val
*, long))(var29
->class->vft
[COLOR_array__Array__with_native
]))(var29
, var31
, var30
) /* with_native on <var29:Array[Object]>*/;
3112 var32
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_string__Object__to_s
]))(var29
) /* to_s on <var29:Array[Object]>*/;
3113 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var_ntype
, var32
) /* error on <self:ModelBuilder>*/;
3116 var33
= ((val
* (*)(val
*))(var_prop
->class->vft
[COLOR_model__MVirtualTypeProp__mvirtualtype
]))(var_prop
) /* mvirtualtype on <var_prop:nullable MVirtualTypeProp(MVirtualTypeProp)>*/;
3118 var34
= ((val
* (*)(val
*))(var_ntype
->class->vft
[COLOR_parser_nodes__AType__n_kwnullable
]))(var_ntype
) /* n_kwnullable on <var_ntype:AType>*/;
3120 if (var34
== NULL
) {
3121 var36
= 0; /* is null */
3123 var36
= 1; /* arg is null and recv is not */
3126 var37
= ((val
* (*)(val
*))(var_res
->class->vft
[COLOR_model__MType__as_nullable
]))(var_res
) /* as_nullable on <var_res:MType(MVirtualType)>*/;
3130 ((void (*)(val
*, val
*))(var_ntype
->class->vft
[COLOR_modelize_class__AType__mtype_61d
]))(var_ntype
, var_res
) /* mtype= on <var_ntype:AType>*/;
3138 if (var_mclassdef
== NULL
) {
3139 var40
= 0; /* is null */
3141 var40
= 1; /* arg is null and recv is not */
3145 var41
= ((val
* (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__parameter_names
]))(var_mclassdef
) /* parameter_names on <var_mclassdef:nullable MClassDef(MClassDef)>*/;
3146 var42
= ((short int (*)(val
*, val
*))(var41
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var41
, var_name
) /* has on <var41:Array[String]>*/;
3152 var43
= ((val
* (*)(val
*))(var_ntype
->class->vft
[COLOR_parser_nodes__AType__n_types
]))(var_ntype
) /* n_types on <var_ntype:AType>*/;
3153 var44
= ((short int (*)(val
*))(var43
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var43
) /* is_empty on <var43:ANodes[AType]>*/;
3159 var48
= "Type error: formal type ";
3161 var50
= string__NativeString__to_s_with_length(var48
, var49
);
3168 var53
= " cannot have formal parameters.";
3170 var55
= string__NativeString__to_s_with_length(var53
, var54
);
3174 var56
= NEW_array__Array(&type_array__Arraykernel__Object
);
3175 { /* var56 = array_instance Array[Object] */
3177 var58
= NEW_array__NativeArray(var57
, &type_array__NativeArraykernel__Object
);
3178 ((struct instance_array__NativeArray
*)var58
)->values
[0] = (val
*) var47
;
3179 ((struct instance_array__NativeArray
*)var58
)->values
[1] = (val
*) var_name
;
3180 ((struct instance_array__NativeArray
*)var58
)->values
[2] = (val
*) var52
;
3181 ((void (*)(val
*, val
*, long))(var56
->class->vft
[COLOR_array__Array__with_native
]))(var56
, var58
, var57
) /* with_native on <var56:Array[Object]>*/;
3183 var59
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_string__Object__to_s
]))(var56
) /* to_s on <var56:Array[Object]>*/;
3184 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var_ntype
, var59
) /* error on <self:ModelBuilder>*/;
3187 var60
= NEW_range__Range(&type_range__Rangekernel__Int
);
3189 var62
= ((val
* (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__parameter_names
]))(var_mclassdef
) /* parameter_names on <var_mclassdef:nullable MClassDef(MClassDef)>*/;
3190 var63
= ((long (*)(val
*))(var62
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var62
) /* length on <var62:Array[String]>*/;
3191 var64
= BOX_kernel__Int(var61
); /* autobox from Int to Discrete */
3192 var65
= BOX_kernel__Int(var63
); /* autobox from Int to Discrete */
3193 ((void (*)(val
*, val
*, val
*))(var60
->class->vft
[COLOR_range__Range__without_last
]))(var60
, var64
, var65
) /* without_last on <var60:Range[Int]>*/;
3194 var66
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var60
) /* iterator on <var60:Range[Int]>*/;
3196 var67
= ((short int (*)(val
*))(var66
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var66
) /* is_ok on <var66:Iterator[nullable Object]>*/;
3198 var68
= ((val
* (*)(val
*))(var66
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var66
) /* item on <var66:Iterator[nullable Object]>*/;
3199 var69
= ((struct instance_kernel__Int
*)var68
)->value
; /* autounbox from nullable Object to Int */;
3201 var70
= ((val
* (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__parameter_names
]))(var_mclassdef
) /* parameter_names on <var_mclassdef:nullable MClassDef(MClassDef)>*/;
3202 var71
= ((val
* (*)(val
*, long))(var70
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var70
, var_i
) /* [] on <var70:Array[String]>*/;
3203 var72
= ((short int (*)(val
*, val
*))(var71
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var71
, var_name
) /* == on <var71:nullable Object(String)>*/;
3205 var73
= ((val
* (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__mclass
]))(var_mclassdef
) /* mclass on <var_mclassdef:nullable MClassDef(MClassDef)>*/;
3206 var74
= ((val
* (*)(val
*))(var73
->class->vft
[COLOR_model__MClass__mclass_type
]))(var73
) /* mclass_type on <var73:MClass>*/;
3207 var75
= ((val
* (*)(val
*))(var74
->class->vft
[COLOR_model__MClassType__arguments
]))(var74
) /* arguments on <var74:MClassType>*/;
3208 var76
= ((val
* (*)(val
*, long))(var75
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var75
, var_i
) /* [] on <var75:Array[MType]>*/;
3210 var77
= ((val
* (*)(val
*))(var_ntype
->class->vft
[COLOR_parser_nodes__AType__n_kwnullable
]))(var_ntype
) /* n_kwnullable on <var_ntype:AType>*/;
3212 if (var77
== NULL
) {
3213 var79
= 0; /* is null */
3215 var79
= 1; /* arg is null and recv is not */
3218 var80
= ((val
* (*)(val
*))(var_res
->class->vft
[COLOR_model__MType__as_nullable
]))(var_res
) /* as_nullable on <var_res:MType>*/;
3222 ((void (*)(val
*, val
*))(var_ntype
->class->vft
[COLOR_modelize_class__AType__mtype_61d
]))(var_ntype
, var_res
) /* mtype= on <var_ntype:AType>*/;
3227 CONTINUE_label
: (void)0;
3228 ((void (*)(val
*))(var66
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var66
) /* next on <var66:Iterator[nullable Object]>*/;
3230 BREAK_label
: (void)0;
3231 fprintf(stderr
, "Runtime error: %s", "Aborted");
3232 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 405);
3236 var81
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__try_get_mclass_by_name
]))(self
, var_ntype
, var_mmodule
, var_name
) /* try_get_mclass_by_name on <self:ModelBuilder>*/;
3239 if (var_mclass
== NULL
) {
3240 var83
= 0; /* is null */
3242 var83
= 1; /* arg is null and recv is not */
3245 var84
= ((val
* (*)(val
*))(var_ntype
->class->vft
[COLOR_parser_nodes__AType__n_types
]))(var_ntype
) /* n_types on <var_ntype:AType>*/;
3246 var85
= ((long (*)(val
*))(var84
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var84
) /* length on <var84:ANodes[AType]>*/;
3248 var86
= ((long (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__arity
]))(var_mclass
) /* arity on <var_mclass:nullable MClass(MClass)>*/;
3249 { /* Inline kernel#Int#!= (var_arity,var86) */
3250 var89
= var_arity
== var86
;
3254 RET_LABEL88
:(void)0;
3258 { /* Inline kernel#Int#== (var_arity,var91) */
3259 var94
= var_arity
== var91
;
3262 RET_LABEL93
:(void)0;
3268 var97
= "Type error: \'";
3270 var99
= string__NativeString__to_s_with_length(var97
, var98
);
3275 var101
= varonce100
;
3277 var102
= "\' is a generic class.";
3279 var104
= string__NativeString__to_s_with_length(var102
, var103
);
3281 varonce100
= var101
;
3283 var105
= NEW_array__Array(&type_array__Arraykernel__Object
);
3284 { /* var105 = array_instance Array[Object] */
3286 var107
= NEW_array__NativeArray(var106
, &type_array__NativeArraykernel__Object
);
3287 ((struct instance_array__NativeArray
*)var107
)->values
[0] = (val
*) var96
;
3288 ((struct instance_array__NativeArray
*)var107
)->values
[1] = (val
*) var_name
;
3289 ((struct instance_array__NativeArray
*)var107
)->values
[2] = (val
*) var101
;
3290 ((void (*)(val
*, val
*, long))(var105
->class->vft
[COLOR_array__Array__with_native
]))(var105
, var107
, var106
) /* with_native on <var105:Array[Object]>*/;
3292 var108
= ((val
* (*)(val
*))(var105
->class->vft
[COLOR_string__Object__to_s
]))(var105
) /* to_s on <var105:Array[Object]>*/;
3293 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var_ntype
, var108
) /* error on <self:ModelBuilder>*/;
3295 var109
= ((long (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__arity
]))(var_mclass
) /* arity on <var_mclass:nullable MClass(MClass)>*/;
3297 { /* Inline kernel#Int#== (var109,var110) */
3298 var113
= var109
== var110
;
3301 RET_LABEL112
:(void)0;
3305 var115
= varonce114
;
3307 var116
= "Type error: \'";
3309 var118
= string__NativeString__to_s_with_length(var116
, var117
);
3311 varonce114
= var115
;
3314 var120
= varonce119
;
3316 var121
= "\' is not a generic class.";
3318 var123
= string__NativeString__to_s_with_length(var121
, var122
);
3320 varonce119
= var120
;
3322 var124
= NEW_array__Array(&type_array__Arraykernel__Object
);
3323 { /* var124 = array_instance Array[Object] */
3325 var126
= NEW_array__NativeArray(var125
, &type_array__NativeArraykernel__Object
);
3326 ((struct instance_array__NativeArray
*)var126
)->values
[0] = (val
*) var115
;
3327 ((struct instance_array__NativeArray
*)var126
)->values
[1] = (val
*) var_name
;
3328 ((struct instance_array__NativeArray
*)var126
)->values
[2] = (val
*) var120
;
3329 ((void (*)(val
*, val
*, long))(var124
->class->vft
[COLOR_array__Array__with_native
]))(var124
, var126
, var125
) /* with_native on <var124:Array[Object]>*/;
3331 var127
= ((val
* (*)(val
*))(var124
->class->vft
[COLOR_string__Object__to_s
]))(var124
) /* to_s on <var124:Array[Object]>*/;
3332 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var_ntype
, var127
) /* error on <self:ModelBuilder>*/;
3335 var129
= varonce128
;
3337 var130
= "Type error: \'";
3339 var132
= string__NativeString__to_s_with_length(var130
, var131
);
3341 varonce128
= var129
;
3344 var134
= varonce133
;
3348 var137
= string__NativeString__to_s_with_length(var135
, var136
);
3350 varonce133
= var134
;
3352 var138
= ((long (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__arity
]))(var_mclass
) /* arity on <var_mclass:nullable MClass(MClass)>*/;
3354 var140
= varonce139
;
3356 var141
= " parameters (";
3358 var143
= string__NativeString__to_s_with_length(var141
, var142
);
3360 varonce139
= var140
;
3363 var145
= varonce144
;
3365 var146
= " are provided).";
3367 var148
= string__NativeString__to_s_with_length(var146
, var147
);
3369 varonce144
= var145
;
3371 var149
= NEW_array__Array(&type_array__Arraykernel__Object
);
3372 { /* var149 = array_instance Array[Object] */
3374 var151
= NEW_array__NativeArray(var150
, &type_array__NativeArraykernel__Object
);
3375 ((struct instance_array__NativeArray
*)var151
)->values
[0] = (val
*) var129
;
3376 ((struct instance_array__NativeArray
*)var151
)->values
[1] = (val
*) var_name
;
3377 ((struct instance_array__NativeArray
*)var151
)->values
[2] = (val
*) var134
;
3378 var152
= BOX_kernel__Int(var138
); /* autobox from Int to Object */
3379 ((struct instance_array__NativeArray
*)var151
)->values
[3] = (val
*) var152
;
3380 ((struct instance_array__NativeArray
*)var151
)->values
[4] = (val
*) var140
;
3381 var153
= BOX_kernel__Int(var_arity
); /* autobox from Int to Object */
3382 ((struct instance_array__NativeArray
*)var151
)->values
[5] = (val
*) var153
;
3383 ((struct instance_array__NativeArray
*)var151
)->values
[6] = (val
*) var145
;
3384 ((void (*)(val
*, val
*, long))(var149
->class->vft
[COLOR_array__Array__with_native
]))(var149
, var151
, var150
) /* with_native on <var149:Array[Object]>*/;
3386 var154
= ((val
* (*)(val
*))(var149
->class->vft
[COLOR_string__Object__to_s
]))(var149
) /* to_s on <var149:Array[Object]>*/;
3387 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var_ntype
, var154
) /* error on <self:ModelBuilder>*/;
3396 { /* Inline kernel#Int#== (var_arity,var156) */
3397 var159
= var_arity
== var156
;
3400 RET_LABEL158
:(void)0;
3403 var160
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:nullable MClass(MClass)>*/;
3405 var161
= ((val
* (*)(val
*))(var_ntype
->class->vft
[COLOR_parser_nodes__AType__n_kwnullable
]))(var_ntype
) /* n_kwnullable on <var_ntype:AType>*/;
3407 if (var161
== NULL
) {
3408 var163
= 0; /* is null */
3410 var163
= 1; /* arg is null and recv is not */
3413 var164
= ((val
* (*)(val
*))(var_res
->class->vft
[COLOR_model__MType__as_nullable
]))(var_res
) /* as_nullable on <var_res:MType(MClassType)>*/;
3417 ((void (*)(val
*, val
*))(var_ntype
->class->vft
[COLOR_modelize_class__AType__mtype_61d
]))(var_ntype
, var_res
) /* mtype= on <var_ntype:AType>*/;
3421 var165
= NEW_array__Array(&type_array__Arraymodel__MType
);
3422 ((void (*)(val
*))(var165
->class->vft
[COLOR_array__Array__init
]))(var165
) /* init on <var165:Array[MType]>*/;
3423 var_mtypes
= var165
;
3424 var166
= ((val
* (*)(val
*))(var_ntype
->class->vft
[COLOR_parser_nodes__AType__n_types
]))(var_ntype
) /* n_types on <var_ntype:AType>*/;
3425 var167
= ((val
* (*)(val
*))(var166
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var166
) /* iterator on <var166:ANodes[AType]>*/;
3427 var168
= ((short int (*)(val
*))(var167
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var167
) /* is_ok on <var167:Iterator[nullable Object]>*/;
3429 var169
= ((val
* (*)(val
*))(var167
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var167
) /* item on <var167:Iterator[nullable Object]>*/;
3431 var170
= ((val
* (*)(val
*, val
*, val
*, short int))(self
->class->vft
[COLOR_modelize_class__ModelBuilder__resolve_mtype_unchecked
]))(self
, var_nclassdef
, var_nt
, var_with_virtual
) /* resolve_mtype_unchecked on <self:ModelBuilder>*/;
3434 if (var_mt
== NULL
) {
3435 var172
= 1; /* is null */
3437 var172
= 0; /* arg is null but recv is not */
3445 ((void (*)(val
*, val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_mtypes
, var_mt
) /* add on <var_mtypes:Array[MType]>*/;
3446 CONTINUE_label174
: (void)0;
3447 ((void (*)(val
*))(var167
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var167
) /* next on <var167:Iterator[nullable Object]>*/;
3449 BREAK_label174
: (void)0;
3450 var175
= ((val
* (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_model__MClass__get_mtype
]))(var_mclass
, var_mtypes
) /* get_mtype on <var_mclass:nullable MClass(MClass)>*/;
3452 var176
= ((val
* (*)(val
*))(var_ntype
->class->vft
[COLOR_parser_nodes__AType__n_kwnullable
]))(var_ntype
) /* n_kwnullable on <var_ntype:AType>*/;
3454 if (var176
== NULL
) {
3455 var178
= 0; /* is null */
3457 var178
= 1; /* arg is null and recv is not */
3460 var179
= ((val
* (*)(val
*))(var_res
->class->vft
[COLOR_model__MType__as_nullable
]))(var_res
) /* as_nullable on <var_res:MType(MClassType)>*/;
3464 ((void (*)(val
*, val
*))(var_ntype
->class->vft
[COLOR_modelize_class__AType__mtype_61d
]))(var_ntype
, var_res
) /* mtype= on <var_ntype:AType>*/;
3471 var181
= varonce180
;
3473 var182
= "Type error: class ";
3475 var184
= string__NativeString__to_s_with_length(var182
, var183
);
3477 varonce180
= var181
;
3480 var186
= varonce185
;
3482 var187
= " not found in module ";
3484 var189
= string__NativeString__to_s_with_length(var187
, var188
);
3486 varonce185
= var186
;
3489 var191
= varonce190
;
3493 var194
= string__NativeString__to_s_with_length(var192
, var193
);
3495 varonce190
= var191
;
3497 var195
= NEW_array__Array(&type_array__Arraykernel__Object
);
3498 { /* var195 = array_instance Array[Object] */
3500 var197
= NEW_array__NativeArray(var196
, &type_array__NativeArraykernel__Object
);
3501 ((struct instance_array__NativeArray
*)var197
)->values
[0] = (val
*) var181
;
3502 ((struct instance_array__NativeArray
*)var197
)->values
[1] = (val
*) var_name
;
3503 ((struct instance_array__NativeArray
*)var197
)->values
[2] = (val
*) var186
;
3504 ((struct instance_array__NativeArray
*)var197
)->values
[3] = (val
*) var_mmodule
;
3505 ((struct instance_array__NativeArray
*)var197
)->values
[4] = (val
*) var191
;
3506 ((void (*)(val
*, val
*, long))(var195
->class->vft
[COLOR_array__Array__with_native
]))(var195
, var197
, var196
) /* with_native on <var195:Array[Object]>*/;
3508 var198
= ((val
* (*)(val
*))(var195
->class->vft
[COLOR_string__Object__to_s
]))(var195
) /* to_s on <var195:Array[Object]>*/;
3509 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var_ntype
, var198
) /* error on <self:ModelBuilder>*/;
3516 /* method modelize_class#ModelBuilder#resolve_mtype_unchecked for (self: Object, AClassdef, AType, Bool): nullable MType */
3517 val
* VIRTUAL_modelize_class__ModelBuilder__resolve_mtype_unchecked(val
* self
, val
* p0
, val
* p1
, short int p2
) {
3518 val
* var
/* : nullable MType */;
3519 val
* var1
/* : nullable MType */;
3520 var1
= modelize_class__ModelBuilder__resolve_mtype_unchecked(self
, p0
, p1
, p2
);
3525 /* method modelize_class#ModelBuilder#resolve_mtype for (self: ModelBuilder, AClassdef, AType): nullable MType */
3526 val
* modelize_class__ModelBuilder__resolve_mtype(val
* self
, val
* p0
, val
* p1
) {
3527 val
* var
/* : nullable MType */;
3528 val
* var_nclassdef
/* var nclassdef: AClassdef */;
3529 val
* var_ntype
/* var ntype: AType */;
3530 val
* var1
/* : nullable MType */;
3531 val
* var_mtype
/* var mtype: nullable MType */;
3532 val
* var2
/* : null */;
3533 short int var3
/* : Bool */;
3534 short int var4
/* : Bool */;
3535 val
* var5
/* : nullable MType */;
3536 val
* var6
/* : null */;
3537 short int var7
/* : Bool */;
3538 val
* var8
/* : null */;
3539 short int var9
/* : Bool */;
3540 short int var10
/* : Bool */;
3543 val
* var11
/* : nullable ANode */;
3544 short int var12
/* : Bool */;
3547 const char* var_class_name
;
3548 val
* var15
/* : nullable MModule */;
3549 val
* var_mmodule
/* var mmodule: MModule */;
3550 val
* var16
/* : nullable MClassDef */;
3551 val
* var_mclassdef
/* var mclassdef: nullable MClassDef */;
3552 val
* var17
/* : MClass */;
3553 val
* var_mclass
/* var mclass: MClass */;
3554 val
* var18
/* : Range[Int] */;
3555 long var19
/* : Int */;
3556 long var20
/* : Int */;
3557 val
* var21
/* : Discrete */;
3558 val
* var22
/* : Discrete */;
3559 val
* var23
/* : Iterator[nullable Object] */;
3560 short int var24
/* : Bool */;
3561 val
* var25
/* : nullable Object */;
3562 long var_i
/* var i: Int */;
3563 long var26
/* : Int */;
3564 val
* var27
/* : MClassDef */;
3565 val
* var28
/* : MClassType */;
3566 val
* var29
/* : Array[MType] */;
3567 val
* var30
/* : nullable Object */;
3568 val
* var_bound
/* var bound: MType */;
3569 val
* var31
/* : ANodes[AType] */;
3570 val
* var32
/* : nullable Object */;
3571 val
* var_nt
/* var nt: AType */;
3572 val
* var33
/* : nullable MType */;
3573 val
* var_mt
/* var mt: nullable MType */;
3574 val
* var34
/* : null */;
3575 short int var35
/* : Bool */;
3576 val
* var36
/* : null */;
3577 val
* var37
/* : MClassType */;
3578 short int var38
/* : Bool */;
3579 short int var39
/* : Bool */;
3580 static val
* varonce
;
3581 val
* var40
/* : String */;
3582 char* var41
/* : NativeString */;
3583 long var42
/* : Int */;
3584 val
* var43
/* : String */;
3585 static val
* varonce44
;
3586 val
* var45
/* : String */;
3587 char* var46
/* : NativeString */;
3588 long var47
/* : Int */;
3589 val
* var48
/* : String */;
3590 val
* var49
/* : Array[Object] */;
3591 long var50
/* : Int */;
3592 val
* var51
/* : NativeArray[Object] */;
3593 val
* var52
/* : String */;
3594 val
* var53
/* : null */;
3595 short int var54
/* : Bool */;
3598 var1
= ((val
* (*)(val
*))(var_ntype
->class->vft
[COLOR_modelize_class__AType__mtype
]))(var_ntype
) /* mtype on <var_ntype:AType>*/;
3601 if (var_mtype
== NULL
) {
3602 var3
= 1; /* is null */
3604 var3
= 0; /* arg is null but recv is not */
3608 var5
= ((val
* (*)(val
*, val
*, val
*, short int))(self
->class->vft
[COLOR_modelize_class__ModelBuilder__resolve_mtype_unchecked
]))(self
, var_nclassdef
, var_ntype
, var4
) /* resolve_mtype_unchecked on <self:ModelBuilder>*/;
3613 if (var_mtype
== NULL
) {
3614 var7
= 1; /* is null */
3616 var7
= 0; /* arg is null but recv is not */
3624 var9
= ((short int (*)(val
*))(var_ntype
->class->vft
[COLOR_modelize_class__AType__checked_mtype
]))(var_ntype
) /* checked_mtype on <var_ntype:AType>*/;
3630 /* <var_mtype:nullable MType(MType)> isa MGenericType */
3631 cltype
= type_model__MGenericType
.color
;
3632 idtype
= type_model__MGenericType
.id
;
3633 if(cltype
>= var_mtype
->type
->table_size
) {
3636 var10
= var_mtype
->type
->type_table
[cltype
] == idtype
;
3639 var11
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__ANode__parent
]))(var_nclassdef
) /* parent on <var_nclassdef:AClassdef>*/;
3640 /* <var11:nullable ANode> isa AModule */
3641 cltype13
= type_parser_nodes__AModule
.color
;
3642 idtype14
= type_parser_nodes__AModule
.id
;
3646 if(cltype13
>= var11
->type
->table_size
) {
3649 var12
= var11
->type
->type_table
[cltype13
] == idtype14
;
3653 var_class_name
= var11
== NULL ?
"null" : var11
->type
->name
;
3654 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AModule", var_class_name
);
3655 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 459);
3658 var15
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_modelbuilder__AModule__mmodule
]))(var11
) /* mmodule on <var11:nullable ANode(AModule)>*/;
3659 if (var15
== NULL
) {
3660 fprintf(stderr
, "Runtime error: %s", "Cast failed");
3661 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 459);
3664 var_mmodule
= var15
;
3665 var16
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var_nclassdef
) /* mclassdef on <var_nclassdef:AClassdef>*/;
3666 var_mclassdef
= var16
;
3667 var17
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:nullable MType(MGenericType)>*/;
3669 var18
= NEW_range__Range(&type_range__Rangekernel__Int
);
3671 var20
= ((long (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__arity
]))(var_mclass
) /* arity on <var_mclass:MClass>*/;
3672 var21
= BOX_kernel__Int(var19
); /* autobox from Int to Discrete */
3673 var22
= BOX_kernel__Int(var20
); /* autobox from Int to Discrete */
3674 ((void (*)(val
*, val
*, val
*))(var18
->class->vft
[COLOR_range__Range__without_last
]))(var18
, var21
, var22
) /* without_last on <var18:Range[Int]>*/;
3675 var23
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var18
) /* iterator on <var18:Range[Int]>*/;
3677 var24
= ((short int (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var23
) /* is_ok on <var23:Iterator[nullable Object]>*/;
3679 var25
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var23
) /* item on <var23:Iterator[nullable Object]>*/;
3680 var26
= ((struct instance_kernel__Int
*)var25
)->value
; /* autounbox from nullable Object to Int */;
3682 var27
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro
]))(var_mclass
) /* intro on <var_mclass:MClass>*/;
3683 var28
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var27
) /* bound_mtype on <var27:MClassDef>*/;
3684 var29
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_model__MClassType__arguments
]))(var28
) /* arguments on <var28:MClassType>*/;
3685 var30
= ((val
* (*)(val
*, long))(var29
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var29
, var_i
) /* [] on <var29:Array[MType]>*/;
3687 var31
= ((val
* (*)(val
*))(var_ntype
->class->vft
[COLOR_parser_nodes__AType__n_types
]))(var_ntype
) /* n_types on <var_ntype:AType>*/;
3688 var32
= ((val
* (*)(val
*, long))(var31
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var31
, var_i
) /* [] on <var31:ANodes[AType]>*/;
3690 var33
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelize_class__ModelBuilder__resolve_mtype
]))(self
, var_nclassdef
, var_nt
) /* resolve_mtype on <self:ModelBuilder>*/;
3693 if (var_mt
== NULL
) {
3694 var35
= 1; /* is null */
3696 var35
= 0; /* arg is null but recv is not */
3704 if (var_mclassdef
== NULL
) {
3705 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3706 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 467);
3709 var37
= ((val
* (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var_mclassdef
) /* bound_mtype on <var_mclassdef:nullable MClassDef>*/;
3711 var38
= ((short int (*)(val
*, val
*, val
*, val
*))(var_mt
->class->vft
[COLOR_model__MType__is_subtype
]))(var_mt
, var_mmodule
, var37
, var_bound
) /* is_subtype on <var_mt:nullable MType(MType)>*/;
3717 var41
= "Type error: expected ";
3719 var43
= string__NativeString__to_s_with_length(var41
, var42
);
3728 var48
= string__NativeString__to_s_with_length(var46
, var47
);
3732 var49
= NEW_array__Array(&type_array__Arraykernel__Object
);
3733 { /* var49 = array_instance Array[Object] */
3735 var51
= NEW_array__NativeArray(var50
, &type_array__NativeArraykernel__Object
);
3736 ((struct instance_array__NativeArray
*)var51
)->values
[0] = (val
*) var40
;
3737 ((struct instance_array__NativeArray
*)var51
)->values
[1] = (val
*) var_bound
;
3738 ((struct instance_array__NativeArray
*)var51
)->values
[2] = (val
*) var45
;
3739 ((struct instance_array__NativeArray
*)var51
)->values
[3] = (val
*) var_mt
;
3740 ((void (*)(val
*, val
*, long))(var49
->class->vft
[COLOR_array__Array__with_native
]))(var49
, var51
, var50
) /* with_native on <var49:Array[Object]>*/;
3742 var52
= ((val
* (*)(val
*))(var49
->class->vft
[COLOR_string__Object__to_s
]))(var49
) /* to_s on <var49:Array[Object]>*/;
3743 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(self
, var_nt
, var52
) /* error on <self:ModelBuilder>*/;
3749 CONTINUE_label
: (void)0;
3750 ((void (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var23
) /* next on <var23:Iterator[nullable Object]>*/;
3752 BREAK_label
: (void)0;
3756 ((void (*)(val
*, short int))(var_ntype
->class->vft
[COLOR_modelize_class__AType__checked_mtype_61d
]))(var_ntype
, var54
) /* checked_mtype= on <var_ntype:AType>*/;
3762 /* method modelize_class#ModelBuilder#resolve_mtype for (self: Object, AClassdef, AType): nullable MType */
3763 val
* VIRTUAL_modelize_class__ModelBuilder__resolve_mtype(val
* self
, val
* p0
, val
* p1
) {
3764 val
* var
/* : nullable MType */;
3765 val
* var1
/* : nullable MType */;
3766 var1
= modelize_class__ModelBuilder__resolve_mtype(self
, p0
, p1
);
3771 /* method modelize_class#AModule#build_classes_is_done for (self: AModule): Bool */
3772 short int modelize_class__AModule__build_classes_is_done(val
* self
) {
3773 short int var
/* : Bool */;
3774 short int var1
/* : Bool */;
3775 var1
= self
->attrs
[COLOR_modelize_class__AModule___64dbuild_classes_is_done
].s
; /* @build_classes_is_done on <self:AModule> */
3780 /* method modelize_class#AModule#build_classes_is_done for (self: Object): Bool */
3781 short int VIRTUAL_modelize_class__AModule__build_classes_is_done(val
* self
) {
3782 short int var
/* : Bool */;
3783 short int var1
/* : Bool */;
3784 var1
= modelize_class__AModule__build_classes_is_done(self
);
3789 /* method modelize_class#AModule#build_classes_is_done= for (self: AModule, Bool) */
3790 void modelize_class__AModule__build_classes_is_done_61d(val
* self
, short int p0
) {
3791 self
->attrs
[COLOR_modelize_class__AModule___64dbuild_classes_is_done
].s
= p0
; /* @build_classes_is_done on <self:AModule> */
3794 /* method modelize_class#AModule#build_classes_is_done= for (self: Object, Bool) */
3795 void VIRTUAL_modelize_class__AModule__build_classes_is_done_61d(val
* self
, short int p0
) {
3796 modelize_class__AModule__build_classes_is_done_61d(self
, p0
);
3799 /* method modelize_class#AModule#mclass2nclassdef for (self: AModule): Map[MClass, AClassdef] */
3800 val
* modelize_class__AModule__mclass2nclassdef(val
* self
) {
3801 val
* var
/* : Map[MClass, AClassdef] */;
3802 val
* var1
/* : Map[MClass, AClassdef] */;
3803 var1
= self
->attrs
[COLOR_modelize_class__AModule___64dmclass2nclassdef
].val
; /* @mclass2nclassdef on <self:AModule> */
3805 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mclass2nclassdef");
3806 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 482);
3813 /* method modelize_class#AModule#mclass2nclassdef for (self: Object): Map[MClass, AClassdef] */
3814 val
* VIRTUAL_modelize_class__AModule__mclass2nclassdef(val
* self
) {
3815 val
* var
/* : Map[MClass, AClassdef] */;
3816 val
* var1
/* : Map[MClass, AClassdef] */;
3817 var1
= modelize_class__AModule__mclass2nclassdef(self
);
3822 /* method modelize_class#AModule#mclass2nclassdef= for (self: AModule, Map[MClass, AClassdef]) */
3823 void modelize_class__AModule__mclass2nclassdef_61d(val
* self
, val
* p0
) {
3824 self
->attrs
[COLOR_modelize_class__AModule___64dmclass2nclassdef
].val
= p0
; /* @mclass2nclassdef on <self:AModule> */
3827 /* method modelize_class#AModule#mclass2nclassdef= for (self: Object, Map[MClass, AClassdef]) */
3828 void VIRTUAL_modelize_class__AModule__mclass2nclassdef_61d(val
* self
, val
* p0
) {
3829 modelize_class__AModule__mclass2nclassdef_61d(self
, p0
);
3832 /* method modelize_class#AClassdef#mclass for (self: AClassdef): nullable MClass */
3833 val
* modelize_class__AClassdef__mclass(val
* self
) {
3834 val
* var
/* : nullable MClass */;
3835 val
* var1
/* : nullable MClass */;
3836 var1
= self
->attrs
[COLOR_modelize_class__AClassdef___64dmclass
].val
; /* @mclass on <self:AClassdef> */
3841 /* method modelize_class#AClassdef#mclass for (self: Object): nullable MClass */
3842 val
* VIRTUAL_modelize_class__AClassdef__mclass(val
* self
) {
3843 val
* var
/* : nullable MClass */;
3844 val
* var1
/* : nullable MClass */;
3845 var1
= modelize_class__AClassdef__mclass(self
);
3850 /* method modelize_class#AClassdef#mclass= for (self: AClassdef, nullable MClass) */
3851 void modelize_class__AClassdef__mclass_61d(val
* self
, val
* p0
) {
3852 self
->attrs
[COLOR_modelize_class__AClassdef___64dmclass
].val
= p0
; /* @mclass on <self:AClassdef> */
3855 /* method modelize_class#AClassdef#mclass= for (self: Object, nullable MClass) */
3856 void VIRTUAL_modelize_class__AClassdef__mclass_61d(val
* self
, val
* p0
) {
3857 modelize_class__AClassdef__mclass_61d(self
, p0
);
3860 /* method modelize_class#AClassdef#mclassdef for (self: AClassdef): nullable MClassDef */
3861 val
* modelize_class__AClassdef__mclassdef(val
* self
) {
3862 val
* var
/* : nullable MClassDef */;
3863 val
* var1
/* : nullable MClassDef */;
3864 var1
= self
->attrs
[COLOR_modelize_class__AClassdef___64dmclassdef
].val
; /* @mclassdef on <self:AClassdef> */
3869 /* method modelize_class#AClassdef#mclassdef for (self: Object): nullable MClassDef */
3870 val
* VIRTUAL_modelize_class__AClassdef__mclassdef(val
* self
) {
3871 val
* var
/* : nullable MClassDef */;
3872 val
* var1
/* : nullable MClassDef */;
3873 var1
= modelize_class__AClassdef__mclassdef(self
);
3878 /* method modelize_class#AClassdef#mclassdef= for (self: AClassdef, nullable MClassDef) */
3879 void modelize_class__AClassdef__mclassdef_61d(val
* self
, val
* p0
) {
3880 self
->attrs
[COLOR_modelize_class__AClassdef___64dmclassdef
].val
= p0
; /* @mclassdef on <self:AClassdef> */
3883 /* method modelize_class#AClassdef#mclassdef= for (self: Object, nullable MClassDef) */
3884 void VIRTUAL_modelize_class__AClassdef__mclassdef_61d(val
* self
, val
* p0
) {
3885 modelize_class__AClassdef__mclassdef_61d(self
, p0
);
3888 /* method modelize_class#AClasskind#mkind for (self: AClasskind): MClassKind */
3889 val
* modelize_class__AClasskind__mkind(val
* self
) {
3890 val
* var
/* : MClassKind */;
3891 const char* var_class_name
;
3892 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
3893 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "mkind", var_class_name
);
3894 fprintf(stderr
, " (%s:%d)\n", "src/modelize_class.nit", 495);
3899 /* method modelize_class#AClasskind#mkind for (self: Object): MClassKind */
3900 val
* VIRTUAL_modelize_class__AClasskind__mkind(val
* self
) {
3901 val
* var
/* : MClassKind */;
3902 val
* var1
/* : MClassKind */;
3903 var1
= modelize_class__AClasskind__mkind(self
);
3908 /* method modelize_class#AConcreteClasskind#mkind for (self: AConcreteClasskind): MClassKind */
3909 val
* modelize_class__AConcreteClasskind__mkind(val
* self
) {
3910 val
* var
/* : MClassKind */;
3911 val
* var1
/* : MClassKind */;
3912 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__concrete_kind
]))(self
) /* concrete_kind on <self:AConcreteClasskind>*/;
3918 /* method modelize_class#AConcreteClasskind#mkind for (self: Object): MClassKind */
3919 val
* VIRTUAL_modelize_class__AConcreteClasskind__mkind(val
* self
) {
3920 val
* var
/* : MClassKind */;
3921 val
* var1
/* : MClassKind */;
3922 var1
= modelize_class__AConcreteClasskind__mkind(self
);
3927 /* method modelize_class#AAbstractClasskind#mkind for (self: AAbstractClasskind): MClassKind */
3928 val
* modelize_class__AAbstractClasskind__mkind(val
* self
) {
3929 val
* var
/* : MClassKind */;
3930 val
* var1
/* : MClassKind */;
3931 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__abstract_kind
]))(self
) /* abstract_kind on <self:AAbstractClasskind>*/;
3937 /* method modelize_class#AAbstractClasskind#mkind for (self: Object): MClassKind */
3938 val
* VIRTUAL_modelize_class__AAbstractClasskind__mkind(val
* self
) {
3939 val
* var
/* : MClassKind */;
3940 val
* var1
/* : MClassKind */;
3941 var1
= modelize_class__AAbstractClasskind__mkind(self
);
3946 /* method modelize_class#AInterfaceClasskind#mkind for (self: AInterfaceClasskind): MClassKind */
3947 val
* modelize_class__AInterfaceClasskind__mkind(val
* self
) {
3948 val
* var
/* : MClassKind */;
3949 val
* var1
/* : MClassKind */;
3950 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__interface_kind
]))(self
) /* interface_kind on <self:AInterfaceClasskind>*/;
3956 /* method modelize_class#AInterfaceClasskind#mkind for (self: Object): MClassKind */
3957 val
* VIRTUAL_modelize_class__AInterfaceClasskind__mkind(val
* self
) {
3958 val
* var
/* : MClassKind */;
3959 val
* var1
/* : MClassKind */;
3960 var1
= modelize_class__AInterfaceClasskind__mkind(self
);
3965 /* method modelize_class#AEnumClasskind#mkind for (self: AEnumClasskind): MClassKind */
3966 val
* modelize_class__AEnumClasskind__mkind(val
* self
) {
3967 val
* var
/* : MClassKind */;
3968 val
* var1
/* : MClassKind */;
3969 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__enum_kind
]))(self
) /* enum_kind on <self:AEnumClasskind>*/;
3975 /* method modelize_class#AEnumClasskind#mkind for (self: Object): MClassKind */
3976 val
* VIRTUAL_modelize_class__AEnumClasskind__mkind(val
* self
) {
3977 val
* var
/* : MClassKind */;
3978 val
* var1
/* : MClassKind */;
3979 var1
= modelize_class__AEnumClasskind__mkind(self
);
3984 /* method modelize_class#AExternClasskind#mkind for (self: AExternClasskind): MClassKind */
3985 val
* modelize_class__AExternClasskind__mkind(val
* self
) {
3986 val
* var
/* : MClassKind */;
3987 val
* var1
/* : MClassKind */;
3988 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__extern_kind
]))(self
) /* extern_kind on <self:AExternClasskind>*/;
3994 /* method modelize_class#AExternClasskind#mkind for (self: Object): MClassKind */
3995 val
* VIRTUAL_modelize_class__AExternClasskind__mkind(val
* self
) {
3996 val
* var
/* : MClassKind */;
3997 val
* var1
/* : MClassKind */;
3998 var1
= modelize_class__AExternClasskind__mkind(self
);
4003 /* method modelize_class#AFormaldef#mtype for (self: AFormaldef): nullable MParameterType */
4004 val
* modelize_class__AFormaldef__mtype(val
* self
) {
4005 val
* var
/* : nullable MParameterType */;
4006 val
* var1
/* : nullable MParameterType */;
4007 var1
= self
->attrs
[COLOR_modelize_class__AFormaldef___64dmtype
].val
; /* @mtype on <self:AFormaldef> */
4012 /* method modelize_class#AFormaldef#mtype for (self: Object): nullable MParameterType */
4013 val
* VIRTUAL_modelize_class__AFormaldef__mtype(val
* self
) {
4014 val
* var
/* : nullable MParameterType */;
4015 val
* var1
/* : nullable MParameterType */;
4016 var1
= modelize_class__AFormaldef__mtype(self
);
4021 /* method modelize_class#AFormaldef#mtype= for (self: AFormaldef, nullable MParameterType) */
4022 void modelize_class__AFormaldef__mtype_61d(val
* self
, val
* p0
) {
4023 self
->attrs
[COLOR_modelize_class__AFormaldef___64dmtype
].val
= p0
; /* @mtype on <self:AFormaldef> */
4026 /* method modelize_class#AFormaldef#mtype= for (self: Object, nullable MParameterType) */
4027 void VIRTUAL_modelize_class__AFormaldef__mtype_61d(val
* self
, val
* p0
) {
4028 modelize_class__AFormaldef__mtype_61d(self
, p0
);
4031 /* method modelize_class#AFormaldef#bound for (self: AFormaldef): nullable MType */
4032 val
* modelize_class__AFormaldef__bound(val
* self
) {
4033 val
* var
/* : nullable MType */;
4034 val
* var1
/* : nullable MType */;
4035 var1
= self
->attrs
[COLOR_modelize_class__AFormaldef___64dbound
].val
; /* @bound on <self:AFormaldef> */
4040 /* method modelize_class#AFormaldef#bound for (self: Object): nullable MType */
4041 val
* VIRTUAL_modelize_class__AFormaldef__bound(val
* self
) {
4042 val
* var
/* : nullable MType */;
4043 val
* var1
/* : nullable MType */;
4044 var1
= modelize_class__AFormaldef__bound(self
);
4049 /* method modelize_class#AFormaldef#bound= for (self: AFormaldef, nullable MType) */
4050 void modelize_class__AFormaldef__bound_61d(val
* self
, val
* p0
) {
4051 self
->attrs
[COLOR_modelize_class__AFormaldef___64dbound
].val
= p0
; /* @bound on <self:AFormaldef> */
4054 /* method modelize_class#AFormaldef#bound= for (self: Object, nullable MType) */
4055 void VIRTUAL_modelize_class__AFormaldef__bound_61d(val
* self
, val
* p0
) {
4056 modelize_class__AFormaldef__bound_61d(self
, p0
);
4059 /* method modelize_class#AType#mtype for (self: AType): nullable MType */
4060 val
* modelize_class__AType__mtype(val
* self
) {
4061 val
* var
/* : nullable MType */;
4062 val
* var1
/* : nullable MType */;
4063 var1
= self
->attrs
[COLOR_modelize_class__AType___64dmtype
].val
; /* @mtype on <self:AType> */
4068 /* method modelize_class#AType#mtype for (self: Object): nullable MType */
4069 val
* VIRTUAL_modelize_class__AType__mtype(val
* self
) {
4070 val
* var
/* : nullable MType */;
4071 val
* var1
/* : nullable MType */;
4072 var1
= modelize_class__AType__mtype(self
);
4077 /* method modelize_class#AType#mtype= for (self: AType, nullable MType) */
4078 void modelize_class__AType__mtype_61d(val
* self
, val
* p0
) {
4079 self
->attrs
[COLOR_modelize_class__AType___64dmtype
].val
= p0
; /* @mtype on <self:AType> */
4082 /* method modelize_class#AType#mtype= for (self: Object, nullable MType) */
4083 void VIRTUAL_modelize_class__AType__mtype_61d(val
* self
, val
* p0
) {
4084 modelize_class__AType__mtype_61d(self
, p0
);
4087 /* method modelize_class#AType#checked_mtype for (self: AType): Bool */
4088 short int modelize_class__AType__checked_mtype(val
* self
) {
4089 short int var
/* : Bool */;
4090 short int var1
/* : Bool */;
4091 var1
= self
->attrs
[COLOR_modelize_class__AType___64dchecked_mtype
].s
; /* @checked_mtype on <self:AType> */
4096 /* method modelize_class#AType#checked_mtype for (self: Object): Bool */
4097 short int VIRTUAL_modelize_class__AType__checked_mtype(val
* self
) {
4098 short int var
/* : Bool */;
4099 short int var1
/* : Bool */;
4100 var1
= modelize_class__AType__checked_mtype(self
);
4105 /* method modelize_class#AType#checked_mtype= for (self: AType, Bool) */
4106 void modelize_class__AType__checked_mtype_61d(val
* self
, short int p0
) {
4107 self
->attrs
[COLOR_modelize_class__AType___64dchecked_mtype
].s
= p0
; /* @checked_mtype on <self:AType> */
4110 /* method modelize_class#AType#checked_mtype= for (self: Object, Bool) */
4111 void VIRTUAL_modelize_class__AType__checked_mtype_61d(val
* self
, short int p0
) {
4112 modelize_class__AType__checked_mtype_61d(self
, p0
);