NOTICE: Update author list and years
[nit.git] / c_src / core__flat.sep.2.c
1 #include "core__flat.sep.0.h"
2 /* method flat#NativeString#clean_utf8 for (self: NativeString, Int): FlatString */
3 val* core__flat___NativeString___clean_utf8(char* self, long p0) {
4 val* var /* : FlatString */;
5 long var_len /* var len: Int */;
6 val* var_replacements /* var replacements: nullable Array[Int] */;
7 long var_end_length /* var end_length: Int */;
8 long var_pos /* var pos: Int */;
9 long var_chr_ln /* var chr_ln: Int */;
10 long var_rem /* var rem: Int */;
11 short int var1 /* : Bool */;
12 short int var3 /* : Bool */;
13 int cltype;
14 int idtype;
15 const char* var_class_name;
16 short int var4 /* : Bool */;
17 short int var5 /* : Bool */;
18 short int var7 /* : Bool */;
19 int cltype8;
20 int idtype9;
21 const char* var_class_name10;
22 short int var11 /* : Bool */;
23 long var12 /* : Int */;
24 long var14 /* : Int */;
25 long var_i /* var i: Int */;
26 long var15 /* : Int */;
27 long var17 /* : Int */;
28 short int var18 /* : Bool */;
29 short int var20 /* : Bool */;
30 short int var21 /* : Bool */;
31 long var22 /* : Int */;
32 short int var24 /* : Bool */;
33 int cltype25;
34 int idtype26;
35 const char* var_class_name27;
36 long var28 /* : Int */;
37 long var29 /* : Int */;
38 short int var31 /* : Bool */;
39 int cltype32;
40 int idtype33;
41 const char* var_class_name34;
42 long var35 /* : Int */;
43 long var36 /* : Int */;
44 short int var38 /* : Bool */;
45 int cltype39;
46 int idtype40;
47 const char* var_class_name41;
48 long var42 /* : Int */;
49 short int var43 /* : Bool */;
50 short int var45 /* : Bool */;
51 unsigned char var47 /* : Byte */;
52 unsigned char var49 /* : Byte */;
53 unsigned char var_b /* var b: Byte */;
54 unsigned char var50 /* : Byte */;
55 unsigned char var52 /* : Byte */;
56 short int var53 /* : Bool */;
57 short int var55 /* : Bool */;
58 long var56 /* : Int */;
59 short int var58 /* : Bool */;
60 int cltype59;
61 int idtype60;
62 const char* var_class_name61;
63 long var62 /* : Int */;
64 long var63 /* : Int */;
65 short int var65 /* : Bool */;
66 int cltype66;
67 int idtype67;
68 const char* var_class_name68;
69 long var69 /* : Int */;
70 long var70 /* : Int */;
71 short int var72 /* : Bool */;
72 int cltype73;
73 int idtype74;
74 const char* var_class_name75;
75 long var76 /* : Int */;
76 long var78 /* : Int */;
77 long var_nxst /* var nxst: Int */;
78 short int var79 /* : Bool */;
79 short int var81 /* : Bool */;
80 unsigned char var82 /* : Byte */;
81 unsigned char var84 /* : Byte */;
82 short int var85 /* : Bool */;
83 short int var87 /* : Bool */;
84 short int var_ok_st /* var ok_st: Bool */;
85 short int var88 /* : Bool */;
86 short int var90 /* : Bool */;
87 unsigned char var91 /* : Byte */;
88 unsigned char var93 /* : Byte */;
89 short int var94 /* : Bool */;
90 short int var96 /* : Bool */;
91 short int var97 /* : Bool */;
92 short int var99 /* : Bool */;
93 unsigned char var100 /* : Byte */;
94 unsigned char var102 /* : Byte */;
95 short int var103 /* : Bool */;
96 short int var105 /* : Bool */;
97 unsigned char var106 /* : Byte */;
98 unsigned char var108 /* : Byte */;
99 short int var109 /* : Bool */;
100 short int var111 /* : Bool */;
101 short int var112 /* : Bool */;
102 short int var113 /* : Bool */;
103 short int var114 /* : Bool */;
104 val* var115 /* : Array[Int] */;
105 val* var116 /* : nullable Object */;
106 long var117 /* : Int */;
107 short int var119 /* : Bool */;
108 int cltype120;
109 int idtype121;
110 const char* var_class_name122;
111 long var123 /* : Int */;
112 long var124 /* : Int */;
113 short int var126 /* : Bool */;
114 int cltype127;
115 int idtype128;
116 const char* var_class_name129;
117 long var130 /* : Int */;
118 long var131 /* : Int */;
119 short int var133 /* : Bool */;
120 int cltype134;
121 int idtype135;
122 const char* var_class_name136;
123 long var137 /* : Int */;
124 long var138 /* : Int */;
125 short int var140 /* : Bool */;
126 int cltype141;
127 int idtype142;
128 const char* var_class_name143;
129 long var144 /* : Int */;
130 uint32_t var145 /* : Char */;
131 uint32_t var_c /* var c: Char */;
132 long var146 /* : Int */;
133 long var148 /* : Int */;
134 long var_cp /* var cp: Int */;
135 short int var149 /* : Bool */;
136 short int var151 /* : Bool */;
137 short int var152 /* : Bool */;
138 short int var153 /* : Bool */;
139 short int var155 /* : Bool */;
140 int cltype156;
141 int idtype157;
142 const char* var_class_name158;
143 short int var159 /* : Bool */;
144 short int var_ /* var : Bool */;
145 short int var160 /* : Bool */;
146 short int var162 /* : Bool */;
147 int cltype163;
148 int idtype164;
149 const char* var_class_name165;
150 short int var166 /* : Bool */;
151 short int var_ok_c /* var ok_c: Bool */;
152 short int var167 /* : Bool */;
153 short int var169 /* : Bool */;
154 short int var170 /* : Bool */;
155 short int var171 /* : Bool */;
156 short int var173 /* : Bool */;
157 int cltype174;
158 int idtype175;
159 const char* var_class_name176;
160 short int var177 /* : Bool */;
161 short int var_178 /* var : Bool */;
162 short int var179 /* : Bool */;
163 short int var181 /* : Bool */;
164 int cltype182;
165 int idtype183;
166 const char* var_class_name184;
167 short int var185 /* : Bool */;
168 short int var186 /* : Bool */;
169 short int var188 /* : Bool */;
170 short int var189 /* : Bool */;
171 short int var190 /* : Bool */;
172 short int var192 /* : Bool */;
173 int cltype193;
174 int idtype194;
175 const char* var_class_name195;
176 short int var196 /* : Bool */;
177 short int var_197 /* var : Bool */;
178 short int var198 /* : Bool */;
179 short int var200 /* : Bool */;
180 int cltype201;
181 int idtype202;
182 const char* var_class_name203;
183 short int var204 /* : Bool */;
184 short int var205 /* : Bool */;
185 short int var206 /* : Bool */;
186 short int var207 /* : Bool */;
187 short int var_208 /* var : Bool */;
188 short int var209 /* : Bool */;
189 short int var210 /* : Bool */;
190 short int var212 /* : Bool */;
191 int cltype213;
192 int idtype214;
193 const char* var_class_name215;
194 short int var216 /* : Bool */;
195 short int var_217 /* var : Bool */;
196 short int var218 /* : Bool */;
197 short int var220 /* : Bool */;
198 int cltype221;
199 int idtype222;
200 const char* var_class_name223;
201 short int var224 /* : Bool */;
202 short int var225 /* : Bool */;
203 short int var_226 /* var : Bool */;
204 short int var227 /* : Bool */;
205 short int var229 /* : Bool */;
206 short int var230 /* : Bool */;
207 short int var_231 /* var : Bool */;
208 short int var232 /* : Bool */;
209 short int var234 /* : Bool */;
210 short int var235 /* : Bool */;
211 short int var236 /* : Bool */;
212 short int var237 /* : Bool */;
213 short int var239 /* : Bool */;
214 int cltype240;
215 int idtype241;
216 const char* var_class_name242;
217 short int var243 /* : Bool */;
218 short int var_244 /* var : Bool */;
219 short int var245 /* : Bool */;
220 short int var247 /* : Bool */;
221 int cltype248;
222 int idtype249;
223 const char* var_class_name250;
224 short int var251 /* : Bool */;
225 short int var252 /* : Bool */;
226 short int var253 /* : Bool */;
227 short int var254 /* : Bool */;
228 val* var255 /* : Array[Int] */;
229 val* var256 /* : nullable Object */;
230 long var257 /* : Int */;
231 short int var259 /* : Bool */;
232 int cltype260;
233 int idtype261;
234 const char* var_class_name262;
235 long var263 /* : Int */;
236 long var264 /* : Int */;
237 short int var266 /* : Bool */;
238 int cltype267;
239 int idtype268;
240 const char* var_class_name269;
241 long var270 /* : Int */;
242 long var271 /* : Int */;
243 short int var273 /* : Bool */;
244 int cltype274;
245 int idtype275;
246 const char* var_class_name276;
247 long var277 /* : Int */;
248 long var278 /* : Int */;
249 short int var280 /* : Bool */;
250 int cltype281;
251 int idtype282;
252 const char* var_class_name283;
253 long var284 /* : Int */;
254 long var285 /* : Int */;
255 long var_clen /* var clen: Int */;
256 long var286 /* : Int */;
257 short int var288 /* : Bool */;
258 int cltype289;
259 int idtype290;
260 const char* var_class_name291;
261 long var292 /* : Int */;
262 long var293 /* : Int */;
263 short int var295 /* : Bool */;
264 int cltype296;
265 int idtype297;
266 const char* var_class_name298;
267 long var299 /* : Int */;
268 long var300 /* : Int */;
269 short int var302 /* : Bool */;
270 int cltype303;
271 int idtype304;
272 const char* var_class_name305;
273 long var306 /* : Int */;
274 char* var_ret /* var ret: NativeString */;
275 short int var307 /* : Bool */;
276 short int var309 /* : Bool */;
277 short int var310 /* : Bool */;
278 char* var311 /* : NativeString */;
279 char* var312 /* : NativeString */;
280 char* var314 /* : NativeString */;
281 long var_old_repl /* var old_repl: Int */;
282 long var_off /* var off: Int */;
283 val* var_repls /* var repls: Array[Int] */;
284 val* var315 /* : nullable NativeArray[nullable Object] */;
285 val* var317 /* : nullable NativeArray[nullable Object] */;
286 val* var_r /* var r: NativeArray[Int] */;
287 long var318 /* : Int */;
288 long var320 /* : Int */;
289 long var_imax /* var imax: Int */;
290 long var_i321 /* var i: Int */;
291 long var_322 /* var : Int */;
292 short int var323 /* : Bool */;
293 short int var325 /* : Bool */;
294 int cltype326;
295 int idtype327;
296 const char* var_class_name328;
297 short int var329 /* : Bool */;
298 val* var331 /* : nullable Object */;
299 val* var333 /* : Object */;
300 long var334 /* : Int */;
301 long var_repl_pos /* var repl_pos: Int */;
302 long var335 /* : Int */;
303 short int var337 /* : Bool */;
304 int cltype338;
305 int idtype339;
306 const char* var_class_name340;
307 long var341 /* : Int */;
308 long var_chkln /* var chkln: Int */;
309 long var343 /* : Int */;
310 short int var345 /* : Bool */;
311 int cltype346;
312 int idtype347;
313 const char* var_class_name348;
314 long var349 /* : Int */;
315 long var351 /* : Int */;
316 short int var353 /* : Bool */;
317 int cltype354;
318 int idtype355;
319 const char* var_class_name356;
320 long var357 /* : Int */;
321 long var359 /* : Int */;
322 short int var361 /* : Bool */;
323 int cltype362;
324 int idtype363;
325 const char* var_class_name364;
326 long var365 /* : Int */;
327 long var367 /* : Int */;
328 short int var369 /* : Bool */;
329 int cltype370;
330 int idtype371;
331 const char* var_class_name372;
332 long var373 /* : Int */;
333 long var374 /* : Int */;
334 short int var376 /* : Bool */;
335 int cltype377;
336 int idtype378;
337 const char* var_class_name379;
338 long var380 /* : Int */;
339 long var381 /* : Int */;
340 long var382 /* : Int */;
341 short int var384 /* : Bool */;
342 int cltype385;
343 int idtype386;
344 const char* var_class_name387;
345 long var388 /* : Int */;
346 val* var390 /* : FlatString */;
347 var_len = p0;
348 var_replacements = ((val*)NULL);
349 var_end_length = var_len;
350 var_pos = 0l;
351 var_chr_ln = 0l;
352 var_rem = var_len;
353 for(;;) {
354 {
355 { /* Inline kernel#Int#> (var_rem,0l) on <var_rem:Int> */
356 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
357 /* <0l:Int> isa OTHER */
358 var3 = 1; /* easy <0l:Int> isa OTHER*/
359 if (unlikely(!var3)) {
360 var_class_name = type_core__Int.name;
361 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
362 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
363 fatal_exit(1);
364 }
365 var4 = var_rem > 0l;
366 var1 = var4;
367 goto RET_LABEL2;
368 RET_LABEL2:(void)0;
369 }
370 }
371 if (var1){
372 for(;;) {
373 {
374 { /* Inline kernel#Int#>= (var_rem,4l) on <var_rem:Int> */
375 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
376 /* <4l:Int> isa OTHER */
377 var7 = 1; /* easy <4l:Int> isa OTHER*/
378 if (unlikely(!var7)) {
379 var_class_name10 = type_core__Int.name;
380 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name10);
381 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
382 fatal_exit(1);
383 }
384 var11 = var_rem >= 4l;
385 var5 = var11;
386 goto RET_LABEL6;
387 RET_LABEL6:(void)0;
388 }
389 }
390 if (var5){
391 {
392 { /* Inline native#NativeString#fetch_4_chars (self,var_pos) on <self:NativeString> */
393 var14 = (long)*((uint32_t*)(self + var_pos));
394 var12 = var14;
395 goto RET_LABEL13;
396 RET_LABEL13:(void)0;
397 }
398 }
399 var_i = var12;
400 {
401 { /* Inline math#Int#& (var_i,2155905152l) on <var_i:Int> */
402 var17 = var_i & 2155905152l;
403 var15 = var17;
404 goto RET_LABEL16;
405 RET_LABEL16:(void)0;
406 }
407 }
408 {
409 { /* Inline kernel#Int#!= (var15,0l) on <var15:Int> */
410 var20 = var15 == 0l;
411 var21 = !var20;
412 var18 = var21;
413 goto RET_LABEL19;
414 RET_LABEL19:(void)0;
415 }
416 }
417 if (var18){
418 goto BREAK_label;
419 } else {
420 }
421 {
422 { /* Inline kernel#Int#+ (var_pos,4l) on <var_pos:Int> */
423 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
424 /* <4l:Int> isa OTHER */
425 var24 = 1; /* easy <4l:Int> isa OTHER*/
426 if (unlikely(!var24)) {
427 var_class_name27 = type_core__Int.name;
428 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
429 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
430 fatal_exit(1);
431 }
432 var28 = var_pos + 4l;
433 var22 = var28;
434 goto RET_LABEL23;
435 RET_LABEL23:(void)0;
436 }
437 }
438 var_pos = var22;
439 {
440 { /* Inline kernel#Int#+ (var_chr_ln,4l) on <var_chr_ln:Int> */
441 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
442 /* <4l:Int> isa OTHER */
443 var31 = 1; /* easy <4l:Int> isa OTHER*/
444 if (unlikely(!var31)) {
445 var_class_name34 = type_core__Int.name;
446 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
447 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
448 fatal_exit(1);
449 }
450 var35 = var_chr_ln + 4l;
451 var29 = var35;
452 goto RET_LABEL30;
453 RET_LABEL30:(void)0;
454 }
455 }
456 var_chr_ln = var29;
457 {
458 { /* Inline kernel#Int#- (var_rem,4l) on <var_rem:Int> */
459 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
460 /* <4l:Int> isa OTHER */
461 var38 = 1; /* easy <4l:Int> isa OTHER*/
462 if (unlikely(!var38)) {
463 var_class_name41 = type_core__Int.name;
464 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41);
465 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
466 fatal_exit(1);
467 }
468 var42 = var_rem - 4l;
469 var36 = var42;
470 goto RET_LABEL37;
471 RET_LABEL37:(void)0;
472 }
473 }
474 var_rem = var36;
475 } else {
476 goto BREAK_label;
477 }
478 }
479 BREAK_label: (void)0;
480 {
481 { /* Inline kernel#Int#== (var_rem,0l) on <var_rem:Int> */
482 var45 = var_rem == 0l;
483 var43 = var45;
484 goto RET_LABEL44;
485 RET_LABEL44:(void)0;
486 }
487 }
488 if (var43){
489 goto BREAK_label46;
490 } else {
491 }
492 {
493 { /* Inline native#NativeString#[] (self,var_pos) on <self:NativeString> */
494 var49 = (unsigned char)((int)self[var_pos]);
495 var47 = var49;
496 goto RET_LABEL48;
497 RET_LABEL48:(void)0;
498 }
499 }
500 var_b = var47;
501 {
502 { /* Inline math#Byte#& (var_b,((unsigned char)0x80)) on <var_b:Byte> */
503 var52 = var_b & ((unsigned char)0x80);
504 var50 = var52;
505 goto RET_LABEL51;
506 RET_LABEL51:(void)0;
507 }
508 }
509 {
510 { /* Inline kernel#Byte#== (var50,((unsigned char)0x00)) on <var50:Byte> */
511 var55 = var50 == ((unsigned char)0x00);
512 var53 = var55;
513 goto RET_LABEL54;
514 RET_LABEL54:(void)0;
515 }
516 }
517 if (var53){
518 {
519 { /* Inline kernel#Int#+ (var_pos,1l) on <var_pos:Int> */
520 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
521 /* <1l:Int> isa OTHER */
522 var58 = 1; /* easy <1l:Int> isa OTHER*/
523 if (unlikely(!var58)) {
524 var_class_name61 = type_core__Int.name;
525 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name61);
526 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
527 fatal_exit(1);
528 }
529 var62 = var_pos + 1l;
530 var56 = var62;
531 goto RET_LABEL57;
532 RET_LABEL57:(void)0;
533 }
534 }
535 var_pos = var56;
536 {
537 { /* Inline kernel#Int#+ (var_chr_ln,1l) on <var_chr_ln:Int> */
538 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
539 /* <1l:Int> isa OTHER */
540 var65 = 1; /* easy <1l:Int> isa OTHER*/
541 if (unlikely(!var65)) {
542 var_class_name68 = type_core__Int.name;
543 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name68);
544 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
545 fatal_exit(1);
546 }
547 var69 = var_chr_ln + 1l;
548 var63 = var69;
549 goto RET_LABEL64;
550 RET_LABEL64:(void)0;
551 }
552 }
553 var_chr_ln = var63;
554 {
555 { /* Inline kernel#Int#- (var_rem,1l) on <var_rem:Int> */
556 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
557 /* <1l:Int> isa OTHER */
558 var72 = 1; /* easy <1l:Int> isa OTHER*/
559 if (unlikely(!var72)) {
560 var_class_name75 = type_core__Int.name;
561 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name75);
562 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
563 fatal_exit(1);
564 }
565 var76 = var_rem - 1l;
566 var70 = var76;
567 goto RET_LABEL71;
568 RET_LABEL71:(void)0;
569 }
570 }
571 var_rem = var70;
572 goto BREAK_label77;
573 } else {
574 }
575 {
576 var78 = core___core__NativeString___length_of_char_at(self, var_pos);
577 }
578 var_nxst = var78;
579 {
580 { /* Inline kernel#Int#== (var_nxst,1l) on <var_nxst:Int> */
581 var81 = var_nxst == 1l;
582 var79 = var81;
583 goto RET_LABEL80;
584 RET_LABEL80:(void)0;
585 }
586 }
587 if (var79){
588 {
589 { /* Inline math#Byte#& (var_b,((unsigned char)0x80)) on <var_b:Byte> */
590 var84 = var_b & ((unsigned char)0x80);
591 var82 = var84;
592 goto RET_LABEL83;
593 RET_LABEL83:(void)0;
594 }
595 }
596 {
597 { /* Inline kernel#Byte#== (var82,((unsigned char)0x00)) on <var82:Byte> */
598 var87 = var82 == ((unsigned char)0x00);
599 var85 = var87;
600 goto RET_LABEL86;
601 RET_LABEL86:(void)0;
602 }
603 }
604 var_ok_st = var85;
605 } else {
606 {
607 { /* Inline kernel#Int#== (var_nxst,2l) on <var_nxst:Int> */
608 var90 = var_nxst == 2l;
609 var88 = var90;
610 goto RET_LABEL89;
611 RET_LABEL89:(void)0;
612 }
613 }
614 if (var88){
615 {
616 { /* Inline math#Byte#& (var_b,((unsigned char)0xe0)) on <var_b:Byte> */
617 var93 = var_b & ((unsigned char)0xe0);
618 var91 = var93;
619 goto RET_LABEL92;
620 RET_LABEL92:(void)0;
621 }
622 }
623 {
624 { /* Inline kernel#Byte#== (var91,((unsigned char)0xc0)) on <var91:Byte> */
625 var96 = var91 == ((unsigned char)0xc0);
626 var94 = var96;
627 goto RET_LABEL95;
628 RET_LABEL95:(void)0;
629 }
630 }
631 var_ok_st = var94;
632 } else {
633 {
634 { /* Inline kernel#Int#== (var_nxst,3l) on <var_nxst:Int> */
635 var99 = var_nxst == 3l;
636 var97 = var99;
637 goto RET_LABEL98;
638 RET_LABEL98:(void)0;
639 }
640 }
641 if (var97){
642 {
643 { /* Inline math#Byte#& (var_b,((unsigned char)0xf0)) on <var_b:Byte> */
644 var102 = var_b & ((unsigned char)0xf0);
645 var100 = var102;
646 goto RET_LABEL101;
647 RET_LABEL101:(void)0;
648 }
649 }
650 {
651 { /* Inline kernel#Byte#== (var100,((unsigned char)0xe0)) on <var100:Byte> */
652 var105 = var100 == ((unsigned char)0xe0);
653 var103 = var105;
654 goto RET_LABEL104;
655 RET_LABEL104:(void)0;
656 }
657 }
658 var_ok_st = var103;
659 } else {
660 {
661 { /* Inline math#Byte#& (var_b,((unsigned char)0xf8)) on <var_b:Byte> */
662 var108 = var_b & ((unsigned char)0xf8);
663 var106 = var108;
664 goto RET_LABEL107;
665 RET_LABEL107:(void)0;
666 }
667 }
668 {
669 { /* Inline kernel#Byte#== (var106,((unsigned char)0xf0)) on <var106:Byte> */
670 var111 = var106 == ((unsigned char)0xf0);
671 var109 = var111;
672 goto RET_LABEL110;
673 RET_LABEL110:(void)0;
674 }
675 }
676 var_ok_st = var109;
677 }
678 }
679 }
680 var112 = !var_ok_st;
681 if (var112){
682 if (var_replacements == NULL) {
683 var113 = 1; /* is null */
684 } else {
685 var113 = 0; /* arg is null but recv is not */
686 }
687 if (0) {
688 var114 = core___core__Array___core__kernel__Object___61d_61d(var_replacements, ((val*)NULL));
689 var113 = var114;
690 }
691 if (var113){
692 var115 = NEW_core__Array(&type_core__Array__core__Int);
693 {
694 core___core__Array___core__kernel__Object__init(var115); /* Direct call array#Array#init on <var115:Array[Int]>*/
695 }
696 var_replacements = var115;
697 } else {
698 }
699 {
700 var116 = (val*)(var_pos<<2|1);
701 core___core__Array___core__abstract_collection__SimpleCollection__add(var_replacements, var116); /* Direct call array#Array#add on <var_replacements:nullable Array[Int](Array[Int])>*/
702 }
703 {
704 { /* Inline kernel#Int#+ (var_end_length,2l) on <var_end_length:Int> */
705 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
706 /* <2l:Int> isa OTHER */
707 var119 = 1; /* easy <2l:Int> isa OTHER*/
708 if (unlikely(!var119)) {
709 var_class_name122 = type_core__Int.name;
710 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name122);
711 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
712 fatal_exit(1);
713 }
714 var123 = var_end_length + 2l;
715 var117 = var123;
716 goto RET_LABEL118;
717 RET_LABEL118:(void)0;
718 }
719 }
720 var_end_length = var117;
721 {
722 { /* Inline kernel#Int#+ (var_pos,1l) on <var_pos:Int> */
723 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
724 /* <1l:Int> isa OTHER */
725 var126 = 1; /* easy <1l:Int> isa OTHER*/
726 if (unlikely(!var126)) {
727 var_class_name129 = type_core__Int.name;
728 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name129);
729 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
730 fatal_exit(1);
731 }
732 var130 = var_pos + 1l;
733 var124 = var130;
734 goto RET_LABEL125;
735 RET_LABEL125:(void)0;
736 }
737 }
738 var_pos = var124;
739 {
740 { /* Inline kernel#Int#- (var_rem,1l) on <var_rem:Int> */
741 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
742 /* <1l:Int> isa OTHER */
743 var133 = 1; /* easy <1l:Int> isa OTHER*/
744 if (unlikely(!var133)) {
745 var_class_name136 = type_core__Int.name;
746 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name136);
747 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
748 fatal_exit(1);
749 }
750 var137 = var_rem - 1l;
751 var131 = var137;
752 goto RET_LABEL132;
753 RET_LABEL132:(void)0;
754 }
755 }
756 var_rem = var131;
757 {
758 { /* Inline kernel#Int#+ (var_chr_ln,1l) on <var_chr_ln:Int> */
759 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
760 /* <1l:Int> isa OTHER */
761 var140 = 1; /* easy <1l:Int> isa OTHER*/
762 if (unlikely(!var140)) {
763 var_class_name143 = type_core__Int.name;
764 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name143);
765 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
766 fatal_exit(1);
767 }
768 var144 = var_chr_ln + 1l;
769 var138 = var144;
770 goto RET_LABEL139;
771 RET_LABEL139:(void)0;
772 }
773 }
774 var_chr_ln = var138;
775 goto BREAK_label77;
776 } else {
777 }
778 {
779 var145 = core___core__NativeString___char_at(self, var_pos);
780 }
781 var_c = var145;
782 {
783 { /* Inline kernel#Char#code_point (var_c) on <var_c:Char> */
784 var148 = (long)var_c;
785 var146 = var148;
786 goto RET_LABEL147;
787 RET_LABEL147:(void)0;
788 }
789 }
790 var_cp = var146;
791 {
792 { /* Inline kernel#Int#== (var_nxst,1l) on <var_nxst:Int> */
793 var151 = var_nxst == 1l;
794 var149 = var151;
795 goto RET_LABEL150;
796 RET_LABEL150:(void)0;
797 }
798 }
799 if (var149){
800 {
801 { /* Inline kernel#Int#>= (var_cp,0l) on <var_cp:Int> */
802 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
803 /* <0l:Int> isa OTHER */
804 var155 = 1; /* easy <0l:Int> isa OTHER*/
805 if (unlikely(!var155)) {
806 var_class_name158 = type_core__Int.name;
807 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name158);
808 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
809 fatal_exit(1);
810 }
811 var159 = var_cp >= 0l;
812 var153 = var159;
813 goto RET_LABEL154;
814 RET_LABEL154:(void)0;
815 }
816 }
817 var_ = var153;
818 if (var153){
819 {
820 { /* Inline kernel#Int#<= (var_cp,127l) on <var_cp:Int> */
821 /* Covariant cast for argument 0 (i) <127l:Int> isa OTHER */
822 /* <127l:Int> isa OTHER */
823 var162 = 1; /* easy <127l:Int> isa OTHER*/
824 if (unlikely(!var162)) {
825 var_class_name165 = type_core__Int.name;
826 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name165);
827 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
828 fatal_exit(1);
829 }
830 var166 = var_cp <= 127l;
831 var160 = var166;
832 goto RET_LABEL161;
833 RET_LABEL161:(void)0;
834 }
835 }
836 var152 = var160;
837 } else {
838 var152 = var_;
839 }
840 var_ok_c = var152;
841 } else {
842 {
843 { /* Inline kernel#Int#== (var_nxst,2l) on <var_nxst:Int> */
844 var169 = var_nxst == 2l;
845 var167 = var169;
846 goto RET_LABEL168;
847 RET_LABEL168:(void)0;
848 }
849 }
850 if (var167){
851 {
852 { /* Inline kernel#Int#>= (var_cp,128l) on <var_cp:Int> */
853 /* Covariant cast for argument 0 (i) <128l:Int> isa OTHER */
854 /* <128l:Int> isa OTHER */
855 var173 = 1; /* easy <128l:Int> isa OTHER*/
856 if (unlikely(!var173)) {
857 var_class_name176 = type_core__Int.name;
858 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name176);
859 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
860 fatal_exit(1);
861 }
862 var177 = var_cp >= 128l;
863 var171 = var177;
864 goto RET_LABEL172;
865 RET_LABEL172:(void)0;
866 }
867 }
868 var_178 = var171;
869 if (var171){
870 {
871 { /* Inline kernel#Int#<= (var_cp,2047l) on <var_cp:Int> */
872 /* Covariant cast for argument 0 (i) <2047l:Int> isa OTHER */
873 /* <2047l:Int> isa OTHER */
874 var181 = 1; /* easy <2047l:Int> isa OTHER*/
875 if (unlikely(!var181)) {
876 var_class_name184 = type_core__Int.name;
877 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name184);
878 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
879 fatal_exit(1);
880 }
881 var185 = var_cp <= 2047l;
882 var179 = var185;
883 goto RET_LABEL180;
884 RET_LABEL180:(void)0;
885 }
886 }
887 var170 = var179;
888 } else {
889 var170 = var_178;
890 }
891 var_ok_c = var170;
892 } else {
893 {
894 { /* Inline kernel#Int#== (var_nxst,3l) on <var_nxst:Int> */
895 var188 = var_nxst == 3l;
896 var186 = var188;
897 goto RET_LABEL187;
898 RET_LABEL187:(void)0;
899 }
900 }
901 if (var186){
902 {
903 { /* Inline kernel#Int#>= (var_cp,2048l) on <var_cp:Int> */
904 /* Covariant cast for argument 0 (i) <2048l:Int> isa OTHER */
905 /* <2048l:Int> isa OTHER */
906 var192 = 1; /* easy <2048l:Int> isa OTHER*/
907 if (unlikely(!var192)) {
908 var_class_name195 = type_core__Int.name;
909 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name195);
910 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
911 fatal_exit(1);
912 }
913 var196 = var_cp >= 2048l;
914 var190 = var196;
915 goto RET_LABEL191;
916 RET_LABEL191:(void)0;
917 }
918 }
919 var_197 = var190;
920 if (var190){
921 {
922 { /* Inline kernel#Int#<= (var_cp,65535l) on <var_cp:Int> */
923 /* Covariant cast for argument 0 (i) <65535l:Int> isa OTHER */
924 /* <65535l:Int> isa OTHER */
925 var200 = 1; /* easy <65535l:Int> isa OTHER*/
926 if (unlikely(!var200)) {
927 var_class_name203 = type_core__Int.name;
928 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name203);
929 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
930 fatal_exit(1);
931 }
932 var204 = var_cp <= 65535l;
933 var198 = var204;
934 goto RET_LABEL199;
935 RET_LABEL199:(void)0;
936 }
937 }
938 var189 = var198;
939 } else {
940 var189 = var_197;
941 }
942 var_ok_c = var189;
943 var_208 = var_ok_c;
944 if (var_ok_c){
945 {
946 { /* Inline kernel#Int#>= (var_cp,55296l) on <var_cp:Int> */
947 /* Covariant cast for argument 0 (i) <55296l:Int> isa OTHER */
948 /* <55296l:Int> isa OTHER */
949 var212 = 1; /* easy <55296l:Int> isa OTHER*/
950 if (unlikely(!var212)) {
951 var_class_name215 = type_core__Int.name;
952 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name215);
953 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
954 fatal_exit(1);
955 }
956 var216 = var_cp >= 55296l;
957 var210 = var216;
958 goto RET_LABEL211;
959 RET_LABEL211:(void)0;
960 }
961 }
962 var_217 = var210;
963 if (var210){
964 {
965 { /* Inline kernel#Int#<= (var_cp,57343l) on <var_cp:Int> */
966 /* Covariant cast for argument 0 (i) <57343l:Int> isa OTHER */
967 /* <57343l:Int> isa OTHER */
968 var220 = 1; /* easy <57343l:Int> isa OTHER*/
969 if (unlikely(!var220)) {
970 var_class_name223 = type_core__Int.name;
971 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name223);
972 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
973 fatal_exit(1);
974 }
975 var224 = var_cp <= 57343l;
976 var218 = var224;
977 goto RET_LABEL219;
978 RET_LABEL219:(void)0;
979 }
980 }
981 var209 = var218;
982 } else {
983 var209 = var_217;
984 }
985 var225 = !var209;
986 var207 = var225;
987 } else {
988 var207 = var_208;
989 }
990 var_226 = var207;
991 if (var207){
992 {
993 { /* Inline kernel#Int#!= (var_cp,65534l) on <var_cp:Int> */
994 var229 = var_cp == 65534l;
995 var230 = !var229;
996 var227 = var230;
997 goto RET_LABEL228;
998 RET_LABEL228:(void)0;
999 }
1000 }
1001 var206 = var227;
1002 } else {
1003 var206 = var_226;
1004 }
1005 var_231 = var206;
1006 if (var206){
1007 {
1008 { /* Inline kernel#Int#!= (var_cp,65535l) on <var_cp:Int> */
1009 var234 = var_cp == 65535l;
1010 var235 = !var234;
1011 var232 = var235;
1012 goto RET_LABEL233;
1013 RET_LABEL233:(void)0;
1014 }
1015 }
1016 var205 = var232;
1017 } else {
1018 var205 = var_231;
1019 }
1020 var_ok_c = var205;
1021 } else {
1022 {
1023 { /* Inline kernel#Int#>= (var_cp,65536l) on <var_cp:Int> */
1024 /* Covariant cast for argument 0 (i) <65536l:Int> isa OTHER */
1025 /* <65536l:Int> isa OTHER */
1026 var239 = 1; /* easy <65536l:Int> isa OTHER*/
1027 if (unlikely(!var239)) {
1028 var_class_name242 = type_core__Int.name;
1029 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name242);
1030 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
1031 fatal_exit(1);
1032 }
1033 var243 = var_cp >= 65536l;
1034 var237 = var243;
1035 goto RET_LABEL238;
1036 RET_LABEL238:(void)0;
1037 }
1038 }
1039 var_244 = var237;
1040 if (var237){
1041 {
1042 { /* Inline kernel#Int#<= (var_cp,1114111l) on <var_cp:Int> */
1043 /* Covariant cast for argument 0 (i) <1114111l:Int> isa OTHER */
1044 /* <1114111l:Int> isa OTHER */
1045 var247 = 1; /* easy <1114111l:Int> isa OTHER*/
1046 if (unlikely(!var247)) {
1047 var_class_name250 = type_core__Int.name;
1048 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name250);
1049 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
1050 fatal_exit(1);
1051 }
1052 var251 = var_cp <= 1114111l;
1053 var245 = var251;
1054 goto RET_LABEL246;
1055 RET_LABEL246:(void)0;
1056 }
1057 }
1058 var236 = var245;
1059 } else {
1060 var236 = var_244;
1061 }
1062 var_ok_c = var236;
1063 }
1064 }
1065 }
1066 var252 = !var_ok_c;
1067 if (var252){
1068 if (var_replacements == NULL) {
1069 var253 = 1; /* is null */
1070 } else {
1071 var253 = 0; /* arg is null but recv is not */
1072 }
1073 if (0) {
1074 var254 = core___core__Array___core__kernel__Object___61d_61d(var_replacements, ((val*)NULL));
1075 var253 = var254;
1076 }
1077 if (var253){
1078 var255 = NEW_core__Array(&type_core__Array__core__Int);
1079 {
1080 core___core__Array___core__kernel__Object__init(var255); /* Direct call array#Array#init on <var255:Array[Int]>*/
1081 }
1082 var_replacements = var255;
1083 } else {
1084 }
1085 {
1086 var256 = (val*)(var_pos<<2|1);
1087 core___core__Array___core__abstract_collection__SimpleCollection__add(var_replacements, var256); /* Direct call array#Array#add on <var_replacements:nullable Array[Int](Array[Int])>*/
1088 }
1089 {
1090 { /* Inline kernel#Int#+ (var_end_length,2l) on <var_end_length:Int> */
1091 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
1092 /* <2l:Int> isa OTHER */
1093 var259 = 1; /* easy <2l:Int> isa OTHER*/
1094 if (unlikely(!var259)) {
1095 var_class_name262 = type_core__Int.name;
1096 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name262);
1097 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1098 fatal_exit(1);
1099 }
1100 var263 = var_end_length + 2l;
1101 var257 = var263;
1102 goto RET_LABEL258;
1103 RET_LABEL258:(void)0;
1104 }
1105 }
1106 var_end_length = var257;
1107 {
1108 { /* Inline kernel#Int#+ (var_pos,1l) on <var_pos:Int> */
1109 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1110 /* <1l:Int> isa OTHER */
1111 var266 = 1; /* easy <1l:Int> isa OTHER*/
1112 if (unlikely(!var266)) {
1113 var_class_name269 = type_core__Int.name;
1114 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name269);
1115 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1116 fatal_exit(1);
1117 }
1118 var270 = var_pos + 1l;
1119 var264 = var270;
1120 goto RET_LABEL265;
1121 RET_LABEL265:(void)0;
1122 }
1123 }
1124 var_pos = var264;
1125 {
1126 { /* Inline kernel#Int#+ (var_chr_ln,1l) on <var_chr_ln:Int> */
1127 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1128 /* <1l:Int> isa OTHER */
1129 var273 = 1; /* easy <1l:Int> isa OTHER*/
1130 if (unlikely(!var273)) {
1131 var_class_name276 = type_core__Int.name;
1132 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name276);
1133 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1134 fatal_exit(1);
1135 }
1136 var277 = var_chr_ln + 1l;
1137 var271 = var277;
1138 goto RET_LABEL272;
1139 RET_LABEL272:(void)0;
1140 }
1141 }
1142 var_chr_ln = var271;
1143 {
1144 { /* Inline kernel#Int#- (var_rem,1l) on <var_rem:Int> */
1145 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1146 /* <1l:Int> isa OTHER */
1147 var280 = 1; /* easy <1l:Int> isa OTHER*/
1148 if (unlikely(!var280)) {
1149 var_class_name283 = type_core__Int.name;
1150 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name283);
1151 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
1152 fatal_exit(1);
1153 }
1154 var284 = var_rem - 1l;
1155 var278 = var284;
1156 goto RET_LABEL279;
1157 RET_LABEL279:(void)0;
1158 }
1159 }
1160 var_rem = var278;
1161 goto BREAK_label77;
1162 } else {
1163 }
1164 {
1165 var285 = core__abstract_text___Char___u8char_len(var_c);
1166 }
1167 var_clen = var285;
1168 {
1169 { /* Inline kernel#Int#+ (var_pos,var_clen) on <var_pos:Int> */
1170 /* Covariant cast for argument 0 (i) <var_clen:Int> isa OTHER */
1171 /* <var_clen:Int> isa OTHER */
1172 var288 = 1; /* easy <var_clen:Int> isa OTHER*/
1173 if (unlikely(!var288)) {
1174 var_class_name291 = type_core__Int.name;
1175 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name291);
1176 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1177 fatal_exit(1);
1178 }
1179 var292 = var_pos + var_clen;
1180 var286 = var292;
1181 goto RET_LABEL287;
1182 RET_LABEL287:(void)0;
1183 }
1184 }
1185 var_pos = var286;
1186 {
1187 { /* Inline kernel#Int#- (var_rem,var_clen) on <var_rem:Int> */
1188 /* Covariant cast for argument 0 (i) <var_clen:Int> isa OTHER */
1189 /* <var_clen:Int> isa OTHER */
1190 var295 = 1; /* easy <var_clen:Int> isa OTHER*/
1191 if (unlikely(!var295)) {
1192 var_class_name298 = type_core__Int.name;
1193 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name298);
1194 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
1195 fatal_exit(1);
1196 }
1197 var299 = var_rem - var_clen;
1198 var293 = var299;
1199 goto RET_LABEL294;
1200 RET_LABEL294:(void)0;
1201 }
1202 }
1203 var_rem = var293;
1204 {
1205 { /* Inline kernel#Int#+ (var_chr_ln,1l) on <var_chr_ln:Int> */
1206 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1207 /* <1l:Int> isa OTHER */
1208 var302 = 1; /* easy <1l:Int> isa OTHER*/
1209 if (unlikely(!var302)) {
1210 var_class_name305 = type_core__Int.name;
1211 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name305);
1212 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1213 fatal_exit(1);
1214 }
1215 var306 = var_chr_ln + 1l;
1216 var300 = var306;
1217 goto RET_LABEL301;
1218 RET_LABEL301:(void)0;
1219 }
1220 }
1221 var_chr_ln = var300;
1222 } else {
1223 goto BREAK_label46;
1224 }
1225 BREAK_label77: (void)0;
1226 }
1227 BREAK_label46: (void)0;
1228 var_ret = self;
1229 {
1230 { /* Inline kernel#Int#!= (var_end_length,var_len) on <var_end_length:Int> */
1231 var309 = var_end_length == var_len;
1232 var310 = !var309;
1233 var307 = var310;
1234 goto RET_LABEL308;
1235 RET_LABEL308:(void)0;
1236 }
1237 }
1238 if (var307){
1239 var311 = NULL/*special!*/;
1240 {
1241 { /* Inline native#NativeString#new (var311,var_end_length) on <var311:NativeString> */
1242 var314 = (char*)nit_alloc(var_end_length);
1243 var312 = var314;
1244 goto RET_LABEL313;
1245 RET_LABEL313:(void)0;
1246 }
1247 }
1248 var_ret = var312;
1249 var_old_repl = 0l;
1250 var_off = 0l;
1251 if (unlikely(var_replacements == NULL)) {
1252 PRINT_ERROR("Runtime error: %s", "Cast failed");
1253 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 1230);
1254 fatal_exit(1);
1255 }
1256 var_repls = var_replacements;
1257 {
1258 { /* Inline array#Array#items (var_repls) on <var_repls:Array[Int]> */
1259 var317 = var_repls->attrs[COLOR_core__array__Array___items].val; /* _items on <var_repls:Array[Int]> */
1260 var315 = var317;
1261 RET_LABEL316:(void)0;
1262 }
1263 }
1264 if (unlikely(var315 == NULL)) {
1265 PRINT_ERROR("Runtime error: %s", "Cast failed");
1266 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 1231);
1267 fatal_exit(1);
1268 }
1269 var_r = var315;
1270 {
1271 { /* Inline array#AbstractArrayRead#length (var_repls) on <var_repls:Array[Int]> */
1272 var320 = var_repls->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_repls:Array[Int]> */
1273 var318 = var320;
1274 RET_LABEL319:(void)0;
1275 }
1276 }
1277 var_imax = var318;
1278 var_i321 = 0l;
1279 var_322 = var_imax;
1280 for(;;) {
1281 {
1282 { /* Inline kernel#Int#< (var_i321,var_322) on <var_i321:Int> */
1283 /* Covariant cast for argument 0 (i) <var_322:Int> isa OTHER */
1284 /* <var_322:Int> isa OTHER */
1285 var325 = 1; /* easy <var_322:Int> isa OTHER*/
1286 if (unlikely(!var325)) {
1287 var_class_name328 = type_core__Int.name;
1288 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name328);
1289 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1290 fatal_exit(1);
1291 }
1292 var329 = var_i321 < var_322;
1293 var323 = var329;
1294 goto RET_LABEL324;
1295 RET_LABEL324:(void)0;
1296 }
1297 }
1298 if (var323){
1299 } else {
1300 goto BREAK_label330;
1301 }
1302 {
1303 { /* Inline array#NativeArray#[] (var_r,var_i321) on <var_r:NativeArray[Int]> */
1304 var333 = ((struct instance_core__NativeArray*)var_r)->values[var_i321];
1305 var331 = var333;
1306 goto RET_LABEL332;
1307 RET_LABEL332:(void)0;
1308 }
1309 }
1310 var334 = (long)(var331)>>2;
1311 var_repl_pos = var334;
1312 {
1313 { /* Inline kernel#Int#- (var_repl_pos,var_old_repl) on <var_repl_pos:Int> */
1314 /* Covariant cast for argument 0 (i) <var_old_repl:Int> isa OTHER */
1315 /* <var_old_repl:Int> isa OTHER */
1316 var337 = 1; /* easy <var_old_repl:Int> isa OTHER*/
1317 if (unlikely(!var337)) {
1318 var_class_name340 = type_core__Int.name;
1319 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name340);
1320 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
1321 fatal_exit(1);
1322 }
1323 var341 = var_repl_pos - var_old_repl;
1324 var335 = var341;
1325 goto RET_LABEL336;
1326 RET_LABEL336:(void)0;
1327 }
1328 }
1329 var_chkln = var335;
1330 {
1331 { /* Inline native#NativeString#copy_to (self,var_ret,var_chkln,var_old_repl,var_off) on <self:NativeString> */
1332 memmove(var_ret+var_off,self+var_old_repl,var_chkln);
1333 RET_LABEL342:(void)0;
1334 }
1335 }
1336 {
1337 { /* Inline kernel#Int#+ (var_off,var_chkln) on <var_off:Int> */
1338 /* Covariant cast for argument 0 (i) <var_chkln:Int> isa OTHER */
1339 /* <var_chkln:Int> isa OTHER */
1340 var345 = 1; /* easy <var_chkln:Int> isa OTHER*/
1341 if (unlikely(!var345)) {
1342 var_class_name348 = type_core__Int.name;
1343 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name348);
1344 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1345 fatal_exit(1);
1346 }
1347 var349 = var_off + var_chkln;
1348 var343 = var349;
1349 goto RET_LABEL344;
1350 RET_LABEL344:(void)0;
1351 }
1352 }
1353 var_off = var343;
1354 {
1355 { /* Inline native#NativeString#[]= (var_ret,var_off,((unsigned char)0xef)) on <var_ret:NativeString> */
1356 var_ret[var_off]=(unsigned char)((unsigned char)0xef);
1357 RET_LABEL350:(void)0;
1358 }
1359 }
1360 {
1361 { /* Inline kernel#Int#+ (var_off,1l) on <var_off:Int> */
1362 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1363 /* <1l:Int> isa OTHER */
1364 var353 = 1; /* easy <1l:Int> isa OTHER*/
1365 if (unlikely(!var353)) {
1366 var_class_name356 = type_core__Int.name;
1367 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name356);
1368 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1369 fatal_exit(1);
1370 }
1371 var357 = var_off + 1l;
1372 var351 = var357;
1373 goto RET_LABEL352;
1374 RET_LABEL352:(void)0;
1375 }
1376 }
1377 {
1378 { /* Inline native#NativeString#[]= (var_ret,var351,((unsigned char)0xbf)) on <var_ret:NativeString> */
1379 var_ret[var351]=(unsigned char)((unsigned char)0xbf);
1380 RET_LABEL358:(void)0;
1381 }
1382 }
1383 {
1384 { /* Inline kernel#Int#+ (var_off,2l) on <var_off:Int> */
1385 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
1386 /* <2l:Int> isa OTHER */
1387 var361 = 1; /* easy <2l:Int> isa OTHER*/
1388 if (unlikely(!var361)) {
1389 var_class_name364 = type_core__Int.name;
1390 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name364);
1391 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1392 fatal_exit(1);
1393 }
1394 var365 = var_off + 2l;
1395 var359 = var365;
1396 goto RET_LABEL360;
1397 RET_LABEL360:(void)0;
1398 }
1399 }
1400 {
1401 { /* Inline native#NativeString#[]= (var_ret,var359,((unsigned char)0xbd)) on <var_ret:NativeString> */
1402 var_ret[var359]=(unsigned char)((unsigned char)0xbd);
1403 RET_LABEL366:(void)0;
1404 }
1405 }
1406 {
1407 { /* Inline kernel#Int#+ (var_repl_pos,1l) on <var_repl_pos:Int> */
1408 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1409 /* <1l:Int> isa OTHER */
1410 var369 = 1; /* easy <1l:Int> isa OTHER*/
1411 if (unlikely(!var369)) {
1412 var_class_name372 = type_core__Int.name;
1413 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name372);
1414 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1415 fatal_exit(1);
1416 }
1417 var373 = var_repl_pos + 1l;
1418 var367 = var373;
1419 goto RET_LABEL368;
1420 RET_LABEL368:(void)0;
1421 }
1422 }
1423 var_old_repl = var367;
1424 {
1425 { /* Inline kernel#Int#+ (var_off,3l) on <var_off:Int> */
1426 /* Covariant cast for argument 0 (i) <3l:Int> isa OTHER */
1427 /* <3l:Int> isa OTHER */
1428 var376 = 1; /* easy <3l:Int> isa OTHER*/
1429 if (unlikely(!var376)) {
1430 var_class_name379 = type_core__Int.name;
1431 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name379);
1432 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1433 fatal_exit(1);
1434 }
1435 var380 = var_off + 3l;
1436 var374 = var380;
1437 goto RET_LABEL375;
1438 RET_LABEL375:(void)0;
1439 }
1440 }
1441 var_off = var374;
1442 {
1443 var381 = core___core__Int___Discrete__successor(var_i321, 1l);
1444 }
1445 var_i321 = var381;
1446 }
1447 BREAK_label330: (void)0;
1448 {
1449 { /* Inline kernel#Int#- (var_len,var_old_repl) on <var_len:Int> */
1450 /* Covariant cast for argument 0 (i) <var_old_repl:Int> isa OTHER */
1451 /* <var_old_repl:Int> isa OTHER */
1452 var384 = 1; /* easy <var_old_repl:Int> isa OTHER*/
1453 if (unlikely(!var384)) {
1454 var_class_name387 = type_core__Int.name;
1455 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name387);
1456 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
1457 fatal_exit(1);
1458 }
1459 var388 = var_len - var_old_repl;
1460 var382 = var388;
1461 goto RET_LABEL383;
1462 RET_LABEL383:(void)0;
1463 }
1464 }
1465 {
1466 { /* Inline native#NativeString#copy_to (self,var_ret,var382,var_old_repl,var_off) on <self:NativeString> */
1467 memmove(var_ret+var_off,self+var_old_repl,var382);
1468 RET_LABEL389:(void)0;
1469 }
1470 }
1471 } else {
1472 }
1473 var390 = NEW_core__FlatString(&type_core__FlatString);
1474 {
1475 core___core__FlatString___full(var390, var_ret, var_end_length, 0l, var_chr_ln); /* Direct call flat#FlatString#full on <var390:FlatString>*/
1476 }
1477 var = var390;
1478 goto RET_LABEL;
1479 RET_LABEL:;
1480 return var;
1481 }
1482 /* method flat#NativeString#set_char_at for (self: NativeString, Int, Char) */
1483 void core__flat___NativeString___set_char_at(char* self, long p0, uint32_t p1) {
1484 long var_pos /* var pos: Int */;
1485 uint32_t var_c /* var c: Char */;
1486 long var /* : Int */;
1487 long var_ln /* var ln: Int */;
1488 var_pos = p0;
1489 var_c = p1;
1490 {
1491 var = core__abstract_text___Char___u8char_len(var_c);
1492 }
1493 var_ln = var;
1494 {
1495 { /* Inline flat#NativeString#native_set_char (self,var_pos,var_c,var_ln) on <self:NativeString> */
1496 flat___NativeString_native_set_char___impl(self, var_pos, var_c, var_ln);
1497 RET_LABEL1:(void)0;
1498 }
1499 }
1500 RET_LABEL:;
1501 }
1502 /* method flat#NativeString#native_set_char for (self: NativeString, Int, Char, Int) */
1503 void core__flat___NativeString___native_set_char(char* self, long p0, uint32_t p1, long p2) {
1504 flat___NativeString_native_set_char___impl(self, p0, p1, p2);
1505 RET_LABEL:;
1506 }
1507 /* method flat#Int#to_base for (self: Int, Int, Bool): String */
1508 val* core__flat___Int___to_base(long self, long p0, short int p1) {
1509 val* var /* : String */;
1510 long var_base /* var base: Int */;
1511 short int var_signed /* var signed: Bool */;
1512 long var1 /* : Int */;
1513 long var_l /* var l: Int */;
1514 val* var2 /* : FlatBuffer */;
1515 static val* varonce;
1516 val* var3 /* : String */;
1517 char* var4 /* : NativeString */;
1518 val* var5 /* : String */;
1519 val* var6 /* : String */;
1520 val* var_s /* var s: FlatBuffer */;
1521 val* var7 /* : String */;
1522 var_base = p0;
1523 var_signed = p1;
1524 {
1525 var1 = core___core__Int___digit_count(self, var_base);
1526 }
1527 var_l = var1;
1528 var2 = NEW_core__FlatBuffer(&type_core__FlatBuffer);
1529 if (likely(varonce!=NULL)) {
1530 var3 = varonce;
1531 } else {
1532 var4 = " ";
1533 var5 = core__flat___NativeString___to_s_full(var4, 1l, 1l);
1534 var3 = var5;
1535 varonce = var3;
1536 }
1537 {
1538 var6 = ((val*(*)(val* self, long p0))(var3->class->vft[COLOR_core__abstract_text__String___42d]))(var3, var_l); /* * on <var3:String>*/
1539 }
1540 {
1541 core___core__FlatBuffer___from(var2, var6); /* Direct call flat#FlatBuffer#from on <var2:FlatBuffer>*/
1542 }
1543 var_s = var2;
1544 {
1545 core__abstract_text___Int___fill_buffer(self, var_s, var_base, var_signed); /* Direct call abstract_text#Int#fill_buffer on <self:Int>*/
1546 }
1547 {
1548 var7 = core___core__FlatBuffer___core__abstract_text__Object__to_s(var_s);
1549 }
1550 var = var7;
1551 goto RET_LABEL;
1552 RET_LABEL:;
1553 return var;
1554 }
1555 /* method flat#Int#to_s for (self: Int): String */
1556 val* core__flat___Int___core__abstract_text__Object__to_s(long self) {
1557 val* var /* : String */;
1558 short int var1 /* : Bool */;
1559 short int var3 /* : Bool */;
1560 static val* varonce;
1561 val* var4 /* : String */;
1562 char* var5 /* : NativeString */;
1563 val* var6 /* : String */;
1564 short int var7 /* : Bool */;
1565 short int var9 /* : Bool */;
1566 static val* varonce10;
1567 val* var11 /* : String */;
1568 char* var12 /* : NativeString */;
1569 val* var13 /* : String */;
1570 long var14 /* : Int */;
1571 long var16 /* : Int */;
1572 long var_nslen /* var nslen: Int */;
1573 char* var17 /* : NativeString */;
1574 long var18 /* : Int */;
1575 short int var20 /* : Bool */;
1576 int cltype;
1577 int idtype;
1578 const char* var_class_name;
1579 long var21 /* : Int */;
1580 char* var22 /* : NativeString */;
1581 char* var24 /* : NativeString */;
1582 char* var_ns /* var ns: NativeString */;
1583 long var26 /* : Int */;
1584 short int var28 /* : Bool */;
1585 int cltype29;
1586 int idtype30;
1587 const char* var_class_name31;
1588 long var32 /* : Int */;
1589 val* var34 /* : FlatString */;
1590 {
1591 { /* Inline kernel#Int#== (self,0l) on <self:Int> */
1592 var3 = self == 0l;
1593 var1 = var3;
1594 goto RET_LABEL2;
1595 RET_LABEL2:(void)0;
1596 }
1597 }
1598 if (var1){
1599 if (likely(varonce!=NULL)) {
1600 var4 = varonce;
1601 } else {
1602 var5 = "0";
1603 var6 = core__flat___NativeString___to_s_full(var5, 1l, 1l);
1604 var4 = var6;
1605 varonce = var4;
1606 }
1607 var = var4;
1608 goto RET_LABEL;
1609 } else {
1610 }
1611 {
1612 { /* Inline kernel#Int#== (self,1l) on <self:Int> */
1613 var9 = self == 1l;
1614 var7 = var9;
1615 goto RET_LABEL8;
1616 RET_LABEL8:(void)0;
1617 }
1618 }
1619 if (var7){
1620 if (likely(varonce10!=NULL)) {
1621 var11 = varonce10;
1622 } else {
1623 var12 = "1";
1624 var13 = core__flat___NativeString___to_s_full(var12, 1l, 1l);
1625 var11 = var13;
1626 varonce10 = var11;
1627 }
1628 var = var11;
1629 goto RET_LABEL;
1630 } else {
1631 }
1632 {
1633 { /* Inline abstract_text#Int#int_to_s_len (self) on <self:Int> */
1634 var16 = abstract_text___Int_int_to_s_len___impl(self);
1635 var14 = var16;
1636 goto RET_LABEL15;
1637 RET_LABEL15:(void)0;
1638 }
1639 }
1640 var_nslen = var14;
1641 var17 = NULL/*special!*/;
1642 {
1643 { /* Inline kernel#Int#+ (var_nslen,1l) on <var_nslen:Int> */
1644 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1645 /* <1l:Int> isa OTHER */
1646 var20 = 1; /* easy <1l:Int> isa OTHER*/
1647 if (unlikely(!var20)) {
1648 var_class_name = type_core__Int.name;
1649 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1650 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1651 fatal_exit(1);
1652 }
1653 var21 = var_nslen + 1l;
1654 var18 = var21;
1655 goto RET_LABEL19;
1656 RET_LABEL19:(void)0;
1657 }
1658 }
1659 {
1660 { /* Inline native#NativeString#new (var17,var18) on <var17:NativeString> */
1661 var24 = (char*)nit_alloc(var18);
1662 var22 = var24;
1663 goto RET_LABEL23;
1664 RET_LABEL23:(void)0;
1665 }
1666 }
1667 var_ns = var22;
1668 {
1669 { /* Inline native#NativeString#[]= (var_ns,var_nslen,((unsigned char)0x00)) on <var_ns:NativeString> */
1670 var_ns[var_nslen]=(unsigned char)((unsigned char)0x00);
1671 RET_LABEL25:(void)0;
1672 }
1673 }
1674 {
1675 { /* Inline kernel#Int#+ (var_nslen,1l) on <var_nslen:Int> */
1676 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1677 /* <1l:Int> isa OTHER */
1678 var28 = 1; /* easy <1l:Int> isa OTHER*/
1679 if (unlikely(!var28)) {
1680 var_class_name31 = type_core__Int.name;
1681 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31);
1682 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1683 fatal_exit(1);
1684 }
1685 var32 = var_nslen + 1l;
1686 var26 = var32;
1687 goto RET_LABEL27;
1688 RET_LABEL27:(void)0;
1689 }
1690 }
1691 {
1692 { /* Inline abstract_text#Int#native_int_to_s (self,var_ns,var26) on <self:Int> */
1693 abstract_text___Int_native_int_to_s___impl(self, var_ns, var26);
1694 RET_LABEL33:(void)0;
1695 }
1696 }
1697 var34 = NEW_core__FlatString(&type_core__FlatString);
1698 {
1699 core___core__FlatString___full(var34, var_ns, var_nslen, 0l, var_nslen); /* Direct call flat#FlatString#full on <var34:FlatString>*/
1700 }
1701 var = var34;
1702 goto RET_LABEL;
1703 RET_LABEL:;
1704 return var;
1705 }
1706 /* method flat#Int#to_s for (self: Object): String */
1707 val* VIRTUAL_core__flat___Int___core__abstract_text__Object__to_s(val* self) {
1708 val* var /* : String */;
1709 val* var1 /* : String */;
1710 long var2 /* : Int */;
1711 var2 = (long)(self)>>2;
1712 var1 = core__flat___Int___core__abstract_text__Object__to_s(var2);
1713 var = var1;
1714 RET_LABEL:;
1715 return var;
1716 }
1717 /* method flat#Array#plain_to_s for (self: Array[nullable Object]): String */
1718 val* core__flat___Array___core__abstract_text__Collection__plain_to_s(val* self) {
1719 val* var /* : String */;
1720 long var1 /* : Int */;
1721 long var_l /* var l: Int */;
1722 short int var2 /* : Bool */;
1723 short int var4 /* : Bool */;
1724 static val* varonce;
1725 val* var5 /* : String */;
1726 char* var6 /* : NativeString */;
1727 val* var7 /* : String */;
1728 val* var8 /* : nullable NativeArray[nullable Object] */;
1729 val* var_its /* var its: NativeArray[nullable Object] */;
1730 val* var9 /* : nullable Object */;
1731 val* var11 /* : Object */;
1732 val* var_first /* var first: nullable Object */;
1733 short int var12 /* : Bool */;
1734 short int var14 /* : Bool */;
1735 short int var15 /* : Bool */;
1736 short int var16 /* : Bool */;
1737 static val* varonce17;
1738 val* var18 /* : String */;
1739 char* var19 /* : NativeString */;
1740 val* var20 /* : String */;
1741 val* var21 /* : String */;
1742 val* var22 /* : NativeArray[String] */;
1743 val* var_na /* var na: NativeArray[String] */;
1744 long var_i /* var i: Int */;
1745 long var_sl /* var sl: Int */;
1746 long var_mypos /* var mypos: Int */;
1747 short int var23 /* : Bool */;
1748 short int var25 /* : Bool */;
1749 int cltype;
1750 int idtype;
1751 const char* var_class_name;
1752 short int var26 /* : Bool */;
1753 val* var27 /* : nullable Object */;
1754 val* var29 /* : Object */;
1755 val* var_itsi /* var itsi: nullable Object */;
1756 short int var30 /* : Bool */;
1757 short int var31 /* : Bool */;
1758 long var32 /* : Int */;
1759 short int var34 /* : Bool */;
1760 int cltype35;
1761 int idtype36;
1762 const char* var_class_name37;
1763 long var38 /* : Int */;
1764 val* var39 /* : String */;
1765 val* var_tmp /* var tmp: String */;
1766 long var40 /* : Int */;
1767 long var41 /* : Int */;
1768 short int var43 /* : Bool */;
1769 int cltype44;
1770 int idtype45;
1771 const char* var_class_name46;
1772 long var47 /* : Int */;
1773 short int var49 /* : Bool */;
1774 int cltype50;
1775 int idtype51;
1776 const struct type* type_struct;
1777 const char* var_class_name52;
1778 long var53 /* : Int */;
1779 short int var55 /* : Bool */;
1780 int cltype56;
1781 int idtype57;
1782 const char* var_class_name58;
1783 long var59 /* : Int */;
1784 long var60 /* : Int */;
1785 short int var62 /* : Bool */;
1786 int cltype63;
1787 int idtype64;
1788 const char* var_class_name65;
1789 long var66 /* : Int */;
1790 char* var68 /* : NativeString */;
1791 long var69 /* : Int */;
1792 short int var71 /* : Bool */;
1793 int cltype72;
1794 int idtype73;
1795 const char* var_class_name74;
1796 long var75 /* : Int */;
1797 char* var76 /* : NativeString */;
1798 char* var78 /* : NativeString */;
1799 char* var_ns /* var ns: NativeString */;
1800 long var_off /* var off: Int */;
1801 short int var80 /* : Bool */;
1802 short int var82 /* : Bool */;
1803 int cltype83;
1804 int idtype84;
1805 const char* var_class_name85;
1806 short int var86 /* : Bool */;
1807 val* var87 /* : nullable Object */;
1808 val* var89 /* : Object */;
1809 val* var_tmp90 /* var tmp: String */;
1810 short int var91 /* : Bool */;
1811 int cltype92;
1812 int idtype93;
1813 long var94 /* : Int */;
1814 long var_tpl /* var tpl: Int */;
1815 char* var95 /* : NativeString */;
1816 long var96 /* : Int */;
1817 long var98 /* : Int */;
1818 short int var100 /* : Bool */;
1819 int cltype101;
1820 int idtype102;
1821 const char* var_class_name103;
1822 long var104 /* : Int */;
1823 val* var105 /* : Iterator[FlatText] */;
1824 val* var_ /* var : Iterator[FlatText] */;
1825 val* var106 /* : Iterator[nullable Object] */;
1826 val* var_107 /* var : Iterator[FlatText] */;
1827 short int var108 /* : Bool */;
1828 val* var110 /* : nullable Object */;
1829 val* var_j /* var j: FlatText */;
1830 short int var111 /* : Bool */;
1831 int cltype112;
1832 int idtype113;
1833 const char* var_class_name114;
1834 val* var_s /* var s: FlatString */;
1835 long var115 /* : Int */;
1836 long var_slen /* var slen: Int */;
1837 char* var116 /* : NativeString */;
1838 long var117 /* : Int */;
1839 long var119 /* : Int */;
1840 short int var121 /* : Bool */;
1841 int cltype122;
1842 int idtype123;
1843 const char* var_class_name124;
1844 long var125 /* : Int */;
1845 long var126 /* : Int */;
1846 short int var128 /* : Bool */;
1847 int cltype129;
1848 int idtype130;
1849 const char* var_class_name131;
1850 long var132 /* : Int */;
1851 val* var134 /* : FlatString */;
1852 var1 = self->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <self:Array[nullable Object]> */
1853 var_l = var1;
1854 {
1855 { /* Inline kernel#Int#== (var_l,0l) on <var_l:Int> */
1856 var4 = var_l == 0l;
1857 var2 = var4;
1858 goto RET_LABEL3;
1859 RET_LABEL3:(void)0;
1860 }
1861 }
1862 if (var2){
1863 if (likely(varonce!=NULL)) {
1864 var5 = varonce;
1865 } else {
1866 var6 = "";
1867 var7 = core__flat___NativeString___to_s_full(var6, 0l, 0l);
1868 var5 = var7;
1869 varonce = var5;
1870 }
1871 var = var5;
1872 goto RET_LABEL;
1873 } else {
1874 }
1875 var8 = self->attrs[COLOR_core__array__Array___items].val; /* _items on <self:Array[nullable Object]> */
1876 if (unlikely(var8 == NULL)) {
1877 PRINT_ERROR("Runtime error: %s", "Cast failed");
1878 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 1315);
1879 fatal_exit(1);
1880 }
1881 var_its = var8;
1882 {
1883 { /* Inline array#NativeArray#[] (var_its,0l) on <var_its:NativeArray[nullable Object]> */
1884 var11 = ((struct instance_core__NativeArray*)var_its)->values[0l];
1885 var9 = var11;
1886 goto RET_LABEL10;
1887 RET_LABEL10:(void)0;
1888 }
1889 }
1890 var_first = var9;
1891 {
1892 { /* Inline kernel#Int#== (var_l,1l) on <var_l:Int> */
1893 var14 = var_l == 1l;
1894 var12 = var14;
1895 goto RET_LABEL13;
1896 RET_LABEL13:(void)0;
1897 }
1898 }
1899 if (var12){
1900 if (var_first == NULL) {
1901 var15 = 1; /* is null */
1902 } else {
1903 var15 = 0; /* arg is null but recv is not */
1904 }
1905 if (0) {
1906 var16 = ((short int(*)(val* self, val* p0))((((long)var_first&3)?class_info[((long)var_first&3)]:var_first->class)->vft[COLOR_core__kernel__Object___61d_61d]))(var_first, ((val*)NULL)); /* == on <var_first:nullable Object>*/
1907 var15 = var16;
1908 }
1909 if (var15){
1910 if (likely(varonce17!=NULL)) {
1911 var18 = varonce17;
1912 } else {
1913 var19 = "";
1914 var20 = core__flat___NativeString___to_s_full(var19, 0l, 0l);
1915 var18 = var20;
1916 varonce17 = var18;
1917 }
1918 var = var18;
1919 goto RET_LABEL;
1920 } else {
1921 {
1922 var21 = ((val*(*)(val* self))((((long)var_first&3)?class_info[((long)var_first&3)]:var_first->class)->vft[COLOR_core__abstract_text__Object__to_s]))(var_first); /* to_s on <var_first:nullable Object(Object)>*/
1923 }
1924 var = var21;
1925 goto RET_LABEL;
1926 }
1927 } else {
1928 }
1929 var22 = NEW_core__NativeArray(var_l, &type_core__NativeArray__core__String);
1930 var_na = var22;
1931 var_i = 0l;
1932 var_sl = 0l;
1933 var_mypos = 0l;
1934 for(;;) {
1935 {
1936 { /* Inline kernel#Int#< (var_i,var_l) on <var_i:Int> */
1937 /* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
1938 /* <var_l:Int> isa OTHER */
1939 var25 = 1; /* easy <var_l:Int> isa OTHER*/
1940 if (unlikely(!var25)) {
1941 var_class_name = type_core__Int.name;
1942 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1943 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1944 fatal_exit(1);
1945 }
1946 var26 = var_i < var_l;
1947 var23 = var26;
1948 goto RET_LABEL24;
1949 RET_LABEL24:(void)0;
1950 }
1951 }
1952 if (var23){
1953 {
1954 { /* Inline array#NativeArray#[] (var_its,var_i) on <var_its:NativeArray[nullable Object]> */
1955 var29 = ((struct instance_core__NativeArray*)var_its)->values[var_i];
1956 var27 = var29;
1957 goto RET_LABEL28;
1958 RET_LABEL28:(void)0;
1959 }
1960 }
1961 var_itsi = var27;
1962 if (var_itsi == NULL) {
1963 var30 = 1; /* is null */
1964 } else {
1965 var30 = 0; /* arg is null but recv is not */
1966 }
1967 if (0) {
1968 var31 = ((short int(*)(val* self, val* p0))((((long)var_itsi&3)?class_info[((long)var_itsi&3)]:var_itsi->class)->vft[COLOR_core__kernel__Object___61d_61d]))(var_itsi, ((val*)NULL)); /* == on <var_itsi:nullable Object>*/
1969 var30 = var31;
1970 }
1971 if (var30){
1972 {
1973 { /* Inline kernel#Int#+ (var_i,1l) on <var_i:Int> */
1974 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1975 /* <1l:Int> isa OTHER */
1976 var34 = 1; /* easy <1l:Int> isa OTHER*/
1977 if (unlikely(!var34)) {
1978 var_class_name37 = type_core__Int.name;
1979 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37);
1980 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1981 fatal_exit(1);
1982 }
1983 var38 = var_i + 1l;
1984 var32 = var38;
1985 goto RET_LABEL33;
1986 RET_LABEL33:(void)0;
1987 }
1988 }
1989 var_i = var32;
1990 goto BREAK_label;
1991 } else {
1992 }
1993 {
1994 var39 = ((val*(*)(val* self))((((long)var_itsi&3)?class_info[((long)var_itsi&3)]:var_itsi->class)->vft[COLOR_core__abstract_text__Object__to_s]))(var_itsi); /* to_s on <var_itsi:nullable Object(Object)>*/
1995 }
1996 var_tmp = var39;
1997 {
1998 var40 = ((long(*)(val* self))(var_tmp->class->vft[COLOR_core__abstract_text__Text__bytelen]))(var_tmp); /* bytelen on <var_tmp:String>*/
1999 }
2000 {
2001 { /* Inline kernel#Int#+ (var_sl,var40) on <var_sl:Int> */
2002 /* Covariant cast for argument 0 (i) <var40:Int> isa OTHER */
2003 /* <var40:Int> isa OTHER */
2004 var43 = 1; /* easy <var40:Int> isa OTHER*/
2005 if (unlikely(!var43)) {
2006 var_class_name46 = type_core__Int.name;
2007 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name46);
2008 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2009 fatal_exit(1);
2010 }
2011 var47 = var_sl + var40;
2012 var41 = var47;
2013 goto RET_LABEL42;
2014 RET_LABEL42:(void)0;
2015 }
2016 }
2017 var_sl = var41;
2018 {
2019 { /* Inline array#NativeArray#[]= (var_na,var_mypos,var_tmp) on <var_na:NativeArray[String]> */
2020 /* Covariant cast for argument 1 (item) <var_tmp:String> isa E */
2021 /* <var_tmp:String> isa E */
2022 type_struct = var_na->type->resolution_table->types[COLOR_core__NativeArray___35dE];
2023 cltype50 = type_struct->color;
2024 idtype51 = type_struct->id;
2025 if(cltype50 >= var_tmp->type->table_size) {
2026 var49 = 0;
2027 } else {
2028 var49 = var_tmp->type->type_table[cltype50] == idtype51;
2029 }
2030 if (unlikely(!var49)) {
2031 var_class_name52 = var_tmp == NULL ? "null" : var_tmp->type->name;
2032 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name52);
2033 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 988);
2034 fatal_exit(1);
2035 }
2036 ((struct instance_core__NativeArray*)var_na)->values[var_mypos]=var_tmp;
2037 RET_LABEL48:(void)0;
2038 }
2039 }
2040 {
2041 { /* Inline kernel#Int#+ (var_i,1l) on <var_i:Int> */
2042 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2043 /* <1l:Int> isa OTHER */
2044 var55 = 1; /* easy <1l:Int> isa OTHER*/
2045 if (unlikely(!var55)) {
2046 var_class_name58 = type_core__Int.name;
2047 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name58);
2048 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2049 fatal_exit(1);
2050 }
2051 var59 = var_i + 1l;
2052 var53 = var59;
2053 goto RET_LABEL54;
2054 RET_LABEL54:(void)0;
2055 }
2056 }
2057 var_i = var53;
2058 {
2059 { /* Inline kernel#Int#+ (var_mypos,1l) on <var_mypos:Int> */
2060 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2061 /* <1l:Int> isa OTHER */
2062 var62 = 1; /* easy <1l:Int> isa OTHER*/
2063 if (unlikely(!var62)) {
2064 var_class_name65 = type_core__Int.name;
2065 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name65);
2066 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2067 fatal_exit(1);
2068 }
2069 var66 = var_mypos + 1l;
2070 var60 = var66;
2071 goto RET_LABEL61;
2072 RET_LABEL61:(void)0;
2073 }
2074 }
2075 var_mypos = var60;
2076 } else {
2077 goto BREAK_label67;
2078 }
2079 BREAK_label: (void)0;
2080 }
2081 BREAK_label67: (void)0;
2082 var68 = NULL/*special!*/;
2083 {
2084 { /* Inline kernel#Int#+ (var_sl,1l) on <var_sl:Int> */
2085 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2086 /* <1l:Int> isa OTHER */
2087 var71 = 1; /* easy <1l:Int> isa OTHER*/
2088 if (unlikely(!var71)) {
2089 var_class_name74 = type_core__Int.name;
2090 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name74);
2091 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2092 fatal_exit(1);
2093 }
2094 var75 = var_sl + 1l;
2095 var69 = var75;
2096 goto RET_LABEL70;
2097 RET_LABEL70:(void)0;
2098 }
2099 }
2100 {
2101 { /* Inline native#NativeString#new (var68,var69) on <var68:NativeString> */
2102 var78 = (char*)nit_alloc(var69);
2103 var76 = var78;
2104 goto RET_LABEL77;
2105 RET_LABEL77:(void)0;
2106 }
2107 }
2108 var_ns = var76;
2109 {
2110 { /* Inline native#NativeString#[]= (var_ns,var_sl,((unsigned char)0x00)) on <var_ns:NativeString> */
2111 var_ns[var_sl]=(unsigned char)((unsigned char)0x00);
2112 RET_LABEL79:(void)0;
2113 }
2114 }
2115 var_i = 0l;
2116 var_off = 0l;
2117 for(;;) {
2118 {
2119 { /* Inline kernel#Int#< (var_i,var_mypos) on <var_i:Int> */
2120 /* Covariant cast for argument 0 (i) <var_mypos:Int> isa OTHER */
2121 /* <var_mypos:Int> isa OTHER */
2122 var82 = 1; /* easy <var_mypos:Int> isa OTHER*/
2123 if (unlikely(!var82)) {
2124 var_class_name85 = type_core__Int.name;
2125 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name85);
2126 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2127 fatal_exit(1);
2128 }
2129 var86 = var_i < var_mypos;
2130 var80 = var86;
2131 goto RET_LABEL81;
2132 RET_LABEL81:(void)0;
2133 }
2134 }
2135 if (var80){
2136 {
2137 { /* Inline array#NativeArray#[] (var_na,var_i) on <var_na:NativeArray[String]> */
2138 var89 = ((struct instance_core__NativeArray*)var_na)->values[var_i];
2139 var87 = var89;
2140 goto RET_LABEL88;
2141 RET_LABEL88:(void)0;
2142 }
2143 }
2144 var_tmp90 = var87;
2145 /* <var_tmp90:String> isa FlatString */
2146 cltype92 = type_core__FlatString.color;
2147 idtype93 = type_core__FlatString.id;
2148 if(cltype92 >= var_tmp90->type->table_size) {
2149 var91 = 0;
2150 } else {
2151 var91 = var_tmp90->type->type_table[cltype92] == idtype93;
2152 }
2153 if (var91){
2154 var94 = var_tmp90->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <var_tmp90:String(FlatString)> */
2155 var_tpl = var94;
2156 var95 = var_tmp90->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var_tmp90:String(FlatString)> */
2157 var96 = var_tmp90->attrs[COLOR_core__flat__FlatString___first_byte].l; /* _first_byte on <var_tmp90:String(FlatString)> */
2158 {
2159 { /* Inline native#NativeString#copy_to (var95,var_ns,var_tpl,var96,var_off) on <var95:NativeString> */
2160 memmove(var_ns+var_off,var95+var96,var_tpl);
2161 RET_LABEL97:(void)0;
2162 }
2163 }
2164 {
2165 { /* Inline kernel#Int#+ (var_off,var_tpl) on <var_off:Int> */
2166 /* Covariant cast for argument 0 (i) <var_tpl:Int> isa OTHER */
2167 /* <var_tpl:Int> isa OTHER */
2168 var100 = 1; /* easy <var_tpl:Int> isa OTHER*/
2169 if (unlikely(!var100)) {
2170 var_class_name103 = type_core__Int.name;
2171 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name103);
2172 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2173 fatal_exit(1);
2174 }
2175 var104 = var_off + var_tpl;
2176 var98 = var104;
2177 goto RET_LABEL99;
2178 RET_LABEL99:(void)0;
2179 }
2180 }
2181 var_off = var98;
2182 } else {
2183 {
2184 var105 = ((val*(*)(val* self))(var_tmp90->class->vft[COLOR_core__abstract_text__Text__substrings]))(var_tmp90); /* substrings on <var_tmp90:String>*/
2185 }
2186 var_ = var105;
2187 {
2188 var106 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_core__abstract_collection__Iterator__iterator]))(var_); /* iterator on <var_:Iterator[FlatText]>*/
2189 }
2190 var_107 = var106;
2191 for(;;) {
2192 {
2193 var108 = ((short int(*)(val* self))((((long)var_107&3)?class_info[((long)var_107&3)]:var_107->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_107); /* is_ok on <var_107:Iterator[FlatText]>*/
2194 }
2195 if (var108){
2196 } else {
2197 goto BREAK_label109;
2198 }
2199 {
2200 var110 = ((val*(*)(val* self))((((long)var_107&3)?class_info[((long)var_107&3)]:var_107->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_107); /* item on <var_107:Iterator[FlatText]>*/
2201 }
2202 var_j = var110;
2203 /* <var_j:FlatText> isa FlatString */
2204 cltype112 = type_core__FlatString.color;
2205 idtype113 = type_core__FlatString.id;
2206 if(cltype112 >= var_j->type->table_size) {
2207 var111 = 0;
2208 } else {
2209 var111 = var_j->type->type_table[cltype112] == idtype113;
2210 }
2211 if (unlikely(!var111)) {
2212 var_class_name114 = var_j == NULL ? "null" : var_j->type->name;
2213 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "FlatString", var_class_name114);
2214 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 1346);
2215 fatal_exit(1);
2216 }
2217 var_s = var_j;
2218 var115 = var_s->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <var_s:FlatString> */
2219 var_slen = var115;
2220 var116 = var_s->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var_s:FlatString> */
2221 var117 = var_s->attrs[COLOR_core__flat__FlatString___first_byte].l; /* _first_byte on <var_s:FlatString> */
2222 {
2223 { /* Inline native#NativeString#copy_to (var116,var_ns,var_slen,var117,var_off) on <var116:NativeString> */
2224 memmove(var_ns+var_off,var116+var117,var_slen);
2225 RET_LABEL118:(void)0;
2226 }
2227 }
2228 {
2229 { /* Inline kernel#Int#+ (var_off,var_slen) on <var_off:Int> */
2230 /* Covariant cast for argument 0 (i) <var_slen:Int> isa OTHER */
2231 /* <var_slen:Int> isa OTHER */
2232 var121 = 1; /* easy <var_slen:Int> isa OTHER*/
2233 if (unlikely(!var121)) {
2234 var_class_name124 = type_core__Int.name;
2235 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name124);
2236 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2237 fatal_exit(1);
2238 }
2239 var125 = var_off + var_slen;
2240 var119 = var125;
2241 goto RET_LABEL120;
2242 RET_LABEL120:(void)0;
2243 }
2244 }
2245 var_off = var119;
2246 {
2247 ((void(*)(val* self))((((long)var_107&3)?class_info[((long)var_107&3)]:var_107->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_107); /* next on <var_107:Iterator[FlatText]>*/
2248 }
2249 }
2250 BREAK_label109: (void)0;
2251 {
2252 ((void(*)(val* self))((((long)var_107&3)?class_info[((long)var_107&3)]:var_107->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_107); /* finish on <var_107:Iterator[FlatText]>*/
2253 }
2254 }
2255 {
2256 { /* Inline kernel#Int#+ (var_i,1l) on <var_i:Int> */
2257 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2258 /* <1l:Int> isa OTHER */
2259 var128 = 1; /* easy <1l:Int> isa OTHER*/
2260 if (unlikely(!var128)) {
2261 var_class_name131 = type_core__Int.name;
2262 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name131);
2263 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2264 fatal_exit(1);
2265 }
2266 var132 = var_i + 1l;
2267 var126 = var132;
2268 goto RET_LABEL127;
2269 RET_LABEL127:(void)0;
2270 }
2271 }
2272 var_i = var126;
2273 } else {
2274 goto BREAK_label133;
2275 }
2276 }
2277 BREAK_label133: (void)0;
2278 var134 = NEW_core__FlatString(&type_core__FlatString);
2279 {
2280 core___core__FlatString___with_infos(var134, var_ns, var_sl, 0l); /* Direct call flat#FlatString#with_infos on <var134:FlatString>*/
2281 }
2282 var = var134;
2283 goto RET_LABEL;
2284 RET_LABEL:;
2285 return var;
2286 }
2287 /* method flat#NativeArray#native_to_s for (self: NativeArray[nullable Object]): String */
2288 val* core__flat___NativeArray___native_to_s(val* self) {
2289 val* var /* : String */;
2290 short int var1 /* : Bool */;
2291 int cltype;
2292 int idtype;
2293 long var2 /* : Int */;
2294 long var4 /* : Int */;
2295 long var_l /* var l: Int */;
2296 val* var_na /* var na: NativeArray[String] */;
2297 long var_i /* var i: Int */;
2298 long var_sl /* var sl: Int */;
2299 long var_mypos /* var mypos: Int */;
2300 short int var5 /* : Bool */;
2301 short int var7 /* : Bool */;
2302 int cltype8;
2303 int idtype9;
2304 const char* var_class_name;
2305 short int var10 /* : Bool */;
2306 val* var11 /* : nullable Object */;
2307 val* var13 /* : Object */;
2308 long var14 /* : Int */;
2309 long var15 /* : Int */;
2310 short int var17 /* : Bool */;
2311 int cltype18;
2312 int idtype19;
2313 const char* var_class_name20;
2314 long var21 /* : Int */;
2315 long var22 /* : Int */;
2316 short int var24 /* : Bool */;
2317 int cltype25;
2318 int idtype26;
2319 const char* var_class_name27;
2320 long var28 /* : Int */;
2321 long var29 /* : Int */;
2322 short int var31 /* : Bool */;
2323 int cltype32;
2324 int idtype33;
2325 const char* var_class_name34;
2326 long var35 /* : Int */;
2327 char* var36 /* : NativeString */;
2328 long var37 /* : Int */;
2329 short int var39 /* : Bool */;
2330 int cltype40;
2331 int idtype41;
2332 const char* var_class_name42;
2333 long var43 /* : Int */;
2334 char* var44 /* : NativeString */;
2335 char* var46 /* : NativeString */;
2336 char* var_ns /* var ns: NativeString */;
2337 long var_off /* var off: Int */;
2338 short int var48 /* : Bool */;
2339 short int var50 /* : Bool */;
2340 int cltype51;
2341 int idtype52;
2342 const char* var_class_name53;
2343 short int var54 /* : Bool */;
2344 val* var55 /* : nullable Object */;
2345 val* var57 /* : Object */;
2346 val* var_tmp /* var tmp: String */;
2347 short int var58 /* : Bool */;
2348 int cltype59;
2349 int idtype60;
2350 long var61 /* : Int */;
2351 long var_tpl /* var tpl: Int */;
2352 char* var62 /* : NativeString */;
2353 long var63 /* : Int */;
2354 long var65 /* : Int */;
2355 short int var67 /* : Bool */;
2356 int cltype68;
2357 int idtype69;
2358 const char* var_class_name70;
2359 long var71 /* : Int */;
2360 val* var72 /* : Iterator[FlatText] */;
2361 val* var_ /* var : Iterator[FlatText] */;
2362 val* var73 /* : Iterator[nullable Object] */;
2363 val* var_74 /* var : Iterator[FlatText] */;
2364 short int var75 /* : Bool */;
2365 val* var77 /* : nullable Object */;
2366 val* var_j /* var j: FlatText */;
2367 short int var78 /* : Bool */;
2368 int cltype79;
2369 int idtype80;
2370 const char* var_class_name81;
2371 val* var_s /* var s: FlatString */;
2372 long var82 /* : Int */;
2373 long var_slen /* var slen: Int */;
2374 char* var83 /* : NativeString */;
2375 long var84 /* : Int */;
2376 long var86 /* : Int */;
2377 short int var88 /* : Bool */;
2378 int cltype89;
2379 int idtype90;
2380 const char* var_class_name91;
2381 long var92 /* : Int */;
2382 long var93 /* : Int */;
2383 short int var95 /* : Bool */;
2384 int cltype96;
2385 int idtype97;
2386 const char* var_class_name98;
2387 long var99 /* : Int */;
2388 val* var101 /* : FlatString */;
2389 /* <self:NativeArray[nullable Object]> isa NativeArray[String] */
2390 cltype = type_core__NativeArray__core__String.color;
2391 idtype = type_core__NativeArray__core__String.id;
2392 if(cltype >= self->type->table_size) {
2393 var1 = 0;
2394 } else {
2395 var1 = self->type->type_table[cltype] == idtype;
2396 }
2397 if (unlikely(!var1)) {
2398 PRINT_ERROR("Runtime error: %s", "Assert failed");
2399 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 1360);
2400 fatal_exit(1);
2401 }
2402 {
2403 { /* Inline array#NativeArray#length (self) on <self:NativeArray[nullable Object](NativeArray[String])> */
2404 var4 = ((struct instance_core__NativeArray*)self)->length;
2405 var2 = var4;
2406 goto RET_LABEL3;
2407 RET_LABEL3:(void)0;
2408 }
2409 }
2410 var_l = var2;
2411 var_na = self;
2412 var_i = 0l;
2413 var_sl = 0l;
2414 var_mypos = 0l;
2415 for(;;) {
2416 {
2417 { /* Inline kernel#Int#< (var_i,var_l) on <var_i:Int> */
2418 /* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
2419 /* <var_l:Int> isa OTHER */
2420 var7 = 1; /* easy <var_l:Int> isa OTHER*/
2421 if (unlikely(!var7)) {
2422 var_class_name = type_core__Int.name;
2423 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2424 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2425 fatal_exit(1);
2426 }
2427 var10 = var_i < var_l;
2428 var5 = var10;
2429 goto RET_LABEL6;
2430 RET_LABEL6:(void)0;
2431 }
2432 }
2433 if (var5){
2434 {
2435 { /* Inline array#NativeArray#[] (var_na,var_i) on <var_na:NativeArray[String]> */
2436 var13 = ((struct instance_core__NativeArray*)var_na)->values[var_i];
2437 var11 = var13;
2438 goto RET_LABEL12;
2439 RET_LABEL12:(void)0;
2440 }
2441 }
2442 {
2443 var14 = ((long(*)(val* self))(var11->class->vft[COLOR_core__abstract_text__Text__bytelen]))(var11); /* bytelen on <var11:nullable Object(String)>*/
2444 }
2445 {
2446 { /* Inline kernel#Int#+ (var_sl,var14) on <var_sl:Int> */
2447 /* Covariant cast for argument 0 (i) <var14:Int> isa OTHER */
2448 /* <var14:Int> isa OTHER */
2449 var17 = 1; /* easy <var14:Int> isa OTHER*/
2450 if (unlikely(!var17)) {
2451 var_class_name20 = type_core__Int.name;
2452 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
2453 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2454 fatal_exit(1);
2455 }
2456 var21 = var_sl + var14;
2457 var15 = var21;
2458 goto RET_LABEL16;
2459 RET_LABEL16:(void)0;
2460 }
2461 }
2462 var_sl = var15;
2463 {
2464 { /* Inline kernel#Int#+ (var_i,1l) on <var_i:Int> */
2465 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2466 /* <1l:Int> isa OTHER */
2467 var24 = 1; /* easy <1l:Int> isa OTHER*/
2468 if (unlikely(!var24)) {
2469 var_class_name27 = type_core__Int.name;
2470 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
2471 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2472 fatal_exit(1);
2473 }
2474 var28 = var_i + 1l;
2475 var22 = var28;
2476 goto RET_LABEL23;
2477 RET_LABEL23:(void)0;
2478 }
2479 }
2480 var_i = var22;
2481 {
2482 { /* Inline kernel#Int#+ (var_mypos,1l) on <var_mypos:Int> */
2483 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2484 /* <1l:Int> isa OTHER */
2485 var31 = 1; /* easy <1l:Int> isa OTHER*/
2486 if (unlikely(!var31)) {
2487 var_class_name34 = type_core__Int.name;
2488 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
2489 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2490 fatal_exit(1);
2491 }
2492 var35 = var_mypos + 1l;
2493 var29 = var35;
2494 goto RET_LABEL30;
2495 RET_LABEL30:(void)0;
2496 }
2497 }
2498 var_mypos = var29;
2499 } else {
2500 goto BREAK_label;
2501 }
2502 }
2503 BREAK_label: (void)0;
2504 var36 = NULL/*special!*/;
2505 {
2506 { /* Inline kernel#Int#+ (var_sl,1l) on <var_sl:Int> */
2507 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2508 /* <1l:Int> isa OTHER */
2509 var39 = 1; /* easy <1l:Int> isa OTHER*/
2510 if (unlikely(!var39)) {
2511 var_class_name42 = type_core__Int.name;
2512 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name42);
2513 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2514 fatal_exit(1);
2515 }
2516 var43 = var_sl + 1l;
2517 var37 = var43;
2518 goto RET_LABEL38;
2519 RET_LABEL38:(void)0;
2520 }
2521 }
2522 {
2523 { /* Inline native#NativeString#new (var36,var37) on <var36:NativeString> */
2524 var46 = (char*)nit_alloc(var37);
2525 var44 = var46;
2526 goto RET_LABEL45;
2527 RET_LABEL45:(void)0;
2528 }
2529 }
2530 var_ns = var44;
2531 {
2532 { /* Inline native#NativeString#[]= (var_ns,var_sl,((unsigned char)0x00)) on <var_ns:NativeString> */
2533 var_ns[var_sl]=(unsigned char)((unsigned char)0x00);
2534 RET_LABEL47:(void)0;
2535 }
2536 }
2537 var_i = 0l;
2538 var_off = 0l;
2539 for(;;) {
2540 {
2541 { /* Inline kernel#Int#< (var_i,var_mypos) on <var_i:Int> */
2542 /* Covariant cast for argument 0 (i) <var_mypos:Int> isa OTHER */
2543 /* <var_mypos:Int> isa OTHER */
2544 var50 = 1; /* easy <var_mypos:Int> isa OTHER*/
2545 if (unlikely(!var50)) {
2546 var_class_name53 = type_core__Int.name;
2547 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name53);
2548 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2549 fatal_exit(1);
2550 }
2551 var54 = var_i < var_mypos;
2552 var48 = var54;
2553 goto RET_LABEL49;
2554 RET_LABEL49:(void)0;
2555 }
2556 }
2557 if (var48){
2558 {
2559 { /* Inline array#NativeArray#[] (var_na,var_i) on <var_na:NativeArray[String]> */
2560 var57 = ((struct instance_core__NativeArray*)var_na)->values[var_i];
2561 var55 = var57;
2562 goto RET_LABEL56;
2563 RET_LABEL56:(void)0;
2564 }
2565 }
2566 var_tmp = var55;
2567 /* <var_tmp:String> isa FlatString */
2568 cltype59 = type_core__FlatString.color;
2569 idtype60 = type_core__FlatString.id;
2570 if(cltype59 >= var_tmp->type->table_size) {
2571 var58 = 0;
2572 } else {
2573 var58 = var_tmp->type->type_table[cltype59] == idtype60;
2574 }
2575 if (var58){
2576 var61 = var_tmp->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <var_tmp:String(FlatString)> */
2577 var_tpl = var61;
2578 var62 = var_tmp->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var_tmp:String(FlatString)> */
2579 var63 = var_tmp->attrs[COLOR_core__flat__FlatString___first_byte].l; /* _first_byte on <var_tmp:String(FlatString)> */
2580 {
2581 { /* Inline native#NativeString#copy_to (var62,var_ns,var_tpl,var63,var_off) on <var62:NativeString> */
2582 memmove(var_ns+var_off,var62+var63,var_tpl);
2583 RET_LABEL64:(void)0;
2584 }
2585 }
2586 {
2587 { /* Inline kernel#Int#+ (var_off,var_tpl) on <var_off:Int> */
2588 /* Covariant cast for argument 0 (i) <var_tpl:Int> isa OTHER */
2589 /* <var_tpl:Int> isa OTHER */
2590 var67 = 1; /* easy <var_tpl:Int> isa OTHER*/
2591 if (unlikely(!var67)) {
2592 var_class_name70 = type_core__Int.name;
2593 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name70);
2594 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2595 fatal_exit(1);
2596 }
2597 var71 = var_off + var_tpl;
2598 var65 = var71;
2599 goto RET_LABEL66;
2600 RET_LABEL66:(void)0;
2601 }
2602 }
2603 var_off = var65;
2604 } else {
2605 {
2606 var72 = ((val*(*)(val* self))(var_tmp->class->vft[COLOR_core__abstract_text__Text__substrings]))(var_tmp); /* substrings on <var_tmp:String>*/
2607 }
2608 var_ = var72;
2609 {
2610 var73 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_core__abstract_collection__Iterator__iterator]))(var_); /* iterator on <var_:Iterator[FlatText]>*/
2611 }
2612 var_74 = var73;
2613 for(;;) {
2614 {
2615 var75 = ((short int(*)(val* self))((((long)var_74&3)?class_info[((long)var_74&3)]:var_74->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_74); /* is_ok on <var_74:Iterator[FlatText]>*/
2616 }
2617 if (var75){
2618 } else {
2619 goto BREAK_label76;
2620 }
2621 {
2622 var77 = ((val*(*)(val* self))((((long)var_74&3)?class_info[((long)var_74&3)]:var_74->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_74); /* item on <var_74:Iterator[FlatText]>*/
2623 }
2624 var_j = var77;
2625 /* <var_j:FlatText> isa FlatString */
2626 cltype79 = type_core__FlatString.color;
2627 idtype80 = type_core__FlatString.id;
2628 if(cltype79 >= var_j->type->table_size) {
2629 var78 = 0;
2630 } else {
2631 var78 = var_j->type->type_table[cltype79] == idtype80;
2632 }
2633 if (unlikely(!var78)) {
2634 var_class_name81 = var_j == NULL ? "null" : var_j->type->name;
2635 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "FlatString", var_class_name81);
2636 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 1383);
2637 fatal_exit(1);
2638 }
2639 var_s = var_j;
2640 var82 = var_s->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <var_s:FlatString> */
2641 var_slen = var82;
2642 var83 = var_s->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var_s:FlatString> */
2643 var84 = var_s->attrs[COLOR_core__flat__FlatString___first_byte].l; /* _first_byte on <var_s:FlatString> */
2644 {
2645 { /* Inline native#NativeString#copy_to (var83,var_ns,var_slen,var84,var_off) on <var83:NativeString> */
2646 memmove(var_ns+var_off,var83+var84,var_slen);
2647 RET_LABEL85:(void)0;
2648 }
2649 }
2650 {
2651 { /* Inline kernel#Int#+ (var_off,var_slen) on <var_off:Int> */
2652 /* Covariant cast for argument 0 (i) <var_slen:Int> isa OTHER */
2653 /* <var_slen:Int> isa OTHER */
2654 var88 = 1; /* easy <var_slen:Int> isa OTHER*/
2655 if (unlikely(!var88)) {
2656 var_class_name91 = type_core__Int.name;
2657 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name91);
2658 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2659 fatal_exit(1);
2660 }
2661 var92 = var_off + var_slen;
2662 var86 = var92;
2663 goto RET_LABEL87;
2664 RET_LABEL87:(void)0;
2665 }
2666 }
2667 var_off = var86;
2668 {
2669 ((void(*)(val* self))((((long)var_74&3)?class_info[((long)var_74&3)]:var_74->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_74); /* next on <var_74:Iterator[FlatText]>*/
2670 }
2671 }
2672 BREAK_label76: (void)0;
2673 {
2674 ((void(*)(val* self))((((long)var_74&3)?class_info[((long)var_74&3)]:var_74->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_74); /* finish on <var_74:Iterator[FlatText]>*/
2675 }
2676 }
2677 {
2678 { /* Inline kernel#Int#+ (var_i,1l) on <var_i:Int> */
2679 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2680 /* <1l:Int> isa OTHER */
2681 var95 = 1; /* easy <1l:Int> isa OTHER*/
2682 if (unlikely(!var95)) {
2683 var_class_name98 = type_core__Int.name;
2684 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name98);
2685 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2686 fatal_exit(1);
2687 }
2688 var99 = var_i + 1l;
2689 var93 = var99;
2690 goto RET_LABEL94;
2691 RET_LABEL94:(void)0;
2692 }
2693 }
2694 var_i = var93;
2695 } else {
2696 goto BREAK_label100;
2697 }
2698 }
2699 BREAK_label100: (void)0;
2700 var101 = NEW_core__FlatString(&type_core__FlatString);
2701 {
2702 core___core__FlatString___with_infos(var101, var_ns, var_sl, 0l); /* Direct call flat#FlatString#with_infos on <var101:FlatString>*/
2703 }
2704 var = var101;
2705 goto RET_LABEL;
2706 RET_LABEL:;
2707 return var;
2708 }
2709 /* method flat#Map#join for (self: Map[nullable Object, nullable Object], String, String): String */
2710 val* core__flat___Map___join(val* self, val* p0, val* p1) {
2711 val* var /* : String */;
2712 val* var_sep /* var sep: String */;
2713 val* var_couple_sep /* var couple_sep: String */;
2714 short int var1 /* : Bool */;
2715 static val* varonce;
2716 val* var2 /* : String */;
2717 char* var3 /* : NativeString */;
2718 val* var4 /* : String */;
2719 val* var5 /* : Buffer */;
2720 val* var6 /* : Buffer */;
2721 val* var_s /* var s: Buffer */;
2722 val* var7 /* : MapIterator[nullable Object, nullable Object] */;
2723 val* var_i /* var i: MapIterator[nullable Object, nullable Object] */;
2724 val* var8 /* : nullable Object */;
2725 val* var_k /* var k: nullable Object */;
2726 val* var9 /* : nullable Object */;
2727 val* var_e /* var e: nullable Object */;
2728 val* var11 /* : NativeArray[String] */;
2729 static val* varonce10;
2730 val* var12 /* : Object */;
2731 static val* varonce13;
2732 val* var14 /* : String */;
2733 char* var15 /* : NativeString */;
2734 val* var16 /* : String */;
2735 val* var17 /* : String */;
2736 val* var18 /* : Object */;
2737 static val* varonce19;
2738 val* var20 /* : String */;
2739 char* var21 /* : NativeString */;
2740 val* var22 /* : String */;
2741 val* var23 /* : String */;
2742 val* var24 /* : String */;
2743 short int var25 /* : Bool */;
2744 val* var26 /* : nullable Object */;
2745 val* var27 /* : nullable Object */;
2746 val* var29 /* : NativeArray[String] */;
2747 static val* varonce28;
2748 val* var30 /* : Object */;
2749 static val* varonce31;
2750 val* var32 /* : String */;
2751 char* var33 /* : NativeString */;
2752 val* var34 /* : String */;
2753 val* var35 /* : String */;
2754 val* var36 /* : Object */;
2755 static val* varonce37;
2756 val* var38 /* : String */;
2757 char* var39 /* : NativeString */;
2758 val* var40 /* : String */;
2759 val* var41 /* : String */;
2760 val* var42 /* : String */;
2761 val* var43 /* : String */;
2762 var_sep = p0;
2763 var_couple_sep = p1;
2764 {
2765 var1 = ((short int(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_core__abstract_collection__MapRead__is_empty]))(self); /* is_empty on <self:Map[nullable Object, nullable Object]>*/
2766 }
2767 if (var1){
2768 if (likely(varonce!=NULL)) {
2769 var2 = varonce;
2770 } else {
2771 var3 = "";
2772 var4 = core__flat___NativeString___to_s_full(var3, 0l, 0l);
2773 var2 = var4;
2774 varonce = var2;
2775 }
2776 var = var2;
2777 goto RET_LABEL;
2778 } else {
2779 }
2780 var5 = NEW_core__Buffer(&type_core__Buffer);
2781 {
2782 var6 = core__flat___Buffer___new(var5);
2783 }
2784 var_s = var6;
2785 {
2786 var7 = ((val*(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_core__abstract_collection__MapRead__iterator]))(self); /* iterator on <self:Map[nullable Object, nullable Object]>*/
2787 }
2788 var_i = var7;
2789 {
2790 var8 = ((val*(*)(val* self))((((long)var_i&3)?class_info[((long)var_i&3)]:var_i->class)->vft[COLOR_core__abstract_collection__MapIterator__key]))(var_i); /* key on <var_i:MapIterator[nullable Object, nullable Object]>*/
2791 }
2792 var_k = var8;
2793 {
2794 var9 = ((val*(*)(val* self))((((long)var_i&3)?class_info[((long)var_i&3)]:var_i->class)->vft[COLOR_core__abstract_collection__MapIterator__item]))(var_i); /* item on <var_i:MapIterator[nullable Object, nullable Object]>*/
2795 }
2796 var_e = var9;
2797 if (unlikely(varonce10==NULL)) {
2798 var11 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
2799 } else {
2800 var11 = varonce10;
2801 varonce10 = NULL;
2802 }
2803 if (var_k!=NULL) {
2804 var12 = var_k;
2805 } else {
2806 if (likely(varonce13!=NULL)) {
2807 var14 = varonce13;
2808 } else {
2809 var15 = "<null>";
2810 var16 = core__flat___NativeString___to_s_full(var15, 6l, 6l);
2811 var14 = var16;
2812 varonce13 = var14;
2813 }
2814 var12 = var14;
2815 }
2816 {
2817 var17 = ((val*(*)(val* self))((((long)var12&3)?class_info[((long)var12&3)]:var12->class)->vft[COLOR_core__abstract_text__Object__to_s]))(var12); /* to_s on <var12:Object>*/
2818 }
2819 ((struct instance_core__NativeArray*)var11)->values[0]=var17;
2820 ((struct instance_core__NativeArray*)var11)->values[1]=var_couple_sep;
2821 if (var_e!=NULL) {
2822 var18 = var_e;
2823 } else {
2824 if (likely(varonce19!=NULL)) {
2825 var20 = varonce19;
2826 } else {
2827 var21 = "<null>";
2828 var22 = core__flat___NativeString___to_s_full(var21, 6l, 6l);
2829 var20 = var22;
2830 varonce19 = var20;
2831 }
2832 var18 = var20;
2833 }
2834 {
2835 var23 = ((val*(*)(val* self))((((long)var18&3)?class_info[((long)var18&3)]:var18->class)->vft[COLOR_core__abstract_text__Object__to_s]))(var18); /* to_s on <var18:Object>*/
2836 }
2837 ((struct instance_core__NativeArray*)var11)->values[2]=var23;
2838 {
2839 var24 = ((val*(*)(val* self))(var11->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var11); /* native_to_s on <var11:NativeArray[String]>*/
2840 }
2841 varonce10 = var11;
2842 {
2843 ((void(*)(val* self, val* p0))(var_s->class->vft[COLOR_core__abstract_text__Buffer__append]))(var_s, var24); /* append on <var_s:Buffer>*/
2844 }
2845 {
2846 ((void(*)(val* self))((((long)var_i&3)?class_info[((long)var_i&3)]:var_i->class)->vft[COLOR_core__abstract_collection__MapIterator__next]))(var_i); /* next on <var_i:MapIterator[nullable Object, nullable Object]>*/
2847 }
2848 for(;;) {
2849 {
2850 var25 = ((short int(*)(val* self))((((long)var_i&3)?class_info[((long)var_i&3)]:var_i->class)->vft[COLOR_core__abstract_collection__MapIterator__is_ok]))(var_i); /* is_ok on <var_i:MapIterator[nullable Object, nullable Object]>*/
2851 }
2852 if (var25){
2853 {
2854 ((void(*)(val* self, val* p0))(var_s->class->vft[COLOR_core__abstract_text__Buffer__append]))(var_s, var_sep); /* append on <var_s:Buffer>*/
2855 }
2856 {
2857 var26 = ((val*(*)(val* self))((((long)var_i&3)?class_info[((long)var_i&3)]:var_i->class)->vft[COLOR_core__abstract_collection__MapIterator__key]))(var_i); /* key on <var_i:MapIterator[nullable Object, nullable Object]>*/
2858 }
2859 var_k = var26;
2860 {
2861 var27 = ((val*(*)(val* self))((((long)var_i&3)?class_info[((long)var_i&3)]:var_i->class)->vft[COLOR_core__abstract_collection__MapIterator__item]))(var_i); /* item on <var_i:MapIterator[nullable Object, nullable Object]>*/
2862 }
2863 var_e = var27;
2864 if (unlikely(varonce28==NULL)) {
2865 var29 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
2866 } else {
2867 var29 = varonce28;
2868 varonce28 = NULL;
2869 }
2870 if (var_k!=NULL) {
2871 var30 = var_k;
2872 } else {
2873 if (likely(varonce31!=NULL)) {
2874 var32 = varonce31;
2875 } else {
2876 var33 = "<null>";
2877 var34 = core__flat___NativeString___to_s_full(var33, 6l, 6l);
2878 var32 = var34;
2879 varonce31 = var32;
2880 }
2881 var30 = var32;
2882 }
2883 {
2884 var35 = ((val*(*)(val* self))((((long)var30&3)?class_info[((long)var30&3)]:var30->class)->vft[COLOR_core__abstract_text__Object__to_s]))(var30); /* to_s on <var30:Object>*/
2885 }
2886 ((struct instance_core__NativeArray*)var29)->values[0]=var35;
2887 ((struct instance_core__NativeArray*)var29)->values[1]=var_couple_sep;
2888 if (var_e!=NULL) {
2889 var36 = var_e;
2890 } else {
2891 if (likely(varonce37!=NULL)) {
2892 var38 = varonce37;
2893 } else {
2894 var39 = "<null>";
2895 var40 = core__flat___NativeString___to_s_full(var39, 6l, 6l);
2896 var38 = var40;
2897 varonce37 = var38;
2898 }
2899 var36 = var38;
2900 }
2901 {
2902 var41 = ((val*(*)(val* self))((((long)var36&3)?class_info[((long)var36&3)]:var36->class)->vft[COLOR_core__abstract_text__Object__to_s]))(var36); /* to_s on <var36:Object>*/
2903 }
2904 ((struct instance_core__NativeArray*)var29)->values[2]=var41;
2905 {
2906 var42 = ((val*(*)(val* self))(var29->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var29); /* native_to_s on <var29:NativeArray[String]>*/
2907 }
2908 varonce28 = var29;
2909 {
2910 ((void(*)(val* self, val* p0))(var_s->class->vft[COLOR_core__abstract_text__Buffer__append]))(var_s, var42); /* append on <var_s:Buffer>*/
2911 }
2912 {
2913 ((void(*)(val* self))((((long)var_i&3)?class_info[((long)var_i&3)]:var_i->class)->vft[COLOR_core__abstract_collection__MapIterator__next]))(var_i); /* next on <var_i:MapIterator[nullable Object, nullable Object]>*/
2914 }
2915 } else {
2916 goto BREAK_label;
2917 }
2918 }
2919 BREAK_label: (void)0;
2920 {
2921 var43 = ((val*(*)(val* self))(var_s->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_s); /* to_s on <var_s:Buffer>*/
2922 }
2923 var = var43;
2924 goto RET_LABEL;
2925 RET_LABEL:;
2926 return var;
2927 }