NOTICE: Update author list and years
[nit.git] / c_src / core__flat.sep.1.c
1 #include "core__flat.sep.0.h"
2 /* method flat#FlatSubstringsIter#tgt for (self: FlatSubstringsIter): nullable FlatText */
3 val* core__flat___core__flat__FlatSubstringsIter___tgt(val* self) {
4 val* var /* : nullable FlatText */;
5 val* var1 /* : nullable FlatText */;
6 var1 = self->attrs[COLOR_core__flat__FlatSubstringsIter___tgt].val; /* _tgt on <self:FlatSubstringsIter> */
7 var = var1;
8 RET_LABEL:;
9 return var;
10 }
11 /* method flat#FlatSubstringsIter#tgt= for (self: FlatSubstringsIter, nullable FlatText) */
12 void core__flat___core__flat__FlatSubstringsIter___tgt_61d(val* self, val* p0) {
13 self->attrs[COLOR_core__flat__FlatSubstringsIter___tgt].val = p0; /* _tgt on <self:FlatSubstringsIter> */
14 RET_LABEL:;
15 }
16 /* method flat#FlatSubstringsIter#item for (self: FlatSubstringsIter): FlatText */
17 val* core__flat___core__flat__FlatSubstringsIter___core__abstract_collection__Iterator__item(val* self) {
18 val* var /* : FlatText */;
19 short int var1 /* : Bool */;
20 val* var2 /* : nullable FlatText */;
21 val* var4 /* : nullable FlatText */;
22 {
23 var1 = core__flat___core__flat__FlatSubstringsIter___core__abstract_collection__Iterator__is_ok(self);
24 }
25 if (unlikely(!var1)) {
26 PRINT_ERROR("Runtime error: %s", "Assert failed");
27 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 28);
28 fatal_exit(1);
29 }
30 {
31 { /* Inline flat#FlatSubstringsIter#tgt (self) on <self:FlatSubstringsIter> */
32 var4 = self->attrs[COLOR_core__flat__FlatSubstringsIter___tgt].val; /* _tgt on <self:FlatSubstringsIter> */
33 var2 = var4;
34 RET_LABEL3:(void)0;
35 }
36 }
37 if (unlikely(var2 == NULL)) {
38 PRINT_ERROR("Runtime error: %s", "Cast failed");
39 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 29);
40 fatal_exit(1);
41 }
42 var = var2;
43 goto RET_LABEL;
44 RET_LABEL:;
45 return var;
46 }
47 /* method flat#FlatSubstringsIter#is_ok for (self: FlatSubstringsIter): Bool */
48 short int core__flat___core__flat__FlatSubstringsIter___core__abstract_collection__Iterator__is_ok(val* self) {
49 short int var /* : Bool */;
50 val* var1 /* : nullable FlatText */;
51 val* var3 /* : nullable FlatText */;
52 short int var4 /* : Bool */;
53 short int var5 /* : Bool */;
54 val* var_other /* var other: nullable Object */;
55 short int var7 /* : Bool */;
56 short int var8 /* : Bool */;
57 {
58 { /* Inline flat#FlatSubstringsIter#tgt (self) on <self:FlatSubstringsIter> */
59 var3 = self->attrs[COLOR_core__flat__FlatSubstringsIter___tgt].val; /* _tgt on <self:FlatSubstringsIter> */
60 var1 = var3;
61 RET_LABEL2:(void)0;
62 }
63 }
64 if (var1 == NULL) {
65 var4 = 0; /* is null */
66 } else {
67 var4 = 1; /* arg is null and recv is not */
68 }
69 if (0) {
70 { /* Inline kernel#Object#!= (var1,((val*)NULL)) on <var1:nullable FlatText> */
71 var_other = ((val*)NULL);
72 {
73 var7 = ((short int(*)(val* self, val* p0))(var1->class->vft[COLOR_core__kernel__Object___61d_61d]))(var1, var_other); /* == on <var1:nullable FlatText(FlatText)>*/
74 }
75 var8 = !var7;
76 var5 = var8;
77 goto RET_LABEL6;
78 RET_LABEL6:(void)0;
79 }
80 var4 = var5;
81 }
82 var = var4;
83 goto RET_LABEL;
84 RET_LABEL:;
85 return var;
86 }
87 /* method flat#FlatSubstringsIter#next for (self: FlatSubstringsIter) */
88 void core__flat___core__flat__FlatSubstringsIter___core__abstract_collection__Iterator__next(val* self) {
89 {
90 { /* Inline flat#FlatSubstringsIter#tgt= (self,((val*)NULL)) on <self:FlatSubstringsIter> */
91 self->attrs[COLOR_core__flat__FlatSubstringsIter___tgt].val = ((val*)NULL); /* _tgt on <self:FlatSubstringsIter> */
92 RET_LABEL1:(void)0;
93 }
94 }
95 RET_LABEL:;
96 }
97 /* method flat#FlatSubstringsIter#init for (self: FlatSubstringsIter) */
98 void core__flat___core__flat__FlatSubstringsIter___core__kernel__Object__init(val* self) {
99 {
100 ((void(*)(val* self))(self->class->vft[COLOR_core__flat___core__flat__FlatSubstringsIter___core__kernel__Object__init]))(self); /* init on <self:FlatSubstringsIter>*/
101 }
102 RET_LABEL:;
103 }
104 /* method flat#FlatText#first_byte for (self: FlatText): Int */
105 long core__flat___FlatText___first_byte(val* self) {
106 long var /* : Int */;
107 var = 0l;
108 goto RET_LABEL;
109 RET_LABEL:;
110 return var;
111 }
112 /* method flat#FlatText#last_byte for (self: FlatText): Int */
113 long core__flat___FlatText___last_byte(val* self) {
114 long var /* : Int */;
115 long var1 /* : Int */;
116 long var2 /* : Int */;
117 long var3 /* : Int */;
118 short int var5 /* : Bool */;
119 int cltype;
120 int idtype;
121 const char* var_class_name;
122 long var6 /* : Int */;
123 long var7 /* : Int */;
124 short int var9 /* : Bool */;
125 int cltype10;
126 int idtype11;
127 const char* var_class_name12;
128 long var13 /* : Int */;
129 {
130 var1 = ((long(*)(val* self))(self->class->vft[COLOR_core__flat__FlatText__first_byte]))(self); /* first_byte on <self:FlatText>*/
131 }
132 var2 = self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <self:FlatText> */
133 {
134 { /* Inline kernel#Int#+ (var1,var2) on <var1:Int> */
135 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
136 /* <var2:Int> isa OTHER */
137 var5 = 1; /* easy <var2:Int> isa OTHER*/
138 if (unlikely(!var5)) {
139 var_class_name = type_core__Int.name;
140 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
141 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
142 fatal_exit(1);
143 }
144 var6 = var1 + var2;
145 var3 = var6;
146 goto RET_LABEL4;
147 RET_LABEL4:(void)0;
148 }
149 }
150 {
151 { /* Inline kernel#Int#- (var3,1l) on <var3:Int> */
152 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
153 /* <1l:Int> isa OTHER */
154 var9 = 1; /* easy <1l:Int> isa OTHER*/
155 if (unlikely(!var9)) {
156 var_class_name12 = type_core__Int.name;
157 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name12);
158 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
159 fatal_exit(1);
160 }
161 var13 = var3 - 1l;
162 var7 = var13;
163 goto RET_LABEL8;
164 RET_LABEL8:(void)0;
165 }
166 }
167 var = var7;
168 goto RET_LABEL;
169 RET_LABEL:;
170 return var;
171 }
172 /* method flat#FlatText#char_to_byte_index for (self: FlatText, Int): Int */
173 long core__flat___FlatText___char_to_byte_index(val* self, long p0) {
174 long var /* : Int */;
175 long var_index /* var index: Int */;
176 long var1 /* : Int */;
177 long var2 /* : Int */;
178 short int var4 /* : Bool */;
179 int cltype;
180 int idtype;
181 const char* var_class_name;
182 long var5 /* : Int */;
183 long var_dpos /* var dpos: Int */;
184 long var6 /* : Int */;
185 long var_b /* var b: Int */;
186 short int var7 /* : Bool */;
187 short int var9 /* : Bool */;
188 short int var10 /* : Bool */;
189 short int var12 /* : Bool */;
190 char* var13 /* : NativeString */;
191 long var14 /* : Int */;
192 long var15 /* : Int */;
193 short int var17 /* : Bool */;
194 int cltype18;
195 int idtype19;
196 const char* var_class_name20;
197 long var21 /* : Int */;
198 long var22 /* : Int */;
199 long var24 /* : Int */;
200 short int var25 /* : Bool */;
201 short int var27 /* : Bool */;
202 char* var28 /* : NativeString */;
203 long var29 /* : Int */;
204 short int var31 /* : Bool */;
205 int cltype32;
206 int idtype33;
207 const char* var_class_name34;
208 long var35 /* : Int */;
209 long var36 /* : Int */;
210 long var37 /* : Int */;
211 long var_ln /* var ln: Int */;
212 long var38 /* : Int */;
213 long var_pos /* var pos: Int */;
214 long var_delta_begin /* var delta_begin: Int */;
215 long var39 /* : Int */;
216 short int var41 /* : Bool */;
217 int cltype42;
218 int idtype43;
219 const char* var_class_name44;
220 long var45 /* : Int */;
221 long var46 /* : Int */;
222 short int var48 /* : Bool */;
223 int cltype49;
224 int idtype50;
225 const char* var_class_name51;
226 long var52 /* : Int */;
227 long var_delta_end /* var delta_end: Int */;
228 long var53 /* : Int */;
229 short int var55 /* : Bool */;
230 int cltype56;
231 int idtype57;
232 const char* var_class_name58;
233 long var59 /* : Int */;
234 long var60 /* : Int */;
235 long var_delta_cache /* var delta_cache: Int */;
236 long var_min /* var min: Int */;
237 char* var61 /* : NativeString */;
238 char* var_its /* var its: NativeString */;
239 short int var62 /* : Bool */;
240 short int var64 /* : Bool */;
241 int cltype65;
242 int idtype66;
243 const char* var_class_name67;
244 short int var68 /* : Bool */;
245 short int var69 /* : Bool */;
246 short int var71 /* : Bool */;
247 int cltype72;
248 int idtype73;
249 const char* var_class_name74;
250 short int var75 /* : Bool */;
251 short int var76 /* : Bool */;
252 short int var78 /* : Bool */;
253 long var79 /* : Int */;
254 long var_ns_i /* var ns_i: Int */;
255 long var_my_i /* var my_i: Int */;
256 short int var80 /* : Bool */;
257 short int var82 /* : Bool */;
258 long var83 /* : Int */;
259 long var84 /* : Int */;
260 long var85 /* : Int */;
261 long var86 /* : Int */;
262 long var87 /* : Int */;
263 short int var89 /* : Bool */;
264 int cltype90;
265 int idtype91;
266 const char* var_class_name92;
267 long var93 /* : Int */;
268 long var94 /* : Int */;
269 var_index = p0;
270 var1 = self->attrs[COLOR_core__flat__FlatText___position].l; /* _position on <self:FlatText> */
271 {
272 { /* Inline kernel#Int#- (var_index,var1) on <var_index:Int> */
273 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
274 /* <var1:Int> isa OTHER */
275 var4 = 1; /* easy <var1:Int> isa OTHER*/
276 if (unlikely(!var4)) {
277 var_class_name = type_core__Int.name;
278 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
279 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
280 fatal_exit(1);
281 }
282 var5 = var_index - var1;
283 var2 = var5;
284 goto RET_LABEL3;
285 RET_LABEL3:(void)0;
286 }
287 }
288 var_dpos = var2;
289 var6 = self->attrs[COLOR_core__flat__FlatText___bytepos].l; /* _bytepos on <self:FlatText> */
290 var_b = var6;
291 {
292 { /* Inline kernel#Int#== (var_dpos,0l) on <var_dpos:Int> */
293 var9 = var_dpos == 0l;
294 var7 = var9;
295 goto RET_LABEL8;
296 RET_LABEL8:(void)0;
297 }
298 }
299 if (var7){
300 var = var_b;
301 goto RET_LABEL;
302 } else {
303 }
304 {
305 { /* Inline kernel#Int#== (var_dpos,1l) on <var_dpos:Int> */
306 var12 = var_dpos == 1l;
307 var10 = var12;
308 goto RET_LABEL11;
309 RET_LABEL11:(void)0;
310 }
311 }
312 if (var10){
313 var13 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatText> */
314 {
315 var14 = core___core__NativeString___length_of_char_at(var13, var_b);
316 }
317 {
318 { /* Inline kernel#Int#+ (var_b,var14) on <var_b:Int> */
319 /* Covariant cast for argument 0 (i) <var14:Int> isa OTHER */
320 /* <var14:Int> isa OTHER */
321 var17 = 1; /* easy <var14:Int> isa OTHER*/
322 if (unlikely(!var17)) {
323 var_class_name20 = type_core__Int.name;
324 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
325 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
326 fatal_exit(1);
327 }
328 var21 = var_b + var14;
329 var15 = var21;
330 goto RET_LABEL16;
331 RET_LABEL16:(void)0;
332 }
333 }
334 var_b = var15;
335 self->attrs[COLOR_core__flat__FlatText___bytepos].l = var_b; /* _bytepos on <self:FlatText> */
336 self->attrs[COLOR_core__flat__FlatText___position].l = var_index; /* _position on <self:FlatText> */
337 var = var_b;
338 goto RET_LABEL;
339 } else {
340 }
341 {
342 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
343 var24 = -1l;
344 var22 = var24;
345 goto RET_LABEL23;
346 RET_LABEL23:(void)0;
347 }
348 }
349 {
350 { /* Inline kernel#Int#== (var_dpos,var22) on <var_dpos:Int> */
351 var27 = var_dpos == var22;
352 var25 = var27;
353 goto RET_LABEL26;
354 RET_LABEL26:(void)0;
355 }
356 }
357 if (var25){
358 var28 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatText> */
359 {
360 { /* Inline kernel#Int#- (var_b,1l) on <var_b:Int> */
361 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
362 /* <1l:Int> isa OTHER */
363 var31 = 1; /* easy <1l:Int> isa OTHER*/
364 if (unlikely(!var31)) {
365 var_class_name34 = type_core__Int.name;
366 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
367 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
368 fatal_exit(1);
369 }
370 var35 = var_b - 1l;
371 var29 = var35;
372 goto RET_LABEL30;
373 RET_LABEL30:(void)0;
374 }
375 }
376 {
377 var36 = core___core__NativeString___find_beginning_of_char_at(var28, var29);
378 }
379 var_b = var36;
380 self->attrs[COLOR_core__flat__FlatText___bytepos].l = var_b; /* _bytepos on <self:FlatText> */
381 self->attrs[COLOR_core__flat__FlatText___position].l = var_index; /* _position on <self:FlatText> */
382 var = var_b;
383 goto RET_LABEL;
384 } else {
385 }
386 var37 = self->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <self:FlatText> */
387 var_ln = var37;
388 var38 = self->attrs[COLOR_core__flat__FlatText___position].l; /* _position on <self:FlatText> */
389 var_pos = var38;
390 var_delta_begin = var_index;
391 {
392 { /* Inline kernel#Int#- (var_ln,1l) on <var_ln:Int> */
393 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
394 /* <1l:Int> isa OTHER */
395 var41 = 1; /* easy <1l:Int> isa OTHER*/
396 if (unlikely(!var41)) {
397 var_class_name44 = type_core__Int.name;
398 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name44);
399 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
400 fatal_exit(1);
401 }
402 var45 = var_ln - 1l;
403 var39 = var45;
404 goto RET_LABEL40;
405 RET_LABEL40:(void)0;
406 }
407 }
408 {
409 { /* Inline kernel#Int#- (var39,var_index) on <var39:Int> */
410 /* Covariant cast for argument 0 (i) <var_index:Int> isa OTHER */
411 /* <var_index:Int> isa OTHER */
412 var48 = 1; /* easy <var_index:Int> isa OTHER*/
413 if (unlikely(!var48)) {
414 var_class_name51 = type_core__Int.name;
415 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name51);
416 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
417 fatal_exit(1);
418 }
419 var52 = var39 - var_index;
420 var46 = var52;
421 goto RET_LABEL47;
422 RET_LABEL47:(void)0;
423 }
424 }
425 var_delta_end = var46;
426 {
427 { /* Inline kernel#Int#- (var_pos,var_index) on <var_pos:Int> */
428 /* Covariant cast for argument 0 (i) <var_index:Int> isa OTHER */
429 /* <var_index:Int> isa OTHER */
430 var55 = 1; /* easy <var_index:Int> isa OTHER*/
431 if (unlikely(!var55)) {
432 var_class_name58 = type_core__Int.name;
433 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name58);
434 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
435 fatal_exit(1);
436 }
437 var59 = var_pos - var_index;
438 var53 = var59;
439 goto RET_LABEL54;
440 RET_LABEL54:(void)0;
441 }
442 }
443 {
444 var60 = core___core__Int___abs(var53);
445 }
446 var_delta_cache = var60;
447 var_min = var_delta_begin;
448 var61 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatText> */
449 var_its = var61;
450 {
451 { /* Inline kernel#Int#< (var_delta_cache,var_min) on <var_delta_cache:Int> */
452 /* Covariant cast for argument 0 (i) <var_min:Int> isa OTHER */
453 /* <var_min:Int> isa OTHER */
454 var64 = 1; /* easy <var_min:Int> isa OTHER*/
455 if (unlikely(!var64)) {
456 var_class_name67 = type_core__Int.name;
457 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name67);
458 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
459 fatal_exit(1);
460 }
461 var68 = var_delta_cache < var_min;
462 var62 = var68;
463 goto RET_LABEL63;
464 RET_LABEL63:(void)0;
465 }
466 }
467 if (var62){
468 var_min = var_delta_cache;
469 } else {
470 }
471 {
472 { /* Inline kernel#Int#< (var_delta_end,var_min) on <var_delta_end:Int> */
473 /* Covariant cast for argument 0 (i) <var_min:Int> isa OTHER */
474 /* <var_min:Int> isa OTHER */
475 var71 = 1; /* easy <var_min:Int> isa OTHER*/
476 if (unlikely(!var71)) {
477 var_class_name74 = type_core__Int.name;
478 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name74);
479 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
480 fatal_exit(1);
481 }
482 var75 = var_delta_end < var_min;
483 var69 = var75;
484 goto RET_LABEL70;
485 RET_LABEL70:(void)0;
486 }
487 }
488 if (var69){
489 var_min = var_delta_end;
490 } else {
491 }
492 {
493 { /* Inline kernel#Int#== (var_min,var_delta_cache) on <var_min:Int> */
494 var78 = var_min == var_delta_cache;
495 var76 = var78;
496 goto RET_LABEL77;
497 RET_LABEL77:(void)0;
498 }
499 }
500 if (var76){
501 var79 = self->attrs[COLOR_core__flat__FlatText___bytepos].l; /* _bytepos on <self:FlatText> */
502 var_ns_i = var79;
503 var_my_i = var_pos;
504 } else {
505 {
506 { /* Inline kernel#Int#== (var_min,var_delta_begin) on <var_min:Int> */
507 var82 = var_min == var_delta_begin;
508 var80 = var82;
509 goto RET_LABEL81;
510 RET_LABEL81:(void)0;
511 }
512 }
513 if (var80){
514 {
515 var83 = ((long(*)(val* self))(self->class->vft[COLOR_core__flat__FlatText__first_byte]))(self); /* first_byte on <self:FlatText>*/
516 }
517 var_ns_i = var83;
518 var_my_i = 0l;
519 } else {
520 {
521 var84 = core__flat___FlatText___last_byte(self);
522 }
523 {
524 var85 = core___core__NativeString___find_beginning_of_char_at(var_its, var84);
525 }
526 var_ns_i = var85;
527 var86 = self->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <self:FlatText> */
528 {
529 { /* Inline kernel#Int#- (var86,1l) on <var86:Int> */
530 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
531 /* <1l:Int> isa OTHER */
532 var89 = 1; /* easy <1l:Int> isa OTHER*/
533 if (unlikely(!var89)) {
534 var_class_name92 = type_core__Int.name;
535 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name92);
536 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
537 fatal_exit(1);
538 }
539 var93 = var86 - 1l;
540 var87 = var93;
541 goto RET_LABEL88;
542 RET_LABEL88:(void)0;
543 }
544 }
545 var_my_i = var87;
546 }
547 }
548 {
549 var94 = core___core__NativeString___char_to_byte_index_cached(var_its, var_index, var_my_i, var_ns_i);
550 }
551 var_ns_i = var94;
552 self->attrs[COLOR_core__flat__FlatText___position].l = var_index; /* _position on <self:FlatText> */
553 self->attrs[COLOR_core__flat__FlatText___bytepos].l = var_ns_i; /* _bytepos on <self:FlatText> */
554 var = var_ns_i;
555 goto RET_LABEL;
556 RET_LABEL:;
557 return var;
558 }
559 /* method flat#FlatText#chars_to_escape_to_c for (self: FlatText): Int */
560 long core__flat___FlatText___chars_to_escape_to_c(val* self) {
561 long var /* : Int */;
562 char* var1 /* : NativeString */;
563 char* var_its /* var its: NativeString */;
564 long var2 /* : Int */;
565 long var_max /* var max: Int */;
566 long var3 /* : Int */;
567 long var_pos /* var pos: Int */;
568 long var_req_esc /* var req_esc: Int */;
569 short int var4 /* : Bool */;
570 short int var6 /* : Bool */;
571 int cltype;
572 int idtype;
573 const char* var_class_name;
574 short int var7 /* : Bool */;
575 unsigned char var8 /* : Byte */;
576 unsigned char var10 /* : Byte */;
577 unsigned char var_c /* var c: Byte */;
578 short int var11 /* : Bool */;
579 short int var13 /* : Bool */;
580 long var14 /* : Int */;
581 short int var16 /* : Bool */;
582 int cltype17;
583 int idtype18;
584 const char* var_class_name19;
585 long var20 /* : Int */;
586 short int var21 /* : Bool */;
587 short int var23 /* : Bool */;
588 long var24 /* : Int */;
589 short int var26 /* : Bool */;
590 int cltype27;
591 int idtype28;
592 const char* var_class_name29;
593 long var30 /* : Int */;
594 short int var31 /* : Bool */;
595 short int var33 /* : Bool */;
596 long var34 /* : Int */;
597 short int var36 /* : Bool */;
598 int cltype37;
599 int idtype38;
600 const char* var_class_name39;
601 long var40 /* : Int */;
602 short int var41 /* : Bool */;
603 short int var43 /* : Bool */;
604 long var44 /* : Int */;
605 short int var46 /* : Bool */;
606 int cltype47;
607 int idtype48;
608 const char* var_class_name49;
609 long var50 /* : Int */;
610 short int var51 /* : Bool */;
611 short int var53 /* : Bool */;
612 long var54 /* : Int */;
613 short int var56 /* : Bool */;
614 int cltype57;
615 int idtype58;
616 const char* var_class_name59;
617 long var60 /* : Int */;
618 short int var61 /* : Bool */;
619 short int var63 /* : Bool */;
620 int cltype64;
621 int idtype65;
622 const char* var_class_name66;
623 short int var67 /* : Bool */;
624 long var68 /* : Int */;
625 short int var70 /* : Bool */;
626 int cltype71;
627 int idtype72;
628 const char* var_class_name73;
629 long var74 /* : Int */;
630 long var75 /* : Int */;
631 short int var77 /* : Bool */;
632 int cltype78;
633 int idtype79;
634 const char* var_class_name80;
635 long var81 /* : Int */;
636 var1 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatText> */
637 var_its = var1;
638 {
639 var2 = core__flat___FlatText___last_byte(self);
640 }
641 var_max = var2;
642 {
643 var3 = ((long(*)(val* self))(self->class->vft[COLOR_core__flat__FlatText__first_byte]))(self); /* first_byte on <self:FlatText>*/
644 }
645 var_pos = var3;
646 var_req_esc = 0l;
647 for(;;) {
648 {
649 { /* Inline kernel#Int#<= (var_pos,var_max) on <var_pos:Int> */
650 /* Covariant cast for argument 0 (i) <var_max:Int> isa OTHER */
651 /* <var_max:Int> isa OTHER */
652 var6 = 1; /* easy <var_max:Int> isa OTHER*/
653 if (unlikely(!var6)) {
654 var_class_name = type_core__Int.name;
655 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
656 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
657 fatal_exit(1);
658 }
659 var7 = var_pos <= var_max;
660 var4 = var7;
661 goto RET_LABEL5;
662 RET_LABEL5:(void)0;
663 }
664 }
665 if (var4){
666 {
667 { /* Inline native#NativeString#[] (var_its,var_pos) on <var_its:NativeString> */
668 var10 = (unsigned char)((int)var_its[var_pos]);
669 var8 = var10;
670 goto RET_LABEL9;
671 RET_LABEL9:(void)0;
672 }
673 }
674 var_c = var8;
675 {
676 { /* Inline kernel#Byte#== (var_c,((unsigned char)0x0a)) on <var_c:Byte> */
677 var13 = var_c == ((unsigned char)0x0a);
678 var11 = var13;
679 goto RET_LABEL12;
680 RET_LABEL12:(void)0;
681 }
682 }
683 if (var11){
684 {
685 { /* Inline kernel#Int#+ (var_req_esc,1l) on <var_req_esc:Int> */
686 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
687 /* <1l:Int> isa OTHER */
688 var16 = 1; /* easy <1l:Int> isa OTHER*/
689 if (unlikely(!var16)) {
690 var_class_name19 = type_core__Int.name;
691 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name19);
692 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
693 fatal_exit(1);
694 }
695 var20 = var_req_esc + 1l;
696 var14 = var20;
697 goto RET_LABEL15;
698 RET_LABEL15:(void)0;
699 }
700 }
701 var_req_esc = var14;
702 } else {
703 {
704 { /* Inline kernel#Byte#== (var_c,((unsigned char)0x09)) on <var_c:Byte> */
705 var23 = var_c == ((unsigned char)0x09);
706 var21 = var23;
707 goto RET_LABEL22;
708 RET_LABEL22:(void)0;
709 }
710 }
711 if (var21){
712 {
713 { /* Inline kernel#Int#+ (var_req_esc,1l) on <var_req_esc:Int> */
714 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
715 /* <1l:Int> isa OTHER */
716 var26 = 1; /* easy <1l:Int> isa OTHER*/
717 if (unlikely(!var26)) {
718 var_class_name29 = type_core__Int.name;
719 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29);
720 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
721 fatal_exit(1);
722 }
723 var30 = var_req_esc + 1l;
724 var24 = var30;
725 goto RET_LABEL25;
726 RET_LABEL25:(void)0;
727 }
728 }
729 var_req_esc = var24;
730 } else {
731 {
732 { /* Inline kernel#Byte#== (var_c,((unsigned char)0x22)) on <var_c:Byte> */
733 var33 = var_c == ((unsigned char)0x22);
734 var31 = var33;
735 goto RET_LABEL32;
736 RET_LABEL32:(void)0;
737 }
738 }
739 if (var31){
740 {
741 { /* Inline kernel#Int#+ (var_req_esc,1l) on <var_req_esc:Int> */
742 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
743 /* <1l:Int> isa OTHER */
744 var36 = 1; /* easy <1l:Int> isa OTHER*/
745 if (unlikely(!var36)) {
746 var_class_name39 = type_core__Int.name;
747 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name39);
748 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
749 fatal_exit(1);
750 }
751 var40 = var_req_esc + 1l;
752 var34 = var40;
753 goto RET_LABEL35;
754 RET_LABEL35:(void)0;
755 }
756 }
757 var_req_esc = var34;
758 } else {
759 {
760 { /* Inline kernel#Byte#== (var_c,((unsigned char)0x27)) on <var_c:Byte> */
761 var43 = var_c == ((unsigned char)0x27);
762 var41 = var43;
763 goto RET_LABEL42;
764 RET_LABEL42:(void)0;
765 }
766 }
767 if (var41){
768 {
769 { /* Inline kernel#Int#+ (var_req_esc,1l) on <var_req_esc:Int> */
770 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
771 /* <1l:Int> isa OTHER */
772 var46 = 1; /* easy <1l:Int> isa OTHER*/
773 if (unlikely(!var46)) {
774 var_class_name49 = type_core__Int.name;
775 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name49);
776 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
777 fatal_exit(1);
778 }
779 var50 = var_req_esc + 1l;
780 var44 = var50;
781 goto RET_LABEL45;
782 RET_LABEL45:(void)0;
783 }
784 }
785 var_req_esc = var44;
786 } else {
787 {
788 { /* Inline kernel#Byte#== (var_c,((unsigned char)0x5c)) on <var_c:Byte> */
789 var53 = var_c == ((unsigned char)0x5c);
790 var51 = var53;
791 goto RET_LABEL52;
792 RET_LABEL52:(void)0;
793 }
794 }
795 if (var51){
796 {
797 { /* Inline kernel#Int#+ (var_req_esc,1l) on <var_req_esc:Int> */
798 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
799 /* <1l:Int> isa OTHER */
800 var56 = 1; /* easy <1l:Int> isa OTHER*/
801 if (unlikely(!var56)) {
802 var_class_name59 = type_core__Int.name;
803 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name59);
804 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
805 fatal_exit(1);
806 }
807 var60 = var_req_esc + 1l;
808 var54 = var60;
809 goto RET_LABEL55;
810 RET_LABEL55:(void)0;
811 }
812 }
813 var_req_esc = var54;
814 } else {
815 {
816 { /* Inline kernel#Byte#< (var_c,((unsigned char)0x20)) on <var_c:Byte> */
817 /* Covariant cast for argument 0 (i) <((unsigned char)0x20):Byte> isa OTHER */
818 /* <((unsigned char)0x20):Byte> isa OTHER */
819 var63 = 1; /* easy <((unsigned char)0x20):Byte> isa OTHER*/
820 if (unlikely(!var63)) {
821 var_class_name66 = type_core__Byte.name;
822 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name66);
823 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 619);
824 fatal_exit(1);
825 }
826 var67 = var_c < ((unsigned char)0x20);
827 var61 = var67;
828 goto RET_LABEL62;
829 RET_LABEL62:(void)0;
830 }
831 }
832 if (var61){
833 {
834 { /* Inline kernel#Int#+ (var_req_esc,3l) on <var_req_esc:Int> */
835 /* Covariant cast for argument 0 (i) <3l:Int> isa OTHER */
836 /* <3l:Int> isa OTHER */
837 var70 = 1; /* easy <3l:Int> isa OTHER*/
838 if (unlikely(!var70)) {
839 var_class_name73 = type_core__Int.name;
840 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name73);
841 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
842 fatal_exit(1);
843 }
844 var74 = var_req_esc + 3l;
845 var68 = var74;
846 goto RET_LABEL69;
847 RET_LABEL69:(void)0;
848 }
849 }
850 var_req_esc = var68;
851 } else {
852 }
853 }
854 }
855 }
856 }
857 }
858 {
859 { /* Inline kernel#Int#+ (var_pos,1l) on <var_pos:Int> */
860 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
861 /* <1l:Int> isa OTHER */
862 var77 = 1; /* easy <1l:Int> isa OTHER*/
863 if (unlikely(!var77)) {
864 var_class_name80 = type_core__Int.name;
865 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name80);
866 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
867 fatal_exit(1);
868 }
869 var81 = var_pos + 1l;
870 var75 = var81;
871 goto RET_LABEL76;
872 RET_LABEL76:(void)0;
873 }
874 }
875 var_pos = var75;
876 } else {
877 goto BREAK_label;
878 }
879 }
880 BREAK_label: (void)0;
881 var = var_req_esc;
882 goto RET_LABEL;
883 RET_LABEL:;
884 return var;
885 }
886 /* method flat#FlatText#escape_to_c for (self: FlatText): String */
887 val* core__flat___FlatText___core__abstract_text__Text__escape_to_c(val* self) {
888 val* var /* : String */;
889 long var1 /* : Int */;
890 long var_ln_extra /* var ln_extra: Int */;
891 short int var2 /* : Bool */;
892 short int var4 /* : Bool */;
893 val* var5 /* : String */;
894 char* var6 /* : NativeString */;
895 char* var_its /* var its: NativeString */;
896 long var7 /* : Int */;
897 long var_max /* var max: Int */;
898 long var8 /* : Int */;
899 long var9 /* : Int */;
900 short int var11 /* : Bool */;
901 int cltype;
902 int idtype;
903 const char* var_class_name;
904 long var12 /* : Int */;
905 long var_nlen /* var nlen: Int */;
906 char* var13 /* : NativeString */;
907 char* var14 /* : NativeString */;
908 char* var16 /* : NativeString */;
909 char* var_nns /* var nns: NativeString */;
910 long var17 /* : Int */;
911 long var_pos /* var pos: Int */;
912 long var_opos /* var opos: Int */;
913 short int var18 /* : Bool */;
914 short int var20 /* : Bool */;
915 int cltype21;
916 int idtype22;
917 const char* var_class_name23;
918 short int var24 /* : Bool */;
919 unsigned char var25 /* : Byte */;
920 unsigned char var27 /* : Byte */;
921 unsigned char var_c /* var c: Byte */;
922 short int var28 /* : Bool */;
923 short int var30 /* : Bool */;
924 long var32 /* : Int */;
925 short int var34 /* : Bool */;
926 int cltype35;
927 int idtype36;
928 const char* var_class_name37;
929 long var38 /* : Int */;
930 long var40 /* : Int */;
931 short int var42 /* : Bool */;
932 int cltype43;
933 int idtype44;
934 const char* var_class_name45;
935 long var46 /* : Int */;
936 short int var47 /* : Bool */;
937 short int var49 /* : Bool */;
938 long var51 /* : Int */;
939 short int var53 /* : Bool */;
940 int cltype54;
941 int idtype55;
942 const char* var_class_name56;
943 long var57 /* : Int */;
944 long var59 /* : Int */;
945 short int var61 /* : Bool */;
946 int cltype62;
947 int idtype63;
948 const char* var_class_name64;
949 long var65 /* : Int */;
950 short int var66 /* : Bool */;
951 short int var68 /* : Bool */;
952 long var70 /* : Int */;
953 short int var72 /* : Bool */;
954 int cltype73;
955 int idtype74;
956 const char* var_class_name75;
957 long var76 /* : Int */;
958 long var78 /* : Int */;
959 short int var80 /* : Bool */;
960 int cltype81;
961 int idtype82;
962 const char* var_class_name83;
963 long var84 /* : Int */;
964 short int var85 /* : Bool */;
965 short int var87 /* : Bool */;
966 long var89 /* : Int */;
967 short int var91 /* : Bool */;
968 int cltype92;
969 int idtype93;
970 const char* var_class_name94;
971 long var95 /* : Int */;
972 long var97 /* : Int */;
973 short int var99 /* : Bool */;
974 int cltype100;
975 int idtype101;
976 const char* var_class_name102;
977 long var103 /* : Int */;
978 short int var104 /* : Bool */;
979 short int var106 /* : Bool */;
980 long var108 /* : Int */;
981 short int var110 /* : Bool */;
982 int cltype111;
983 int idtype112;
984 const char* var_class_name113;
985 long var114 /* : Int */;
986 long var116 /* : Int */;
987 short int var118 /* : Bool */;
988 int cltype119;
989 int idtype120;
990 const char* var_class_name121;
991 long var122 /* : Int */;
992 short int var123 /* : Bool */;
993 short int var125 /* : Bool */;
994 int cltype126;
995 int idtype127;
996 const char* var_class_name128;
997 short int var129 /* : Bool */;
998 long var131 /* : Int */;
999 short int var133 /* : Bool */;
1000 int cltype134;
1001 int idtype135;
1002 const char* var_class_name136;
1003 long var137 /* : Int */;
1004 long var139 /* : Int */;
1005 short int var141 /* : Bool */;
1006 int cltype142;
1007 int idtype143;
1008 const char* var_class_name144;
1009 long var145 /* : Int */;
1010 unsigned char var146 /* : Byte */;
1011 unsigned char var148 /* : Byte */;
1012 unsigned char var149 /* : Byte */;
1013 unsigned char var151 /* : Byte */;
1014 unsigned char var152 /* : Byte */;
1015 short int var154 /* : Bool */;
1016 int cltype155;
1017 int idtype156;
1018 const char* var_class_name157;
1019 unsigned char var158 /* : Byte */;
1020 long var160 /* : Int */;
1021 short int var162 /* : Bool */;
1022 int cltype163;
1023 int idtype164;
1024 const char* var_class_name165;
1025 long var166 /* : Int */;
1026 unsigned char var167 /* : Byte */;
1027 unsigned char var169 /* : Byte */;
1028 unsigned char var170 /* : Byte */;
1029 short int var172 /* : Bool */;
1030 int cltype173;
1031 int idtype174;
1032 const char* var_class_name175;
1033 unsigned char var176 /* : Byte */;
1034 long var178 /* : Int */;
1035 short int var180 /* : Bool */;
1036 int cltype181;
1037 int idtype182;
1038 const char* var_class_name183;
1039 long var184 /* : Int */;
1040 long var186 /* : Int */;
1041 short int var188 /* : Bool */;
1042 int cltype189;
1043 int idtype190;
1044 const char* var_class_name191;
1045 long var192 /* : Int */;
1046 long var193 /* : Int */;
1047 short int var195 /* : Bool */;
1048 int cltype196;
1049 int idtype197;
1050 const char* var_class_name198;
1051 long var199 /* : Int */;
1052 val* var200 /* : String */;
1053 val* var201 /* : nullable Int */;
1054 {
1055 var1 = core__flat___FlatText___chars_to_escape_to_c(self);
1056 }
1057 var_ln_extra = var1;
1058 {
1059 { /* Inline kernel#Int#== (var_ln_extra,0l) on <var_ln_extra:Int> */
1060 var4 = var_ln_extra == 0l;
1061 var2 = var4;
1062 goto RET_LABEL3;
1063 RET_LABEL3:(void)0;
1064 }
1065 }
1066 if (var2){
1067 {
1068 var5 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Object__to_s]))(self); /* to_s on <self:FlatText>*/
1069 }
1070 var = var5;
1071 goto RET_LABEL;
1072 } else {
1073 }
1074 var6 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatText> */
1075 var_its = var6;
1076 {
1077 var7 = core__flat___FlatText___last_byte(self);
1078 }
1079 var_max = var7;
1080 var8 = self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <self:FlatText> */
1081 {
1082 { /* Inline kernel#Int#+ (var8,var_ln_extra) on <var8:Int> */
1083 /* Covariant cast for argument 0 (i) <var_ln_extra:Int> isa OTHER */
1084 /* <var_ln_extra:Int> isa OTHER */
1085 var11 = 1; /* easy <var_ln_extra:Int> isa OTHER*/
1086 if (unlikely(!var11)) {
1087 var_class_name = type_core__Int.name;
1088 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1089 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1090 fatal_exit(1);
1091 }
1092 var12 = var8 + var_ln_extra;
1093 var9 = var12;
1094 goto RET_LABEL10;
1095 RET_LABEL10:(void)0;
1096 }
1097 }
1098 var_nlen = var9;
1099 var13 = NULL/*special!*/;
1100 {
1101 { /* Inline native#NativeString#new (var13,var_nlen) on <var13:NativeString> */
1102 var16 = (char*)nit_alloc(var_nlen);
1103 var14 = var16;
1104 goto RET_LABEL15;
1105 RET_LABEL15:(void)0;
1106 }
1107 }
1108 var_nns = var14;
1109 {
1110 var17 = ((long(*)(val* self))(self->class->vft[COLOR_core__flat__FlatText__first_byte]))(self); /* first_byte on <self:FlatText>*/
1111 }
1112 var_pos = var17;
1113 var_opos = 0l;
1114 for(;;) {
1115 {
1116 { /* Inline kernel#Int#<= (var_pos,var_max) on <var_pos:Int> */
1117 /* Covariant cast for argument 0 (i) <var_max:Int> isa OTHER */
1118 /* <var_max:Int> isa OTHER */
1119 var20 = 1; /* easy <var_max:Int> isa OTHER*/
1120 if (unlikely(!var20)) {
1121 var_class_name23 = type_core__Int.name;
1122 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name23);
1123 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
1124 fatal_exit(1);
1125 }
1126 var24 = var_pos <= var_max;
1127 var18 = var24;
1128 goto RET_LABEL19;
1129 RET_LABEL19:(void)0;
1130 }
1131 }
1132 if (var18){
1133 {
1134 { /* Inline native#NativeString#[] (var_its,var_pos) on <var_its:NativeString> */
1135 var27 = (unsigned char)((int)var_its[var_pos]);
1136 var25 = var27;
1137 goto RET_LABEL26;
1138 RET_LABEL26:(void)0;
1139 }
1140 }
1141 var_c = var25;
1142 {
1143 { /* Inline kernel#Byte#== (var_c,((unsigned char)0x09)) on <var_c:Byte> */
1144 var30 = var_c == ((unsigned char)0x09);
1145 var28 = var30;
1146 goto RET_LABEL29;
1147 RET_LABEL29:(void)0;
1148 }
1149 }
1150 if (var28){
1151 {
1152 { /* Inline native#NativeString#[]= (var_nns,var_opos,((unsigned char)0x5c)) on <var_nns:NativeString> */
1153 var_nns[var_opos]=(unsigned char)((unsigned char)0x5c);
1154 RET_LABEL31:(void)0;
1155 }
1156 }
1157 {
1158 { /* Inline kernel#Int#+ (var_opos,1l) on <var_opos:Int> */
1159 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1160 /* <1l:Int> isa OTHER */
1161 var34 = 1; /* easy <1l:Int> isa OTHER*/
1162 if (unlikely(!var34)) {
1163 var_class_name37 = type_core__Int.name;
1164 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37);
1165 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1166 fatal_exit(1);
1167 }
1168 var38 = var_opos + 1l;
1169 var32 = var38;
1170 goto RET_LABEL33;
1171 RET_LABEL33:(void)0;
1172 }
1173 }
1174 {
1175 { /* Inline native#NativeString#[]= (var_nns,var32,((unsigned char)0x74)) on <var_nns:NativeString> */
1176 var_nns[var32]=(unsigned char)((unsigned char)0x74);
1177 RET_LABEL39:(void)0;
1178 }
1179 }
1180 {
1181 { /* Inline kernel#Int#+ (var_opos,2l) on <var_opos:Int> */
1182 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
1183 /* <2l:Int> isa OTHER */
1184 var42 = 1; /* easy <2l:Int> isa OTHER*/
1185 if (unlikely(!var42)) {
1186 var_class_name45 = type_core__Int.name;
1187 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name45);
1188 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1189 fatal_exit(1);
1190 }
1191 var46 = var_opos + 2l;
1192 var40 = var46;
1193 goto RET_LABEL41;
1194 RET_LABEL41:(void)0;
1195 }
1196 }
1197 var_opos = var40;
1198 } else {
1199 {
1200 { /* Inline kernel#Byte#== (var_c,((unsigned char)0x0a)) on <var_c:Byte> */
1201 var49 = var_c == ((unsigned char)0x0a);
1202 var47 = var49;
1203 goto RET_LABEL48;
1204 RET_LABEL48:(void)0;
1205 }
1206 }
1207 if (var47){
1208 {
1209 { /* Inline native#NativeString#[]= (var_nns,var_opos,((unsigned char)0x5c)) on <var_nns:NativeString> */
1210 var_nns[var_opos]=(unsigned char)((unsigned char)0x5c);
1211 RET_LABEL50:(void)0;
1212 }
1213 }
1214 {
1215 { /* Inline kernel#Int#+ (var_opos,1l) on <var_opos:Int> */
1216 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1217 /* <1l:Int> isa OTHER */
1218 var53 = 1; /* easy <1l:Int> isa OTHER*/
1219 if (unlikely(!var53)) {
1220 var_class_name56 = type_core__Int.name;
1221 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name56);
1222 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1223 fatal_exit(1);
1224 }
1225 var57 = var_opos + 1l;
1226 var51 = var57;
1227 goto RET_LABEL52;
1228 RET_LABEL52:(void)0;
1229 }
1230 }
1231 {
1232 { /* Inline native#NativeString#[]= (var_nns,var51,((unsigned char)0x6e)) on <var_nns:NativeString> */
1233 var_nns[var51]=(unsigned char)((unsigned char)0x6e);
1234 RET_LABEL58:(void)0;
1235 }
1236 }
1237 {
1238 { /* Inline kernel#Int#+ (var_opos,2l) on <var_opos:Int> */
1239 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
1240 /* <2l:Int> isa OTHER */
1241 var61 = 1; /* easy <2l:Int> isa OTHER*/
1242 if (unlikely(!var61)) {
1243 var_class_name64 = type_core__Int.name;
1244 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name64);
1245 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1246 fatal_exit(1);
1247 }
1248 var65 = var_opos + 2l;
1249 var59 = var65;
1250 goto RET_LABEL60;
1251 RET_LABEL60:(void)0;
1252 }
1253 }
1254 var_opos = var59;
1255 } else {
1256 {
1257 { /* Inline kernel#Byte#== (var_c,((unsigned char)0x22)) on <var_c:Byte> */
1258 var68 = var_c == ((unsigned char)0x22);
1259 var66 = var68;
1260 goto RET_LABEL67;
1261 RET_LABEL67:(void)0;
1262 }
1263 }
1264 if (var66){
1265 {
1266 { /* Inline native#NativeString#[]= (var_nns,var_opos,((unsigned char)0x5c)) on <var_nns:NativeString> */
1267 var_nns[var_opos]=(unsigned char)((unsigned char)0x5c);
1268 RET_LABEL69:(void)0;
1269 }
1270 }
1271 {
1272 { /* Inline kernel#Int#+ (var_opos,1l) on <var_opos:Int> */
1273 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1274 /* <1l:Int> isa OTHER */
1275 var72 = 1; /* easy <1l:Int> isa OTHER*/
1276 if (unlikely(!var72)) {
1277 var_class_name75 = type_core__Int.name;
1278 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name75);
1279 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1280 fatal_exit(1);
1281 }
1282 var76 = var_opos + 1l;
1283 var70 = var76;
1284 goto RET_LABEL71;
1285 RET_LABEL71:(void)0;
1286 }
1287 }
1288 {
1289 { /* Inline native#NativeString#[]= (var_nns,var70,((unsigned char)0x22)) on <var_nns:NativeString> */
1290 var_nns[var70]=(unsigned char)((unsigned char)0x22);
1291 RET_LABEL77:(void)0;
1292 }
1293 }
1294 {
1295 { /* Inline kernel#Int#+ (var_opos,2l) on <var_opos:Int> */
1296 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
1297 /* <2l:Int> isa OTHER */
1298 var80 = 1; /* easy <2l:Int> isa OTHER*/
1299 if (unlikely(!var80)) {
1300 var_class_name83 = type_core__Int.name;
1301 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name83);
1302 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1303 fatal_exit(1);
1304 }
1305 var84 = var_opos + 2l;
1306 var78 = var84;
1307 goto RET_LABEL79;
1308 RET_LABEL79:(void)0;
1309 }
1310 }
1311 var_opos = var78;
1312 } else {
1313 {
1314 { /* Inline kernel#Byte#== (var_c,((unsigned char)0x27)) on <var_c:Byte> */
1315 var87 = var_c == ((unsigned char)0x27);
1316 var85 = var87;
1317 goto RET_LABEL86;
1318 RET_LABEL86:(void)0;
1319 }
1320 }
1321 if (var85){
1322 {
1323 { /* Inline native#NativeString#[]= (var_nns,var_opos,((unsigned char)0x5c)) on <var_nns:NativeString> */
1324 var_nns[var_opos]=(unsigned char)((unsigned char)0x5c);
1325 RET_LABEL88:(void)0;
1326 }
1327 }
1328 {
1329 { /* Inline kernel#Int#+ (var_opos,1l) on <var_opos:Int> */
1330 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1331 /* <1l:Int> isa OTHER */
1332 var91 = 1; /* easy <1l:Int> isa OTHER*/
1333 if (unlikely(!var91)) {
1334 var_class_name94 = type_core__Int.name;
1335 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name94);
1336 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1337 fatal_exit(1);
1338 }
1339 var95 = var_opos + 1l;
1340 var89 = var95;
1341 goto RET_LABEL90;
1342 RET_LABEL90:(void)0;
1343 }
1344 }
1345 {
1346 { /* Inline native#NativeString#[]= (var_nns,var89,((unsigned char)0x27)) on <var_nns:NativeString> */
1347 var_nns[var89]=(unsigned char)((unsigned char)0x27);
1348 RET_LABEL96:(void)0;
1349 }
1350 }
1351 {
1352 { /* Inline kernel#Int#+ (var_opos,2l) on <var_opos:Int> */
1353 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
1354 /* <2l:Int> isa OTHER */
1355 var99 = 1; /* easy <2l:Int> isa OTHER*/
1356 if (unlikely(!var99)) {
1357 var_class_name102 = type_core__Int.name;
1358 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name102);
1359 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1360 fatal_exit(1);
1361 }
1362 var103 = var_opos + 2l;
1363 var97 = var103;
1364 goto RET_LABEL98;
1365 RET_LABEL98:(void)0;
1366 }
1367 }
1368 var_opos = var97;
1369 } else {
1370 {
1371 { /* Inline kernel#Byte#== (var_c,((unsigned char)0x5c)) on <var_c:Byte> */
1372 var106 = var_c == ((unsigned char)0x5c);
1373 var104 = var106;
1374 goto RET_LABEL105;
1375 RET_LABEL105:(void)0;
1376 }
1377 }
1378 if (var104){
1379 {
1380 { /* Inline native#NativeString#[]= (var_nns,var_opos,((unsigned char)0x5c)) on <var_nns:NativeString> */
1381 var_nns[var_opos]=(unsigned char)((unsigned char)0x5c);
1382 RET_LABEL107:(void)0;
1383 }
1384 }
1385 {
1386 { /* Inline kernel#Int#+ (var_opos,1l) on <var_opos:Int> */
1387 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1388 /* <1l:Int> isa OTHER */
1389 var110 = 1; /* easy <1l:Int> isa OTHER*/
1390 if (unlikely(!var110)) {
1391 var_class_name113 = type_core__Int.name;
1392 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name113);
1393 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1394 fatal_exit(1);
1395 }
1396 var114 = var_opos + 1l;
1397 var108 = var114;
1398 goto RET_LABEL109;
1399 RET_LABEL109:(void)0;
1400 }
1401 }
1402 {
1403 { /* Inline native#NativeString#[]= (var_nns,var108,((unsigned char)0x5c)) on <var_nns:NativeString> */
1404 var_nns[var108]=(unsigned char)((unsigned char)0x5c);
1405 RET_LABEL115:(void)0;
1406 }
1407 }
1408 {
1409 { /* Inline kernel#Int#+ (var_opos,2l) on <var_opos:Int> */
1410 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
1411 /* <2l:Int> isa OTHER */
1412 var118 = 1; /* easy <2l:Int> isa OTHER*/
1413 if (unlikely(!var118)) {
1414 var_class_name121 = type_core__Int.name;
1415 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name121);
1416 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1417 fatal_exit(1);
1418 }
1419 var122 = var_opos + 2l;
1420 var116 = var122;
1421 goto RET_LABEL117;
1422 RET_LABEL117:(void)0;
1423 }
1424 }
1425 var_opos = var116;
1426 } else {
1427 {
1428 { /* Inline kernel#Byte#< (var_c,((unsigned char)0x20)) on <var_c:Byte> */
1429 /* Covariant cast for argument 0 (i) <((unsigned char)0x20):Byte> isa OTHER */
1430 /* <((unsigned char)0x20):Byte> isa OTHER */
1431 var125 = 1; /* easy <((unsigned char)0x20):Byte> isa OTHER*/
1432 if (unlikely(!var125)) {
1433 var_class_name128 = type_core__Byte.name;
1434 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name128);
1435 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 619);
1436 fatal_exit(1);
1437 }
1438 var129 = var_c < ((unsigned char)0x20);
1439 var123 = var129;
1440 goto RET_LABEL124;
1441 RET_LABEL124:(void)0;
1442 }
1443 }
1444 if (var123){
1445 {
1446 { /* Inline native#NativeString#[]= (var_nns,var_opos,((unsigned char)0x5c)) on <var_nns:NativeString> */
1447 var_nns[var_opos]=(unsigned char)((unsigned char)0x5c);
1448 RET_LABEL130:(void)0;
1449 }
1450 }
1451 {
1452 { /* Inline kernel#Int#+ (var_opos,1l) on <var_opos:Int> */
1453 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1454 /* <1l:Int> isa OTHER */
1455 var133 = 1; /* easy <1l:Int> isa OTHER*/
1456 if (unlikely(!var133)) {
1457 var_class_name136 = type_core__Int.name;
1458 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name136);
1459 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1460 fatal_exit(1);
1461 }
1462 var137 = var_opos + 1l;
1463 var131 = var137;
1464 goto RET_LABEL132;
1465 RET_LABEL132:(void)0;
1466 }
1467 }
1468 {
1469 { /* Inline native#NativeString#[]= (var_nns,var131,((unsigned char)0x30)) on <var_nns:NativeString> */
1470 var_nns[var131]=(unsigned char)((unsigned char)0x30);
1471 RET_LABEL138:(void)0;
1472 }
1473 }
1474 {
1475 { /* Inline kernel#Int#+ (var_opos,2l) on <var_opos:Int> */
1476 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
1477 /* <2l:Int> isa OTHER */
1478 var141 = 1; /* easy <2l:Int> isa OTHER*/
1479 if (unlikely(!var141)) {
1480 var_class_name144 = type_core__Int.name;
1481 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name144);
1482 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1483 fatal_exit(1);
1484 }
1485 var145 = var_opos + 2l;
1486 var139 = var145;
1487 goto RET_LABEL140;
1488 RET_LABEL140:(void)0;
1489 }
1490 }
1491 {
1492 { /* Inline math#Byte#& (var_c,((unsigned char)0x38)) on <var_c:Byte> */
1493 var148 = var_c & ((unsigned char)0x38);
1494 var146 = var148;
1495 goto RET_LABEL147;
1496 RET_LABEL147:(void)0;
1497 }
1498 }
1499 {
1500 { /* Inline kernel#Byte#>> (var146,3l) on <var146:Byte> */
1501 var151 = var146 >> 3l;
1502 var149 = var151;
1503 goto RET_LABEL150;
1504 RET_LABEL150:(void)0;
1505 }
1506 }
1507 {
1508 { /* Inline kernel#Byte#+ (var149,((unsigned char)0x30)) on <var149:Byte> */
1509 /* Covariant cast for argument 0 (i) <((unsigned char)0x30):Byte> isa OTHER */
1510 /* <((unsigned char)0x30):Byte> isa OTHER */
1511 var154 = 1; /* easy <((unsigned char)0x30):Byte> isa OTHER*/
1512 if (unlikely(!var154)) {
1513 var_class_name157 = type_core__Byte.name;
1514 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name157);
1515 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 622);
1516 fatal_exit(1);
1517 }
1518 var158 = var149 + ((unsigned char)0x30);
1519 var152 = var158;
1520 goto RET_LABEL153;
1521 RET_LABEL153:(void)0;
1522 }
1523 }
1524 {
1525 { /* Inline native#NativeString#[]= (var_nns,var139,var152) on <var_nns:NativeString> */
1526 var_nns[var139]=(unsigned char)var152;
1527 RET_LABEL159:(void)0;
1528 }
1529 }
1530 {
1531 { /* Inline kernel#Int#+ (var_opos,3l) on <var_opos:Int> */
1532 /* Covariant cast for argument 0 (i) <3l:Int> isa OTHER */
1533 /* <3l:Int> isa OTHER */
1534 var162 = 1; /* easy <3l:Int> isa OTHER*/
1535 if (unlikely(!var162)) {
1536 var_class_name165 = type_core__Int.name;
1537 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name165);
1538 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1539 fatal_exit(1);
1540 }
1541 var166 = var_opos + 3l;
1542 var160 = var166;
1543 goto RET_LABEL161;
1544 RET_LABEL161:(void)0;
1545 }
1546 }
1547 {
1548 { /* Inline math#Byte#& (var_c,((unsigned char)0x07)) on <var_c:Byte> */
1549 var169 = var_c & ((unsigned char)0x07);
1550 var167 = var169;
1551 goto RET_LABEL168;
1552 RET_LABEL168:(void)0;
1553 }
1554 }
1555 {
1556 { /* Inline kernel#Byte#+ (var167,((unsigned char)0x30)) on <var167:Byte> */
1557 /* Covariant cast for argument 0 (i) <((unsigned char)0x30):Byte> isa OTHER */
1558 /* <((unsigned char)0x30):Byte> isa OTHER */
1559 var172 = 1; /* easy <((unsigned char)0x30):Byte> isa OTHER*/
1560 if (unlikely(!var172)) {
1561 var_class_name175 = type_core__Byte.name;
1562 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name175);
1563 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 622);
1564 fatal_exit(1);
1565 }
1566 var176 = var167 + ((unsigned char)0x30);
1567 var170 = var176;
1568 goto RET_LABEL171;
1569 RET_LABEL171:(void)0;
1570 }
1571 }
1572 {
1573 { /* Inline native#NativeString#[]= (var_nns,var160,var170) on <var_nns:NativeString> */
1574 var_nns[var160]=(unsigned char)var170;
1575 RET_LABEL177:(void)0;
1576 }
1577 }
1578 {
1579 { /* Inline kernel#Int#+ (var_opos,4l) on <var_opos:Int> */
1580 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
1581 /* <4l:Int> isa OTHER */
1582 var180 = 1; /* easy <4l:Int> isa OTHER*/
1583 if (unlikely(!var180)) {
1584 var_class_name183 = type_core__Int.name;
1585 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name183);
1586 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1587 fatal_exit(1);
1588 }
1589 var184 = var_opos + 4l;
1590 var178 = var184;
1591 goto RET_LABEL179;
1592 RET_LABEL179:(void)0;
1593 }
1594 }
1595 var_opos = var178;
1596 } else {
1597 {
1598 { /* Inline native#NativeString#[]= (var_nns,var_opos,var_c) on <var_nns:NativeString> */
1599 var_nns[var_opos]=(unsigned char)var_c;
1600 RET_LABEL185:(void)0;
1601 }
1602 }
1603 {
1604 { /* Inline kernel#Int#+ (var_opos,1l) on <var_opos:Int> */
1605 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1606 /* <1l:Int> isa OTHER */
1607 var188 = 1; /* easy <1l:Int> isa OTHER*/
1608 if (unlikely(!var188)) {
1609 var_class_name191 = type_core__Int.name;
1610 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name191);
1611 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1612 fatal_exit(1);
1613 }
1614 var192 = var_opos + 1l;
1615 var186 = var192;
1616 goto RET_LABEL187;
1617 RET_LABEL187:(void)0;
1618 }
1619 }
1620 var_opos = var186;
1621 }
1622 }
1623 }
1624 }
1625 }
1626 }
1627 {
1628 { /* Inline kernel#Int#+ (var_pos,1l) on <var_pos:Int> */
1629 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1630 /* <1l:Int> isa OTHER */
1631 var195 = 1; /* easy <1l:Int> isa OTHER*/
1632 if (unlikely(!var195)) {
1633 var_class_name198 = type_core__Int.name;
1634 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name198);
1635 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1636 fatal_exit(1);
1637 }
1638 var199 = var_pos + 1l;
1639 var193 = var199;
1640 goto RET_LABEL194;
1641 RET_LABEL194:(void)0;
1642 }
1643 }
1644 var_pos = var193;
1645 } else {
1646 goto BREAK_label;
1647 }
1648 }
1649 BREAK_label: (void)0;
1650 {
1651 var201 = (val*)(var_nlen<<2|1);
1652 var200 = core__flat___NativeString___to_s_unsafe(var_nns, var201);
1653 }
1654 var = var200;
1655 goto RET_LABEL;
1656 RET_LABEL:;
1657 return var;
1658 }
1659 /* method flat#FlatText#[] for (self: FlatText, Int): Char */
1660 uint32_t core__flat___FlatText___core__abstract_text__Text___91d_93d(val* self, long p0) {
1661 uint32_t var /* : Char */;
1662 long var_index /* var index: Int */;
1663 short int var1 /* : Bool */;
1664 short int var2 /* : Bool */;
1665 short int var4 /* : Bool */;
1666 int cltype;
1667 int idtype;
1668 const char* var_class_name;
1669 short int var5 /* : Bool */;
1670 short int var_ /* var : Bool */;
1671 long var6 /* : Int */;
1672 short int var7 /* : Bool */;
1673 short int var9 /* : Bool */;
1674 int cltype10;
1675 int idtype11;
1676 const char* var_class_name12;
1677 short int var13 /* : Bool */;
1678 uint32_t var14 /* : Char */;
1679 var_index = p0;
1680 {
1681 { /* Inline kernel#Int#>= (var_index,0l) on <var_index:Int> */
1682 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1683 /* <0l:Int> isa OTHER */
1684 var4 = 1; /* easy <0l:Int> isa OTHER*/
1685 if (unlikely(!var4)) {
1686 var_class_name = type_core__Int.name;
1687 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1688 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
1689 fatal_exit(1);
1690 }
1691 var5 = var_index >= 0l;
1692 var2 = var5;
1693 goto RET_LABEL3;
1694 RET_LABEL3:(void)0;
1695 }
1696 }
1697 var_ = var2;
1698 if (var2){
1699 var6 = self->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <self:FlatText> */
1700 {
1701 { /* Inline kernel#Int#< (var_index,var6) on <var_index:Int> */
1702 /* Covariant cast for argument 0 (i) <var6:Int> isa OTHER */
1703 /* <var6:Int> isa OTHER */
1704 var9 = 1; /* easy <var6:Int> isa OTHER*/
1705 if (unlikely(!var9)) {
1706 var_class_name12 = type_core__Int.name;
1707 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name12);
1708 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1709 fatal_exit(1);
1710 }
1711 var13 = var_index < var6;
1712 var7 = var13;
1713 goto RET_LABEL8;
1714 RET_LABEL8:(void)0;
1715 }
1716 }
1717 var1 = var7;
1718 } else {
1719 var1 = var_;
1720 }
1721 if (unlikely(!var1)) {
1722 PRINT_ERROR("Runtime error: %s", "Assert failed");
1723 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 295);
1724 fatal_exit(1);
1725 }
1726 {
1727 var14 = core__flat___FlatText___fetch_char_at(self, var_index);
1728 }
1729 var = var14;
1730 goto RET_LABEL;
1731 RET_LABEL:;
1732 return var;
1733 }
1734 /* method flat#FlatText#fetch_char_at for (self: FlatText, Int): Char */
1735 uint32_t core__flat___FlatText___fetch_char_at(val* self, long p0) {
1736 uint32_t var /* : Char */;
1737 long var_index /* var index: Int */;
1738 long var1 /* : Int */;
1739 long var_i /* var i: Int */;
1740 char* var2 /* : NativeString */;
1741 char* var_items /* var items: NativeString */;
1742 unsigned char var3 /* : Byte */;
1743 unsigned char var5 /* : Byte */;
1744 unsigned char var_b /* var b: Byte */;
1745 unsigned char var6 /* : Byte */;
1746 unsigned char var8 /* : Byte */;
1747 short int var9 /* : Bool */;
1748 short int var11 /* : Bool */;
1749 uint32_t var12 /* : Char */;
1750 uint32_t var14 /* : Char */;
1751 uint32_t var15 /* : Char */;
1752 var_index = p0;
1753 {
1754 var1 = core__flat___FlatText___char_to_byte_index(self, var_index);
1755 }
1756 var_i = var1;
1757 var2 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatText> */
1758 var_items = var2;
1759 {
1760 { /* Inline native#NativeString#[] (var_items,var_i) on <var_items:NativeString> */
1761 var5 = (unsigned char)((int)var_items[var_i]);
1762 var3 = var5;
1763 goto RET_LABEL4;
1764 RET_LABEL4:(void)0;
1765 }
1766 }
1767 var_b = var3;
1768 {
1769 { /* Inline math#Byte#& (var_b,((unsigned char)0x80)) on <var_b:Byte> */
1770 var8 = var_b & ((unsigned char)0x80);
1771 var6 = var8;
1772 goto RET_LABEL7;
1773 RET_LABEL7:(void)0;
1774 }
1775 }
1776 {
1777 { /* Inline kernel#Byte#== (var6,((unsigned char)0x00)) on <var6:Byte> */
1778 var11 = var6 == ((unsigned char)0x00);
1779 var9 = var11;
1780 goto RET_LABEL10;
1781 RET_LABEL10:(void)0;
1782 }
1783 }
1784 if (var9){
1785 {
1786 { /* Inline kernel#Byte#ascii (var_b) on <var_b:Byte> */
1787 var14 = (uint32_t)var_b;
1788 var12 = var14;
1789 goto RET_LABEL13;
1790 RET_LABEL13:(void)0;
1791 }
1792 }
1793 var = var12;
1794 goto RET_LABEL;
1795 } else {
1796 }
1797 {
1798 var15 = core___core__NativeString___char_at(var_items, var_i);
1799 }
1800 var = var15;
1801 goto RET_LABEL;
1802 RET_LABEL:;
1803 return var;
1804 }
1805 /* method flat#FlatText#to_hex for (self: FlatText, nullable Int, nullable Int): Int */
1806 long core__flat___FlatText___core__abstract_text__Text__to_hex(val* self, val* p0, val* p1) {
1807 long var /* : Int */;
1808 val* var_pos /* var pos: nullable Int */;
1809 val* var_ln /* var ln: nullable Int */;
1810 long var_res /* var res: Int */;
1811 short int var1 /* : Bool */;
1812 short int var2 /* : Bool */;
1813 short int var4 /* : Bool */;
1814 val* var5 /* : nullable Int */;
1815 short int var6 /* : Bool */;
1816 short int var7 /* : Bool */;
1817 short int var9 /* : Bool */;
1818 long var10 /* : Int */;
1819 long var12 /* : Int */;
1820 long var13 /* : Int */;
1821 short int var15 /* : Bool */;
1822 int cltype;
1823 int idtype;
1824 const char* var_class_name;
1825 long var16 /* : Int */;
1826 long var17 /* : Int */;
1827 val* var18 /* : nullable Int */;
1828 long var19 /* : Int */;
1829 long var20 /* : Int */;
1830 val* var21 /* : nullable Int */;
1831 char* var22 /* : NativeString */;
1832 char* var_its /* var its: NativeString */;
1833 long var23 /* : Int */;
1834 short int var25 /* : Bool */;
1835 int cltype26;
1836 int idtype27;
1837 const char* var_class_name28;
1838 long var29 /* : Int */;
1839 long var30 /* : Int */;
1840 long var31 /* : Int */;
1841 long var_max /* var max: Int */;
1842 long var32 /* : Int */;
1843 long var_i /* var i: Int */;
1844 long var_ /* var : Int */;
1845 short int var33 /* : Bool */;
1846 short int var35 /* : Bool */;
1847 int cltype36;
1848 int idtype37;
1849 const char* var_class_name38;
1850 short int var39 /* : Bool */;
1851 long var40 /* : Int */;
1852 long var42 /* : Int */;
1853 unsigned char var43 /* : Byte */;
1854 unsigned char var45 /* : Byte */;
1855 uint32_t var46 /* : Char */;
1856 uint32_t var48 /* : Char */;
1857 long var49 /* : Int */;
1858 long var50 /* : Int */;
1859 short int var52 /* : Bool */;
1860 int cltype53;
1861 int idtype54;
1862 const char* var_class_name55;
1863 long var56 /* : Int */;
1864 long var57 /* : Int */;
1865 var_pos = p0;
1866 var_ln = p1;
1867 var_res = 0l;
1868 if (var_pos == NULL) {
1869 var1 = 1; /* is null */
1870 } else {
1871 var1 = 0; /* arg is null but recv is not */
1872 }
1873 if (0) {
1874 { /* Inline kernel#Int#== (var_pos,((val*)NULL)) on <var_pos:nullable Int> */
1875 var4 = 0; /* incompatible types Int vs. null; cannot be NULL */
1876 var2 = var4;
1877 goto RET_LABEL3;
1878 RET_LABEL3:(void)0;
1879 }
1880 var1 = var2;
1881 }
1882 if (var1){
1883 var5 = (val*)(0l<<2|1);
1884 var_pos = var5;
1885 } else {
1886 }
1887 if (var_ln == NULL) {
1888 var6 = 1; /* is null */
1889 } else {
1890 var6 = 0; /* arg is null but recv is not */
1891 }
1892 if (0) {
1893 { /* Inline kernel#Int#== (var_ln,((val*)NULL)) on <var_ln:nullable Int> */
1894 var9 = 0; /* incompatible types Int vs. null; cannot be NULL */
1895 var7 = var9;
1896 goto RET_LABEL8;
1897 RET_LABEL8:(void)0;
1898 }
1899 var6 = var7;
1900 }
1901 if (var6){
1902 {
1903 { /* Inline abstract_text#FlatText#length (self) on <self:FlatText> */
1904 var12 = self->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <self:FlatText> */
1905 var10 = var12;
1906 RET_LABEL11:(void)0;
1907 }
1908 }
1909 {
1910 { /* Inline kernel#Int#- (var10,var_pos) on <var10:Int> */
1911 /* Covariant cast for argument 0 (i) <var_pos:nullable Int(Int)> isa OTHER */
1912 /* <var_pos:nullable Int(Int)> isa OTHER */
1913 var15 = 1; /* easy <var_pos:nullable Int(Int)> isa OTHER*/
1914 if (unlikely(!var15)) {
1915 var_class_name = var_pos == NULL ? "null" : (((long)var_pos&3)?type_info[((long)var_pos&3)]:var_pos->type)->name;
1916 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1917 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
1918 fatal_exit(1);
1919 }
1920 var16 = (long)(var_pos)>>2;
1921 var17 = var10 - var16;
1922 var13 = var17;
1923 goto RET_LABEL14;
1924 RET_LABEL14:(void)0;
1925 }
1926 }
1927 var18 = (val*)(var13<<2|1);
1928 var_ln = var18;
1929 } else {
1930 }
1931 {
1932 var20 = (long)(var_pos)>>2;
1933 var19 = core__flat___FlatText___char_to_byte_index(self, var20);
1934 }
1935 var21 = (val*)(var19<<2|1);
1936 var_pos = var21;
1937 var22 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatText> */
1938 var_its = var22;
1939 {
1940 { /* Inline kernel#Int#+ (var_pos,var_ln) on <var_pos:nullable Int(Int)> */
1941 /* Covariant cast for argument 0 (i) <var_ln:nullable Int(Int)> isa OTHER */
1942 /* <var_ln:nullable Int(Int)> isa OTHER */
1943 var25 = 1; /* easy <var_ln:nullable Int(Int)> isa OTHER*/
1944 if (unlikely(!var25)) {
1945 var_class_name28 = var_ln == NULL ? "null" : (((long)var_ln&3)?type_info[((long)var_ln&3)]:var_ln->type)->name;
1946 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28);
1947 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1948 fatal_exit(1);
1949 }
1950 var29 = (long)(var_pos)>>2;
1951 var30 = (long)(var_ln)>>2;
1952 var31 = var29 + var30;
1953 var23 = var31;
1954 goto RET_LABEL24;
1955 RET_LABEL24:(void)0;
1956 }
1957 }
1958 var_max = var23;
1959 var32 = (long)(var_pos)>>2;
1960 var_i = var32;
1961 var_ = var_max;
1962 for(;;) {
1963 {
1964 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
1965 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
1966 /* <var_:Int> isa OTHER */
1967 var35 = 1; /* easy <var_:Int> isa OTHER*/
1968 if (unlikely(!var35)) {
1969 var_class_name38 = type_core__Int.name;
1970 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name38);
1971 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1972 fatal_exit(1);
1973 }
1974 var39 = var_i < var_;
1975 var33 = var39;
1976 goto RET_LABEL34;
1977 RET_LABEL34:(void)0;
1978 }
1979 }
1980 if (var33){
1981 } else {
1982 goto BREAK_label;
1983 }
1984 {
1985 { /* Inline kernel#Int#<< (var_res,4l) on <var_res:Int> */
1986 var42 = var_res << 4l;
1987 var40 = var42;
1988 goto RET_LABEL41;
1989 RET_LABEL41:(void)0;
1990 }
1991 }
1992 var_res = var40;
1993 {
1994 { /* Inline native#NativeString#[] (var_its,var_i) on <var_its:NativeString> */
1995 var45 = (unsigned char)((int)var_its[var_i]);
1996 var43 = var45;
1997 goto RET_LABEL44;
1998 RET_LABEL44:(void)0;
1999 }
2000 }
2001 {
2002 { /* Inline kernel#Byte#ascii (var43) on <var43:Byte> */
2003 var48 = (uint32_t)var43;
2004 var46 = var48;
2005 goto RET_LABEL47;
2006 RET_LABEL47:(void)0;
2007 }
2008 }
2009 {
2010 var49 = core__abstract_text___Char___from_hex(var46);
2011 }
2012 {
2013 { /* Inline kernel#Int#+ (var_res,var49) on <var_res:Int> */
2014 /* Covariant cast for argument 0 (i) <var49:Int> isa OTHER */
2015 /* <var49:Int> isa OTHER */
2016 var52 = 1; /* easy <var49:Int> isa OTHER*/
2017 if (unlikely(!var52)) {
2018 var_class_name55 = type_core__Int.name;
2019 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name55);
2020 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2021 fatal_exit(1);
2022 }
2023 var56 = var_res + var49;
2024 var50 = var56;
2025 goto RET_LABEL51;
2026 RET_LABEL51:(void)0;
2027 }
2028 }
2029 var_res = var50;
2030 {
2031 var57 = core___core__Int___Discrete__successor(var_i, 1l);
2032 }
2033 var_i = var57;
2034 }
2035 BREAK_label: (void)0;
2036 var = var_res;
2037 goto RET_LABEL;
2038 RET_LABEL:;
2039 return var;
2040 }
2041 /* method flat#FlatString#first_byte for (self: FlatString): Int */
2042 long core___core__FlatString___FlatText__first_byte(val* self) {
2043 long var /* : Int */;
2044 long var1 /* : Int */;
2045 var1 = self->attrs[COLOR_core__flat__FlatString___first_byte].l; /* _first_byte on <self:FlatString> */
2046 var = var1;
2047 RET_LABEL:;
2048 return var;
2049 }
2050 /* method flat#FlatString#chars for (self: FlatString): SequenceRead[Char] */
2051 val* core___core__FlatString___core__abstract_text__Text__chars(val* self) {
2052 val* var /* : SequenceRead[Char] */;
2053 short int var1 /* : Bool */;
2054 val* var2 /* : SequenceRead[Char] */;
2055 val* var3 /* : FlatStringCharView */;
2056 var1 = self->attrs[COLOR_core__flat__FlatString___chars].val != NULL; /* _chars on <self:FlatString> */
2057 if(likely(var1)) {
2058 var2 = self->attrs[COLOR_core__flat__FlatString___chars].val; /* _chars on <self:FlatString> */
2059 if (unlikely(var2 == NULL)) {
2060 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
2061 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 336);
2062 fatal_exit(1);
2063 }
2064 } else {
2065 var3 = NEW_core__flat__FlatStringCharView(&type_core__flat__FlatStringCharView);
2066 {
2067 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_core__abstract_text__StringCharView__target_61d]))(var3, self); /* target= on <var3:FlatStringCharView>*/
2068 }
2069 {
2070 ((void(*)(val* self))(var3->class->vft[COLOR_core__kernel__Object__init]))(var3); /* init on <var3:FlatStringCharView>*/
2071 }
2072 self->attrs[COLOR_core__flat__FlatString___chars].val = var3; /* _chars on <self:FlatString> */
2073 var2 = var3;
2074 }
2075 var = var2;
2076 RET_LABEL:;
2077 return var;
2078 }
2079 /* method flat#FlatString#bytes for (self: FlatString): SequenceRead[Byte] */
2080 val* core___core__FlatString___core__abstract_text__Text__bytes(val* self) {
2081 val* var /* : SequenceRead[Byte] */;
2082 short int var1 /* : Bool */;
2083 val* var2 /* : SequenceRead[Byte] */;
2084 val* var3 /* : FlatStringByteView */;
2085 var1 = self->attrs[COLOR_core__flat__FlatString___bytes].val != NULL; /* _bytes on <self:FlatString> */
2086 if(likely(var1)) {
2087 var2 = self->attrs[COLOR_core__flat__FlatString___bytes].val; /* _bytes on <self:FlatString> */
2088 if (unlikely(var2 == NULL)) {
2089 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bytes");
2090 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 338);
2091 fatal_exit(1);
2092 }
2093 } else {
2094 var3 = NEW_core__flat__FlatStringByteView(&type_core__flat__FlatStringByteView);
2095 {
2096 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_core__abstract_text__StringByteView__target_61d]))(var3, self); /* target= on <var3:FlatStringByteView>*/
2097 }
2098 {
2099 ((void(*)(val* self))(var3->class->vft[COLOR_core__kernel__Object__init]))(var3); /* init on <var3:FlatStringByteView>*/
2100 }
2101 self->attrs[COLOR_core__flat__FlatString___bytes].val = var3; /* _bytes on <self:FlatString> */
2102 var2 = var3;
2103 }
2104 var = var2;
2105 RET_LABEL:;
2106 return var;
2107 }
2108 /* method flat#FlatString#to_cstring for (self: FlatString): NativeString */
2109 char* core___core__FlatString___core__abstract_text__Text__to_cstring(val* self) {
2110 char* var /* : NativeString */;
2111 short int var1 /* : Bool */;
2112 char* var2 /* : NativeString */;
2113 char* var3 /* : NativeString */;
2114 long var5 /* : Int */;
2115 long var_blen /* var blen: Int */;
2116 char* var6 /* : NativeString */;
2117 long var7 /* : Int */;
2118 short int var9 /* : Bool */;
2119 int cltype;
2120 int idtype;
2121 const char* var_class_name;
2122 long var10 /* : Int */;
2123 char* var11 /* : NativeString */;
2124 char* var13 /* : NativeString */;
2125 char* var_new_items /* var new_items: NativeString */;
2126 char* var14 /* : NativeString */;
2127 long var15 /* : Int */;
2128 var1 = self->attrs[COLOR_core__flat__FlatString__lazy_32d_to_cstring].s; /* lazy _to_cstring on <self:FlatString> */
2129 if(likely(var1)) {
2130 var2 = self->attrs[COLOR_core__flat__FlatString___to_cstring].str; /* _to_cstring on <self:FlatString> */
2131 } else {
2132 {
2133 var5 = self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <self:FlatString> */
2134 var_blen = var5;
2135 var6 = NULL/*special!*/;
2136 {
2137 { /* Inline kernel#Int#+ (var_blen,1l) on <var_blen:Int> */
2138 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2139 /* <1l:Int> isa OTHER */
2140 var9 = 1; /* easy <1l:Int> isa OTHER*/
2141 if (unlikely(!var9)) {
2142 var_class_name = type_core__Int.name;
2143 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2144 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2145 fatal_exit(1);
2146 }
2147 var10 = var_blen + 1l;
2148 var7 = var10;
2149 goto RET_LABEL8;
2150 RET_LABEL8:(void)0;
2151 }
2152 }
2153 {
2154 { /* Inline native#NativeString#new (var6,var7) on <var6:NativeString> */
2155 var13 = (char*)nit_alloc(var7);
2156 var11 = var13;
2157 goto RET_LABEL12;
2158 RET_LABEL12:(void)0;
2159 }
2160 }
2161 var_new_items = var11;
2162 var14 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatString> */
2163 var15 = self->attrs[COLOR_core__flat__FlatString___first_byte].l; /* _first_byte on <self:FlatString> */
2164 {
2165 { /* Inline native#NativeString#copy_to (var14,var_new_items,var_blen,var15,0l) on <var14:NativeString> */
2166 memmove(var_new_items+0l,var14+var15,var_blen);
2167 RET_LABEL16:(void)0;
2168 }
2169 }
2170 {
2171 { /* Inline native#NativeString#[]= (var_new_items,var_blen,((unsigned char)0x00)) on <var_new_items:NativeString> */
2172 var_new_items[var_blen]=(unsigned char)((unsigned char)0x00);
2173 RET_LABEL17:(void)0;
2174 }
2175 }
2176 var3 = var_new_items;
2177 goto RET_LABEL4;
2178 RET_LABEL4:(void)0;
2179 }
2180 self->attrs[COLOR_core__flat__FlatString___to_cstring].str = var3; /* _to_cstring on <self:FlatString> */
2181 var2 = var3;
2182 self->attrs[COLOR_core__flat__FlatString__lazy_32d_to_cstring].s = 1; /* lazy _to_cstring on <self:FlatString> */
2183 }
2184 var = var2;
2185 RET_LABEL:;
2186 return var;
2187 }
2188 /* method flat#FlatString#to_cstring= for (self: FlatString, NativeString) */
2189 void core___core__FlatString___to_cstring_61d(val* self, char* p0) {
2190 self->attrs[COLOR_core__flat__FlatString___to_cstring].str = p0; /* _to_cstring on <self:FlatString> */
2191 self->attrs[COLOR_core__flat__FlatString__lazy_32d_to_cstring].s = 1; /* lazy _to_cstring on <self:FlatString> */
2192 RET_LABEL:;
2193 }
2194 /* method flat#FlatString#substring_from for (self: FlatString, Int): String */
2195 val* core___core__FlatString___core__abstract_text__Text__substring_from(val* self, long p0) {
2196 val* var /* : String */;
2197 long var_from /* var from: Int */;
2198 long var1 /* : Int */;
2199 short int var2 /* : Bool */;
2200 short int var4 /* : Bool */;
2201 int cltype;
2202 int idtype;
2203 const char* var_class_name;
2204 short int var5 /* : Bool */;
2205 val* var6 /* : String */;
2206 short int var7 /* : Bool */;
2207 short int var9 /* : Bool */;
2208 int cltype10;
2209 int idtype11;
2210 const char* var_class_name12;
2211 short int var13 /* : Bool */;
2212 long var14 /* : Int */;
2213 long var_c /* var c: Int */;
2214 long var15 /* : Int */;
2215 long var16 /* : Int */;
2216 short int var18 /* : Bool */;
2217 int cltype19;
2218 int idtype20;
2219 const char* var_class_name21;
2220 long var22 /* : Int */;
2221 long var_st /* var st: Int */;
2222 long var23 /* : Int */;
2223 long var25 /* : Int */;
2224 long var26 /* : Int */;
2225 short int var28 /* : Bool */;
2226 int cltype29;
2227 int idtype30;
2228 const char* var_class_name31;
2229 long var32 /* : Int */;
2230 long var_fln /* var fln: Int */;
2231 val* var33 /* : FlatString */;
2232 char* var34 /* : NativeString */;
2233 char* var36 /* : NativeString */;
2234 long var37 /* : Int */;
2235 long var38 /* : Int */;
2236 short int var40 /* : Bool */;
2237 int cltype41;
2238 int idtype42;
2239 const char* var_class_name43;
2240 long var44 /* : Int */;
2241 var_from = p0;
2242 var1 = self->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <self:FlatString> */
2243 {
2244 { /* Inline kernel#Int#>= (var_from,var1) on <var_from:Int> */
2245 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
2246 /* <var1:Int> isa OTHER */
2247 var4 = 1; /* easy <var1:Int> isa OTHER*/
2248 if (unlikely(!var4)) {
2249 var_class_name = type_core__Int.name;
2250 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2251 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
2252 fatal_exit(1);
2253 }
2254 var5 = var_from >= var1;
2255 var2 = var5;
2256 goto RET_LABEL3;
2257 RET_LABEL3:(void)0;
2258 }
2259 }
2260 if (var2){
2261 {
2262 var6 = core___core__FlatString___core__abstract_text__Text__empty(self);
2263 }
2264 var = var6;
2265 goto RET_LABEL;
2266 } else {
2267 }
2268 {
2269 { /* Inline kernel#Int#<= (var_from,0l) on <var_from:Int> */
2270 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
2271 /* <0l:Int> isa OTHER */
2272 var9 = 1; /* easy <0l:Int> isa OTHER*/
2273 if (unlikely(!var9)) {
2274 var_class_name12 = type_core__Int.name;
2275 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name12);
2276 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
2277 fatal_exit(1);
2278 }
2279 var13 = var_from <= 0l;
2280 var7 = var13;
2281 goto RET_LABEL8;
2282 RET_LABEL8:(void)0;
2283 }
2284 }
2285 if (var7){
2286 var = self;
2287 goto RET_LABEL;
2288 } else {
2289 }
2290 {
2291 var14 = core__flat___FlatText___char_to_byte_index(self, var_from);
2292 }
2293 var_c = var14;
2294 var15 = self->attrs[COLOR_core__flat__FlatString___first_byte].l; /* _first_byte on <self:FlatString> */
2295 {
2296 { /* Inline kernel#Int#- (var_c,var15) on <var_c:Int> */
2297 /* Covariant cast for argument 0 (i) <var15:Int> isa OTHER */
2298 /* <var15:Int> isa OTHER */
2299 var18 = 1; /* easy <var15:Int> isa OTHER*/
2300 if (unlikely(!var18)) {
2301 var_class_name21 = type_core__Int.name;
2302 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
2303 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
2304 fatal_exit(1);
2305 }
2306 var22 = var_c - var15;
2307 var16 = var22;
2308 goto RET_LABEL17;
2309 RET_LABEL17:(void)0;
2310 }
2311 }
2312 var_st = var16;
2313 {
2314 { /* Inline abstract_text#FlatText#bytelen (self) on <self:FlatString> */
2315 var25 = self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <self:FlatString> */
2316 var23 = var25;
2317 RET_LABEL24:(void)0;
2318 }
2319 }
2320 {
2321 { /* Inline kernel#Int#- (var23,var_st) on <var23:Int> */
2322 /* Covariant cast for argument 0 (i) <var_st:Int> isa OTHER */
2323 /* <var_st:Int> isa OTHER */
2324 var28 = 1; /* easy <var_st:Int> isa OTHER*/
2325 if (unlikely(!var28)) {
2326 var_class_name31 = type_core__Int.name;
2327 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31);
2328 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
2329 fatal_exit(1);
2330 }
2331 var32 = var23 - var_st;
2332 var26 = var32;
2333 goto RET_LABEL27;
2334 RET_LABEL27:(void)0;
2335 }
2336 }
2337 var_fln = var26;
2338 var33 = NEW_core__FlatString(&type_core__FlatString);
2339 {
2340 { /* Inline abstract_text#FlatText#items (self) on <self:FlatString> */
2341 var36 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatString> */
2342 var34 = var36;
2343 RET_LABEL35:(void)0;
2344 }
2345 }
2346 var37 = self->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <self:FlatString> */
2347 {
2348 { /* Inline kernel#Int#- (var37,var_from) on <var37:Int> */
2349 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
2350 /* <var_from:Int> isa OTHER */
2351 var40 = 1; /* easy <var_from:Int> isa OTHER*/
2352 if (unlikely(!var40)) {
2353 var_class_name43 = type_core__Int.name;
2354 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name43);
2355 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
2356 fatal_exit(1);
2357 }
2358 var44 = var37 - var_from;
2359 var38 = var44;
2360 goto RET_LABEL39;
2361 RET_LABEL39:(void)0;
2362 }
2363 }
2364 {
2365 core___core__FlatString___full(var33, var34, var_fln, var_c, var38); /* Direct call flat#FlatString#full on <var33:FlatString>*/
2366 }
2367 var = var33;
2368 goto RET_LABEL;
2369 RET_LABEL:;
2370 return var;
2371 }
2372 /* method flat#FlatString#substring for (self: FlatString, Int, Int): String */
2373 val* core___core__FlatString___core__abstract_text__Text__substring(val* self, long p0, long p1) {
2374 val* var /* : String */;
2375 long var_from /* var from: Int */;
2376 long var_count /* var count: Int */;
2377 short int var1 /* : Bool */;
2378 short int var3 /* : Bool */;
2379 int cltype;
2380 int idtype;
2381 const char* var_class_name;
2382 short int var4 /* : Bool */;
2383 short int var5 /* : Bool */;
2384 short int var7 /* : Bool */;
2385 int cltype8;
2386 int idtype9;
2387 const char* var_class_name10;
2388 short int var11 /* : Bool */;
2389 long var12 /* : Int */;
2390 short int var14 /* : Bool */;
2391 int cltype15;
2392 int idtype16;
2393 const char* var_class_name17;
2394 long var18 /* : Int */;
2395 short int var19 /* : Bool */;
2396 short int var21 /* : Bool */;
2397 int cltype22;
2398 int idtype23;
2399 const char* var_class_name24;
2400 short int var25 /* : Bool */;
2401 static val* varonce;
2402 val* var26 /* : String */;
2403 char* var27 /* : NativeString */;
2404 val* var28 /* : String */;
2405 long var29 /* : Int */;
2406 long var_ln /* var ln: Int */;
2407 long var30 /* : Int */;
2408 short int var32 /* : Bool */;
2409 int cltype33;
2410 int idtype34;
2411 const char* var_class_name35;
2412 long var36 /* : Int */;
2413 short int var37 /* : Bool */;
2414 short int var39 /* : Bool */;
2415 int cltype40;
2416 int idtype41;
2417 const char* var_class_name42;
2418 short int var43 /* : Bool */;
2419 long var44 /* : Int */;
2420 short int var46 /* : Bool */;
2421 int cltype47;
2422 int idtype48;
2423 const char* var_class_name49;
2424 long var50 /* : Int */;
2425 short int var51 /* : Bool */;
2426 short int var53 /* : Bool */;
2427 int cltype54;
2428 int idtype55;
2429 const char* var_class_name56;
2430 short int var57 /* : Bool */;
2431 static val* varonce58;
2432 val* var59 /* : String */;
2433 char* var60 /* : NativeString */;
2434 val* var61 /* : String */;
2435 long var62 /* : Int */;
2436 short int var64 /* : Bool */;
2437 int cltype65;
2438 int idtype66;
2439 const char* var_class_name67;
2440 long var68 /* : Int */;
2441 long var69 /* : Int */;
2442 short int var71 /* : Bool */;
2443 int cltype72;
2444 int idtype73;
2445 const char* var_class_name74;
2446 long var75 /* : Int */;
2447 long var_end_index /* var end_index: Int */;
2448 val* var76 /* : String */;
2449 var_from = p0;
2450 var_count = p1;
2451 {
2452 { /* Inline kernel#Int#>= (var_count,0l) on <var_count:Int> */
2453 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
2454 /* <0l:Int> isa OTHER */
2455 var3 = 1; /* easy <0l:Int> isa OTHER*/
2456 if (unlikely(!var3)) {
2457 var_class_name = type_core__Int.name;
2458 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2459 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
2460 fatal_exit(1);
2461 }
2462 var4 = var_count >= 0l;
2463 var1 = var4;
2464 goto RET_LABEL2;
2465 RET_LABEL2:(void)0;
2466 }
2467 }
2468 if (unlikely(!var1)) {
2469 PRINT_ERROR("Runtime error: %s", "Assert failed");
2470 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 373);
2471 fatal_exit(1);
2472 }
2473 {
2474 { /* Inline kernel#Int#< (var_from,0l) on <var_from:Int> */
2475 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
2476 /* <0l:Int> isa OTHER */
2477 var7 = 1; /* easy <0l:Int> isa OTHER*/
2478 if (unlikely(!var7)) {
2479 var_class_name10 = type_core__Int.name;
2480 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name10);
2481 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2482 fatal_exit(1);
2483 }
2484 var11 = var_from < 0l;
2485 var5 = var11;
2486 goto RET_LABEL6;
2487 RET_LABEL6:(void)0;
2488 }
2489 }
2490 if (var5){
2491 {
2492 { /* Inline kernel#Int#+ (var_count,var_from) on <var_count:Int> */
2493 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
2494 /* <var_from:Int> isa OTHER */
2495 var14 = 1; /* easy <var_from:Int> isa OTHER*/
2496 if (unlikely(!var14)) {
2497 var_class_name17 = type_core__Int.name;
2498 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
2499 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2500 fatal_exit(1);
2501 }
2502 var18 = var_count + var_from;
2503 var12 = var18;
2504 goto RET_LABEL13;
2505 RET_LABEL13:(void)0;
2506 }
2507 }
2508 var_count = var12;
2509 {
2510 { /* Inline kernel#Int#< (var_count,0l) on <var_count:Int> */
2511 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
2512 /* <0l:Int> isa OTHER */
2513 var21 = 1; /* easy <0l:Int> isa OTHER*/
2514 if (unlikely(!var21)) {
2515 var_class_name24 = type_core__Int.name;
2516 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24);
2517 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2518 fatal_exit(1);
2519 }
2520 var25 = var_count < 0l;
2521 var19 = var25;
2522 goto RET_LABEL20;
2523 RET_LABEL20:(void)0;
2524 }
2525 }
2526 if (var19){
2527 if (likely(varonce!=NULL)) {
2528 var26 = varonce;
2529 } else {
2530 var27 = "";
2531 var28 = core__flat___NativeString___to_s_full(var27, 0l, 0l);
2532 var26 = var28;
2533 varonce = var26;
2534 }
2535 var = var26;
2536 goto RET_LABEL;
2537 } else {
2538 }
2539 var_from = 0l;
2540 } else {
2541 }
2542 var29 = self->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <self:FlatString> */
2543 var_ln = var29;
2544 {
2545 { /* Inline kernel#Int#+ (var_count,var_from) on <var_count:Int> */
2546 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
2547 /* <var_from:Int> isa OTHER */
2548 var32 = 1; /* easy <var_from:Int> isa OTHER*/
2549 if (unlikely(!var32)) {
2550 var_class_name35 = type_core__Int.name;
2551 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35);
2552 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2553 fatal_exit(1);
2554 }
2555 var36 = var_count + var_from;
2556 var30 = var36;
2557 goto RET_LABEL31;
2558 RET_LABEL31:(void)0;
2559 }
2560 }
2561 {
2562 { /* Inline kernel#Int#> (var30,var_ln) on <var30:Int> */
2563 /* Covariant cast for argument 0 (i) <var_ln:Int> isa OTHER */
2564 /* <var_ln:Int> isa OTHER */
2565 var39 = 1; /* easy <var_ln:Int> isa OTHER*/
2566 if (unlikely(!var39)) {
2567 var_class_name42 = type_core__Int.name;
2568 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name42);
2569 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
2570 fatal_exit(1);
2571 }
2572 var43 = var30 > var_ln;
2573 var37 = var43;
2574 goto RET_LABEL38;
2575 RET_LABEL38:(void)0;
2576 }
2577 }
2578 if (var37){
2579 {
2580 { /* Inline kernel#Int#- (var_ln,var_from) on <var_ln:Int> */
2581 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
2582 /* <var_from:Int> isa OTHER */
2583 var46 = 1; /* easy <var_from:Int> isa OTHER*/
2584 if (unlikely(!var46)) {
2585 var_class_name49 = type_core__Int.name;
2586 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name49);
2587 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
2588 fatal_exit(1);
2589 }
2590 var50 = var_ln - var_from;
2591 var44 = var50;
2592 goto RET_LABEL45;
2593 RET_LABEL45:(void)0;
2594 }
2595 }
2596 var_count = var44;
2597 } else {
2598 }
2599 {
2600 { /* Inline kernel#Int#<= (var_count,0l) on <var_count:Int> */
2601 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
2602 /* <0l:Int> isa OTHER */
2603 var53 = 1; /* easy <0l:Int> isa OTHER*/
2604 if (unlikely(!var53)) {
2605 var_class_name56 = type_core__Int.name;
2606 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name56);
2607 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
2608 fatal_exit(1);
2609 }
2610 var57 = var_count <= 0l;
2611 var51 = var57;
2612 goto RET_LABEL52;
2613 RET_LABEL52:(void)0;
2614 }
2615 }
2616 if (var51){
2617 if (likely(varonce58!=NULL)) {
2618 var59 = varonce58;
2619 } else {
2620 var60 = "";
2621 var61 = core__flat___NativeString___to_s_full(var60, 0l, 0l);
2622 var59 = var61;
2623 varonce58 = var59;
2624 }
2625 var = var59;
2626 goto RET_LABEL;
2627 } else {
2628 }
2629 {
2630 { /* Inline kernel#Int#+ (var_from,var_count) on <var_from:Int> */
2631 /* Covariant cast for argument 0 (i) <var_count:Int> isa OTHER */
2632 /* <var_count:Int> isa OTHER */
2633 var64 = 1; /* easy <var_count:Int> isa OTHER*/
2634 if (unlikely(!var64)) {
2635 var_class_name67 = type_core__Int.name;
2636 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name67);
2637 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2638 fatal_exit(1);
2639 }
2640 var68 = var_from + var_count;
2641 var62 = var68;
2642 goto RET_LABEL63;
2643 RET_LABEL63:(void)0;
2644 }
2645 }
2646 {
2647 { /* Inline kernel#Int#- (var62,1l) on <var62:Int> */
2648 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2649 /* <1l:Int> isa OTHER */
2650 var71 = 1; /* easy <1l:Int> isa OTHER*/
2651 if (unlikely(!var71)) {
2652 var_class_name74 = type_core__Int.name;
2653 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name74);
2654 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
2655 fatal_exit(1);
2656 }
2657 var75 = var62 - 1l;
2658 var69 = var75;
2659 goto RET_LABEL70;
2660 RET_LABEL70:(void)0;
2661 }
2662 }
2663 var_end_index = var69;
2664 {
2665 var76 = core___core__FlatString___substring_impl(self, var_from, var_count, var_end_index);
2666 }
2667 var = var76;
2668 goto RET_LABEL;
2669 RET_LABEL:;
2670 return var;
2671 }
2672 /* method flat#FlatString#substring_impl for (self: FlatString, Int, Int, Int): String */
2673 val* core___core__FlatString___substring_impl(val* self, long p0, long p1, long p2) {
2674 val* var /* : String */;
2675 long var_from /* var from: Int */;
2676 long var_count /* var count: Int */;
2677 long var_end_index /* var end_index: Int */;
2678 long var1 /* : Int */;
2679 long var_cache /* var cache: Int */;
2680 long var2 /* : Int */;
2681 short int var4 /* : Bool */;
2682 int cltype;
2683 int idtype;
2684 const char* var_class_name;
2685 long var5 /* : Int */;
2686 long var6 /* : Int */;
2687 long var_dfrom /* var dfrom: Int */;
2688 long var7 /* : Int */;
2689 short int var9 /* : Bool */;
2690 int cltype10;
2691 int idtype11;
2692 const char* var_class_name12;
2693 long var13 /* : Int */;
2694 long var14 /* : Int */;
2695 long var_dend /* var dend: Int */;
2696 short int var15 /* : Bool */;
2697 short int var17 /* : Bool */;
2698 int cltype18;
2699 int idtype19;
2700 const char* var_class_name20;
2701 short int var21 /* : Bool */;
2702 long var22 /* : Int */;
2703 long var_bytefrom /* var bytefrom: Int */;
2704 long var23 /* : Int */;
2705 long var_byteto /* var byteto: Int */;
2706 long var24 /* : Int */;
2707 long var25 /* : Int */;
2708 char* var26 /* : NativeString */;
2709 char* var_its /* var its: NativeString */;
2710 long var27 /* : Int */;
2711 long var28 /* : Int */;
2712 short int var30 /* : Bool */;
2713 int cltype31;
2714 int idtype32;
2715 const char* var_class_name33;
2716 long var34 /* : Int */;
2717 long var35 /* : Int */;
2718 short int var37 /* : Bool */;
2719 int cltype38;
2720 int idtype39;
2721 const char* var_class_name40;
2722 long var41 /* : Int */;
2723 val* var42 /* : FlatString */;
2724 long var43 /* : Int */;
2725 short int var45 /* : Bool */;
2726 int cltype46;
2727 int idtype47;
2728 const char* var_class_name48;
2729 long var49 /* : Int */;
2730 long var50 /* : Int */;
2731 short int var52 /* : Bool */;
2732 int cltype53;
2733 int idtype54;
2734 const char* var_class_name55;
2735 long var56 /* : Int */;
2736 val* var_s /* var s: FlatString */;
2737 var_from = p0;
2738 var_count = p1;
2739 var_end_index = p2;
2740 var1 = self->attrs[COLOR_core__flat__FlatText___position].l; /* _position on <self:FlatString> */
2741 var_cache = var1;
2742 {
2743 { /* Inline kernel#Int#- (var_cache,var_from) on <var_cache:Int> */
2744 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
2745 /* <var_from:Int> isa OTHER */
2746 var4 = 1; /* easy <var_from:Int> isa OTHER*/
2747 if (unlikely(!var4)) {
2748 var_class_name = type_core__Int.name;
2749 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2750 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
2751 fatal_exit(1);
2752 }
2753 var5 = var_cache - var_from;
2754 var2 = var5;
2755 goto RET_LABEL3;
2756 RET_LABEL3:(void)0;
2757 }
2758 }
2759 {
2760 var6 = core___core__Int___abs(var2);
2761 }
2762 var_dfrom = var6;
2763 {
2764 { /* Inline kernel#Int#- (var_end_index,var_from) on <var_end_index:Int> */
2765 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
2766 /* <var_from:Int> isa OTHER */
2767 var9 = 1; /* easy <var_from:Int> isa OTHER*/
2768 if (unlikely(!var9)) {
2769 var_class_name12 = type_core__Int.name;
2770 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name12);
2771 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
2772 fatal_exit(1);
2773 }
2774 var13 = var_end_index - var_from;
2775 var7 = var13;
2776 goto RET_LABEL8;
2777 RET_LABEL8:(void)0;
2778 }
2779 }
2780 {
2781 var14 = core___core__Int___abs(var7);
2782 }
2783 var_dend = var14;
2784 {
2785 { /* Inline kernel#Int#< (var_dfrom,var_dend) on <var_dfrom:Int> */
2786 /* Covariant cast for argument 0 (i) <var_dend:Int> isa OTHER */
2787 /* <var_dend:Int> isa OTHER */
2788 var17 = 1; /* easy <var_dend:Int> isa OTHER*/
2789 if (unlikely(!var17)) {
2790 var_class_name20 = type_core__Int.name;
2791 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
2792 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2793 fatal_exit(1);
2794 }
2795 var21 = var_dfrom < var_dend;
2796 var15 = var21;
2797 goto RET_LABEL16;
2798 RET_LABEL16:(void)0;
2799 }
2800 }
2801 if (var15){
2802 {
2803 var22 = core__flat___FlatText___char_to_byte_index(self, var_from);
2804 }
2805 var_bytefrom = var22;
2806 {
2807 var23 = core__flat___FlatText___char_to_byte_index(self, var_end_index);
2808 }
2809 var_byteto = var23;
2810 } else {
2811 {
2812 var24 = core__flat___FlatText___char_to_byte_index(self, var_end_index);
2813 }
2814 var_byteto = var24;
2815 {
2816 var25 = core__flat___FlatText___char_to_byte_index(self, var_from);
2817 }
2818 var_bytefrom = var25;
2819 }
2820 var26 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatString> */
2821 var_its = var26;
2822 {
2823 var27 = core___core__NativeString___length_of_char_at(var_its, var_byteto);
2824 }
2825 {
2826 { /* Inline kernel#Int#- (var27,1l) on <var27:Int> */
2827 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2828 /* <1l:Int> isa OTHER */
2829 var30 = 1; /* easy <1l:Int> isa OTHER*/
2830 if (unlikely(!var30)) {
2831 var_class_name33 = type_core__Int.name;
2832 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33);
2833 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
2834 fatal_exit(1);
2835 }
2836 var34 = var27 - 1l;
2837 var28 = var34;
2838 goto RET_LABEL29;
2839 RET_LABEL29:(void)0;
2840 }
2841 }
2842 {
2843 { /* Inline kernel#Int#+ (var_byteto,var28) on <var_byteto:Int> */
2844 /* Covariant cast for argument 0 (i) <var28:Int> isa OTHER */
2845 /* <var28:Int> isa OTHER */
2846 var37 = 1; /* easy <var28:Int> isa OTHER*/
2847 if (unlikely(!var37)) {
2848 var_class_name40 = type_core__Int.name;
2849 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name40);
2850 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2851 fatal_exit(1);
2852 }
2853 var41 = var_byteto + var28;
2854 var35 = var41;
2855 goto RET_LABEL36;
2856 RET_LABEL36:(void)0;
2857 }
2858 }
2859 var_byteto = var35;
2860 var42 = NEW_core__FlatString(&type_core__FlatString);
2861 {
2862 { /* Inline kernel#Int#- (var_byteto,var_bytefrom) on <var_byteto:Int> */
2863 /* Covariant cast for argument 0 (i) <var_bytefrom:Int> isa OTHER */
2864 /* <var_bytefrom:Int> isa OTHER */
2865 var45 = 1; /* easy <var_bytefrom:Int> isa OTHER*/
2866 if (unlikely(!var45)) {
2867 var_class_name48 = type_core__Int.name;
2868 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48);
2869 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
2870 fatal_exit(1);
2871 }
2872 var49 = var_byteto - var_bytefrom;
2873 var43 = var49;
2874 goto RET_LABEL44;
2875 RET_LABEL44:(void)0;
2876 }
2877 }
2878 {
2879 { /* Inline kernel#Int#+ (var43,1l) on <var43:Int> */
2880 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2881 /* <1l:Int> isa OTHER */
2882 var52 = 1; /* easy <1l:Int> isa OTHER*/
2883 if (unlikely(!var52)) {
2884 var_class_name55 = type_core__Int.name;
2885 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name55);
2886 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2887 fatal_exit(1);
2888 }
2889 var56 = var43 + 1l;
2890 var50 = var56;
2891 goto RET_LABEL51;
2892 RET_LABEL51:(void)0;
2893 }
2894 }
2895 {
2896 core___core__FlatString___full(var42, var_its, var50, var_bytefrom, var_count); /* Direct call flat#FlatString#full on <var42:FlatString>*/
2897 }
2898 var_s = var42;
2899 var = var_s;
2900 goto RET_LABEL;
2901 RET_LABEL:;
2902 return var;
2903 }
2904 /* method flat#FlatString#empty for (self: FlatString): String */
2905 val* core___core__FlatString___core__abstract_text__Text__empty(val* self) {
2906 val* var /* : String */;
2907 static val* varonce;
2908 val* var1 /* : String */;
2909 char* var2 /* : NativeString */;
2910 val* var3 /* : String */;
2911 short int var4 /* : Bool */;
2912 int cltype;
2913 int idtype;
2914 const char* var_class_name;
2915 if (likely(varonce!=NULL)) {
2916 var1 = varonce;
2917 } else {
2918 var2 = "";
2919 var3 = core__flat___NativeString___to_s_full(var2, 0l, 0l);
2920 var1 = var3;
2921 varonce = var1;
2922 }
2923 /* <var1:String> isa FlatString */
2924 cltype = type_core__FlatString.color;
2925 idtype = type_core__FlatString.id;
2926 if(cltype >= var1->type->table_size) {
2927 var4 = 0;
2928 } else {
2929 var4 = var1->type->type_table[cltype] == idtype;
2930 }
2931 if (unlikely(!var4)) {
2932 var_class_name = var1 == NULL ? "null" : var1->type->name;
2933 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "FlatString", var_class_name);
2934 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 410);
2935 fatal_exit(1);
2936 }
2937 var = var1;
2938 goto RET_LABEL;
2939 RET_LABEL:;
2940 return var;
2941 }
2942 /* method flat#FlatString#to_upper for (self: FlatString): String */
2943 val* core___core__FlatString___core__abstract_text__String__to_upper(val* self) {
2944 val* var /* : String */;
2945 val* var1 /* : FlatBuffer */;
2946 long var2 /* : Int */;
2947 long var3 /* : Int */;
2948 short int var5 /* : Bool */;
2949 int cltype;
2950 int idtype;
2951 const char* var_class_name;
2952 long var6 /* : Int */;
2953 val* var_outstr /* var outstr: FlatBuffer */;
2954 long var7 /* : Int */;
2955 long var_mylen /* var mylen: Int */;
2956 long var_pos /* var pos: Int */;
2957 short int var8 /* : Bool */;
2958 short int var10 /* : Bool */;
2959 int cltype11;
2960 int idtype12;
2961 const char* var_class_name13;
2962 short int var14 /* : Bool */;
2963 val* var15 /* : SequenceRead[Char] */;
2964 val* var16 /* : nullable Object */;
2965 uint32_t var17 /* : Char */;
2966 uint32_t var18 /* : Char */;
2967 long var19 /* : Int */;
2968 short int var21 /* : Bool */;
2969 int cltype22;
2970 int idtype23;
2971 const char* var_class_name24;
2972 long var25 /* : Int */;
2973 val* var26 /* : String */;
2974 var1 = NEW_core__FlatBuffer(&type_core__FlatBuffer);
2975 var2 = self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <self:FlatString> */
2976 {
2977 { /* Inline kernel#Int#+ (var2,1l) on <var2:Int> */
2978 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2979 /* <1l:Int> isa OTHER */
2980 var5 = 1; /* easy <1l:Int> isa OTHER*/
2981 if (unlikely(!var5)) {
2982 var_class_name = type_core__Int.name;
2983 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2984 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2985 fatal_exit(1);
2986 }
2987 var6 = var2 + 1l;
2988 var3 = var6;
2989 goto RET_LABEL4;
2990 RET_LABEL4:(void)0;
2991 }
2992 }
2993 {
2994 core___core__FlatBuffer___with_capacity(var1, var3); /* Direct call flat#FlatBuffer#with_capacity on <var1:FlatBuffer>*/
2995 }
2996 var_outstr = var1;
2997 var7 = self->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <self:FlatString> */
2998 var_mylen = var7;
2999 var_pos = 0l;
3000 for(;;) {
3001 {
3002 { /* Inline kernel#Int#< (var_pos,var_mylen) on <var_pos:Int> */
3003 /* Covariant cast for argument 0 (i) <var_mylen:Int> isa OTHER */
3004 /* <var_mylen:Int> isa OTHER */
3005 var10 = 1; /* easy <var_mylen:Int> isa OTHER*/
3006 if (unlikely(!var10)) {
3007 var_class_name13 = type_core__Int.name;
3008 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
3009 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3010 fatal_exit(1);
3011 }
3012 var14 = var_pos < var_mylen;
3013 var8 = var14;
3014 goto RET_LABEL9;
3015 RET_LABEL9:(void)0;
3016 }
3017 }
3018 if (var8){
3019 {
3020 var15 = core___core__FlatString___core__abstract_text__Text__chars(self);
3021 }
3022 {
3023 var16 = ((val*(*)(val* self, long p0))((((long)var15&3)?class_info[((long)var15&3)]:var15->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var15, var_pos); /* [] on <var15:SequenceRead[Char]>*/
3024 }
3025 {
3026 var18 = (uint32_t)((long)(var16)>>2);
3027 var17 = core___core__Char___to_upper(var18);
3028 }
3029 {
3030 core___core__FlatBuffer___core__abstract_text__Buffer__add(var_outstr, var17); /* Direct call flat#FlatBuffer#add on <var_outstr:FlatBuffer>*/
3031 }
3032 {
3033 { /* Inline kernel#Int#+ (var_pos,1l) on <var_pos:Int> */
3034 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3035 /* <1l:Int> isa OTHER */
3036 var21 = 1; /* easy <1l:Int> isa OTHER*/
3037 if (unlikely(!var21)) {
3038 var_class_name24 = type_core__Int.name;
3039 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24);
3040 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3041 fatal_exit(1);
3042 }
3043 var25 = var_pos + 1l;
3044 var19 = var25;
3045 goto RET_LABEL20;
3046 RET_LABEL20:(void)0;
3047 }
3048 }
3049 var_pos = var19;
3050 } else {
3051 goto BREAK_label;
3052 }
3053 }
3054 BREAK_label: (void)0;
3055 {
3056 var26 = core___core__FlatBuffer___core__abstract_text__Object__to_s(var_outstr);
3057 }
3058 var = var26;
3059 goto RET_LABEL;
3060 RET_LABEL:;
3061 return var;
3062 }
3063 /* method flat#FlatString#to_lower for (self: FlatString): String */
3064 val* core___core__FlatString___core__abstract_text__String__to_lower(val* self) {
3065 val* var /* : String */;
3066 val* var1 /* : FlatBuffer */;
3067 long var2 /* : Int */;
3068 long var3 /* : Int */;
3069 short int var5 /* : Bool */;
3070 int cltype;
3071 int idtype;
3072 const char* var_class_name;
3073 long var6 /* : Int */;
3074 val* var_outstr /* var outstr: FlatBuffer */;
3075 long var7 /* : Int */;
3076 long var_mylen /* var mylen: Int */;
3077 long var_pos /* var pos: Int */;
3078 short int var8 /* : Bool */;
3079 short int var10 /* : Bool */;
3080 int cltype11;
3081 int idtype12;
3082 const char* var_class_name13;
3083 short int var14 /* : Bool */;
3084 val* var15 /* : SequenceRead[Char] */;
3085 val* var16 /* : nullable Object */;
3086 uint32_t var17 /* : Char */;
3087 uint32_t var18 /* : Char */;
3088 long var19 /* : Int */;
3089 short int var21 /* : Bool */;
3090 int cltype22;
3091 int idtype23;
3092 const char* var_class_name24;
3093 long var25 /* : Int */;
3094 val* var26 /* : String */;
3095 var1 = NEW_core__FlatBuffer(&type_core__FlatBuffer);
3096 var2 = self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <self:FlatString> */
3097 {
3098 { /* Inline kernel#Int#+ (var2,1l) on <var2:Int> */
3099 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3100 /* <1l:Int> isa OTHER */
3101 var5 = 1; /* easy <1l:Int> isa OTHER*/
3102 if (unlikely(!var5)) {
3103 var_class_name = type_core__Int.name;
3104 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3105 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3106 fatal_exit(1);
3107 }
3108 var6 = var2 + 1l;
3109 var3 = var6;
3110 goto RET_LABEL4;
3111 RET_LABEL4:(void)0;
3112 }
3113 }
3114 {
3115 core___core__FlatBuffer___with_capacity(var1, var3); /* Direct call flat#FlatBuffer#with_capacity on <var1:FlatBuffer>*/
3116 }
3117 var_outstr = var1;
3118 var7 = self->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <self:FlatString> */
3119 var_mylen = var7;
3120 var_pos = 0l;
3121 for(;;) {
3122 {
3123 { /* Inline kernel#Int#< (var_pos,var_mylen) on <var_pos:Int> */
3124 /* Covariant cast for argument 0 (i) <var_mylen:Int> isa OTHER */
3125 /* <var_mylen:Int> isa OTHER */
3126 var10 = 1; /* easy <var_mylen:Int> isa OTHER*/
3127 if (unlikely(!var10)) {
3128 var_class_name13 = type_core__Int.name;
3129 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
3130 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3131 fatal_exit(1);
3132 }
3133 var14 = var_pos < var_mylen;
3134 var8 = var14;
3135 goto RET_LABEL9;
3136 RET_LABEL9:(void)0;
3137 }
3138 }
3139 if (var8){
3140 {
3141 var15 = core___core__FlatString___core__abstract_text__Text__chars(self);
3142 }
3143 {
3144 var16 = ((val*(*)(val* self, long p0))((((long)var15&3)?class_info[((long)var15&3)]:var15->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var15, var_pos); /* [] on <var15:SequenceRead[Char]>*/
3145 }
3146 {
3147 var18 = (uint32_t)((long)(var16)>>2);
3148 var17 = core___core__Char___to_lower(var18);
3149 }
3150 {
3151 core___core__FlatBuffer___core__abstract_text__Buffer__add(var_outstr, var17); /* Direct call flat#FlatBuffer#add on <var_outstr:FlatBuffer>*/
3152 }
3153 {
3154 { /* Inline kernel#Int#+ (var_pos,1l) on <var_pos:Int> */
3155 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3156 /* <1l:Int> isa OTHER */
3157 var21 = 1; /* easy <1l:Int> isa OTHER*/
3158 if (unlikely(!var21)) {
3159 var_class_name24 = type_core__Int.name;
3160 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24);
3161 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3162 fatal_exit(1);
3163 }
3164 var25 = var_pos + 1l;
3165 var19 = var25;
3166 goto RET_LABEL20;
3167 RET_LABEL20:(void)0;
3168 }
3169 }
3170 var_pos = var19;
3171 } else {
3172 goto BREAK_label;
3173 }
3174 }
3175 BREAK_label: (void)0;
3176 {
3177 var26 = core___core__FlatBuffer___core__abstract_text__Object__to_s(var_outstr);
3178 }
3179 var = var26;
3180 goto RET_LABEL;
3181 RET_LABEL:;
3182 return var;
3183 }
3184 /* method flat#FlatString#with_infos for (self: FlatString, NativeString, Int, Int) */
3185 void core___core__FlatString___with_infos(val* self, char* p0, long p1, long p2) {
3186 char* var_items /* var items: NativeString */;
3187 long var_bytelen /* var bytelen: Int */;
3188 long var_from /* var from: Int */;
3189 char* var /* : NativeString */;
3190 long var2 /* : Int */;
3191 long var3 /* : Int */;
3192 long var_from5 /* var from: Int */;
3193 long var_bytelen6 /* var bytelen: Int */;
3194 long var_st /* var st: Int */;
3195 long var_ln /* var ln: Int */;
3196 short int var7 /* : Bool */;
3197 short int var9 /* : Bool */;
3198 int cltype;
3199 int idtype;
3200 const char* var_class_name;
3201 short int var10 /* : Bool */;
3202 short int var11 /* : Bool */;
3203 short int var13 /* : Bool */;
3204 int cltype14;
3205 int idtype15;
3206 const char* var_class_name16;
3207 short int var17 /* : Bool */;
3208 long var18 /* : Int */;
3209 long var20 /* : Int */;
3210 long var_i /* var i: Int */;
3211 long var21 /* : Int */;
3212 long var23 /* : Int */;
3213 short int var24 /* : Bool */;
3214 short int var26 /* : Bool */;
3215 short int var27 /* : Bool */;
3216 long var28 /* : Int */;
3217 short int var30 /* : Bool */;
3218 int cltype31;
3219 int idtype32;
3220 const char* var_class_name33;
3221 long var34 /* : Int */;
3222 long var35 /* : Int */;
3223 short int var37 /* : Bool */;
3224 int cltype38;
3225 int idtype39;
3226 const char* var_class_name40;
3227 long var41 /* : Int */;
3228 long var42 /* : Int */;
3229 short int var44 /* : Bool */;
3230 int cltype45;
3231 int idtype46;
3232 const char* var_class_name47;
3233 long var48 /* : Int */;
3234 short int var49 /* : Bool */;
3235 short int var51 /* : Bool */;
3236 long var53 /* : Int */;
3237 long var_cln /* var cln: Int */;
3238 long var54 /* : Int */;
3239 short int var56 /* : Bool */;
3240 int cltype57;
3241 int idtype58;
3242 const char* var_class_name59;
3243 long var60 /* : Int */;
3244 long var61 /* : Int */;
3245 short int var63 /* : Bool */;
3246 int cltype64;
3247 int idtype65;
3248 const char* var_class_name66;
3249 long var67 /* : Int */;
3250 long var68 /* : Int */;
3251 short int var70 /* : Bool */;
3252 int cltype71;
3253 int idtype72;
3254 const char* var_class_name73;
3255 long var74 /* : Int */;
3256 {
3257 { /* Inline kernel#Object#init (self) on <self:FlatString> */
3258 RET_LABEL1:(void)0;
3259 }
3260 }
3261 var_items = p0;
3262 var_bytelen = p1;
3263 var_from = p2;
3264 self->attrs[COLOR_core__abstract_text__FlatText___items].str = var_items; /* _items on <self:FlatString> */
3265 self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l = var_bytelen; /* _bytelen on <self:FlatString> */
3266 self->attrs[COLOR_core__flat__FlatString___first_byte].l = var_from; /* _first_byte on <self:FlatString> */
3267 self->attrs[COLOR_core__flat__FlatText___bytepos].l = var_from; /* _bytepos on <self:FlatString> */
3268 var = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatString> */
3269 var2 = self->attrs[COLOR_core__flat__FlatString___first_byte].l; /* _first_byte on <self:FlatString> */
3270 {
3271 { /* Inline native#NativeString#utf8_length (var,var2,var_bytelen) on <var:NativeString> */
3272 var_from5 = var2;
3273 var_bytelen6 = var_bytelen;
3274 var_st = var_from5;
3275 var_ln = 0l;
3276 for(;;) {
3277 {
3278 { /* Inline kernel#Int#> (var_bytelen6,0l) on <var_bytelen6:Int> */
3279 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
3280 /* <0l:Int> isa OTHER */
3281 var9 = 1; /* easy <0l:Int> isa OTHER*/
3282 if (unlikely(!var9)) {
3283 var_class_name = type_core__Int.name;
3284 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3285 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
3286 fatal_exit(1);
3287 }
3288 var10 = var_bytelen6 > 0l;
3289 var7 = var10;
3290 goto RET_LABEL8;
3291 RET_LABEL8:(void)0;
3292 }
3293 }
3294 if (var7){
3295 for(;;) {
3296 {
3297 { /* Inline kernel#Int#>= (var_bytelen6,4l) on <var_bytelen6:Int> */
3298 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
3299 /* <4l:Int> isa OTHER */
3300 var13 = 1; /* easy <4l:Int> isa OTHER*/
3301 if (unlikely(!var13)) {
3302 var_class_name16 = type_core__Int.name;
3303 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16);
3304 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
3305 fatal_exit(1);
3306 }
3307 var17 = var_bytelen6 >= 4l;
3308 var11 = var17;
3309 goto RET_LABEL12;
3310 RET_LABEL12:(void)0;
3311 }
3312 }
3313 if (var11){
3314 {
3315 { /* Inline native#NativeString#fetch_4_chars (var,var_st) on <var:NativeString> */
3316 var20 = (long)*((uint32_t*)(var + var_st));
3317 var18 = var20;
3318 goto RET_LABEL19;
3319 RET_LABEL19:(void)0;
3320 }
3321 }
3322 var_i = var18;
3323 {
3324 { /* Inline math#Int#& (var_i,2155905152l) on <var_i:Int> */
3325 var23 = var_i & 2155905152l;
3326 var21 = var23;
3327 goto RET_LABEL22;
3328 RET_LABEL22:(void)0;
3329 }
3330 }
3331 {
3332 { /* Inline kernel#Int#!= (var21,0l) on <var21:Int> */
3333 var26 = var21 == 0l;
3334 var27 = !var26;
3335 var24 = var27;
3336 goto RET_LABEL25;
3337 RET_LABEL25:(void)0;
3338 }
3339 }
3340 if (var24){
3341 goto BREAK_label;
3342 } else {
3343 }
3344 {
3345 { /* Inline kernel#Int#- (var_bytelen6,4l) on <var_bytelen6:Int> */
3346 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
3347 /* <4l:Int> isa OTHER */
3348 var30 = 1; /* easy <4l:Int> isa OTHER*/
3349 if (unlikely(!var30)) {
3350 var_class_name33 = type_core__Int.name;
3351 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33);
3352 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
3353 fatal_exit(1);
3354 }
3355 var34 = var_bytelen6 - 4l;
3356 var28 = var34;
3357 goto RET_LABEL29;
3358 RET_LABEL29:(void)0;
3359 }
3360 }
3361 var_bytelen6 = var28;
3362 {
3363 { /* Inline kernel#Int#+ (var_st,4l) on <var_st:Int> */
3364 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
3365 /* <4l:Int> isa OTHER */
3366 var37 = 1; /* easy <4l:Int> isa OTHER*/
3367 if (unlikely(!var37)) {
3368 var_class_name40 = type_core__Int.name;
3369 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name40);
3370 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3371 fatal_exit(1);
3372 }
3373 var41 = var_st + 4l;
3374 var35 = var41;
3375 goto RET_LABEL36;
3376 RET_LABEL36:(void)0;
3377 }
3378 }
3379 var_st = var35;
3380 {
3381 { /* Inline kernel#Int#+ (var_ln,4l) on <var_ln:Int> */
3382 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
3383 /* <4l:Int> isa OTHER */
3384 var44 = 1; /* easy <4l:Int> isa OTHER*/
3385 if (unlikely(!var44)) {
3386 var_class_name47 = type_core__Int.name;
3387 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name47);
3388 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3389 fatal_exit(1);
3390 }
3391 var48 = var_ln + 4l;
3392 var42 = var48;
3393 goto RET_LABEL43;
3394 RET_LABEL43:(void)0;
3395 }
3396 }
3397 var_ln = var42;
3398 } else {
3399 goto BREAK_label;
3400 }
3401 }
3402 BREAK_label: (void)0;
3403 {
3404 { /* Inline kernel#Int#== (var_bytelen6,0l) on <var_bytelen6:Int> */
3405 var51 = var_bytelen6 == 0l;
3406 var49 = var51;
3407 goto RET_LABEL50;
3408 RET_LABEL50:(void)0;
3409 }
3410 }
3411 if (var49){
3412 goto BREAK_label52;
3413 } else {
3414 }
3415 {
3416 var53 = core___core__NativeString___length_of_char_at(var, var_st);
3417 }
3418 var_cln = var53;
3419 {
3420 { /* Inline kernel#Int#+ (var_st,var_cln) on <var_st:Int> */
3421 /* Covariant cast for argument 0 (i) <var_cln:Int> isa OTHER */
3422 /* <var_cln:Int> isa OTHER */
3423 var56 = 1; /* easy <var_cln:Int> isa OTHER*/
3424 if (unlikely(!var56)) {
3425 var_class_name59 = type_core__Int.name;
3426 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name59);
3427 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3428 fatal_exit(1);
3429 }
3430 var60 = var_st + var_cln;
3431 var54 = var60;
3432 goto RET_LABEL55;
3433 RET_LABEL55:(void)0;
3434 }
3435 }
3436 var_st = var54;
3437 {
3438 { /* Inline kernel#Int#+ (var_ln,1l) on <var_ln:Int> */
3439 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3440 /* <1l:Int> isa OTHER */
3441 var63 = 1; /* easy <1l:Int> isa OTHER*/
3442 if (unlikely(!var63)) {
3443 var_class_name66 = type_core__Int.name;
3444 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name66);
3445 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3446 fatal_exit(1);
3447 }
3448 var67 = var_ln + 1l;
3449 var61 = var67;
3450 goto RET_LABEL62;
3451 RET_LABEL62:(void)0;
3452 }
3453 }
3454 var_ln = var61;
3455 {
3456 { /* Inline kernel#Int#- (var_bytelen6,var_cln) on <var_bytelen6:Int> */
3457 /* Covariant cast for argument 0 (i) <var_cln:Int> isa OTHER */
3458 /* <var_cln:Int> isa OTHER */
3459 var70 = 1; /* easy <var_cln:Int> isa OTHER*/
3460 if (unlikely(!var70)) {
3461 var_class_name73 = type_core__Int.name;
3462 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name73);
3463 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
3464 fatal_exit(1);
3465 }
3466 var74 = var_bytelen6 - var_cln;
3467 var68 = var74;
3468 goto RET_LABEL69;
3469 RET_LABEL69:(void)0;
3470 }
3471 }
3472 var_bytelen6 = var68;
3473 } else {
3474 goto BREAK_label52;
3475 }
3476 }
3477 BREAK_label52: (void)0;
3478 var3 = var_ln;
3479 goto RET_LABEL4;
3480 RET_LABEL4:(void)0;
3481 }
3482 }
3483 self->attrs[COLOR_core__abstract_text__FlatText___length].l = var3; /* _length on <self:FlatString> */
3484 RET_LABEL:;
3485 }
3486 /* method flat#FlatString#full for (self: FlatString, NativeString, Int, Int, Int) */
3487 void core___core__FlatString___full(val* self, char* p0, long p1, long p2, long p3) {
3488 char* var_items /* var items: NativeString */;
3489 long var_bytelen /* var bytelen: Int */;
3490 long var_from /* var from: Int */;
3491 long var_length /* var length: Int */;
3492 {
3493 { /* Inline kernel#Object#init (self) on <self:FlatString> */
3494 RET_LABEL1:(void)0;
3495 }
3496 }
3497 var_items = p0;
3498 var_bytelen = p1;
3499 var_from = p2;
3500 var_length = p3;
3501 self->attrs[COLOR_core__abstract_text__FlatText___items].str = var_items; /* _items on <self:FlatString> */
3502 self->attrs[COLOR_core__abstract_text__FlatText___length].l = var_length; /* _length on <self:FlatString> */
3503 self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l = var_bytelen; /* _bytelen on <self:FlatString> */
3504 self->attrs[COLOR_core__flat__FlatString___first_byte].l = var_from; /* _first_byte on <self:FlatString> */
3505 self->attrs[COLOR_core__flat__FlatText___bytepos].l = var_from; /* _bytepos on <self:FlatString> */
3506 RET_LABEL:;
3507 }
3508 /* method flat#FlatString#== for (self: FlatString, nullable Object): Bool */
3509 short int core___core__FlatString___core__kernel__Object___61d_61d(val* self, val* p0) {
3510 short int var /* : Bool */;
3511 val* var_other /* var other: nullable Object */;
3512 short int var1 /* : Bool */;
3513 int cltype;
3514 int idtype;
3515 short int var2 /* : Bool */;
3516 short int var3 /* : Bool */;
3517 long var4 /* : Int */;
3518 long var6 /* : Int */;
3519 long var7 /* : Int */;
3520 long var9 /* : Int */;
3521 short int var10 /* : Bool */;
3522 short int var12 /* : Bool */;
3523 long var13 /* : Int */;
3524 long var_my_length /* var my_length: Int */;
3525 long var14 /* : Int */;
3526 short int var15 /* : Bool */;
3527 short int var17 /* : Bool */;
3528 short int var18 /* : Bool */;
3529 long var19 /* : Int */;
3530 long var_my_index /* var my_index: Int */;
3531 long var20 /* : Int */;
3532 long var_its_index /* var its_index: Int */;
3533 long var21 /* : Int */;
3534 short int var23 /* : Bool */;
3535 int cltype24;
3536 int idtype25;
3537 const char* var_class_name;
3538 long var26 /* : Int */;
3539 long var_last_iteration /* var last_iteration: Int */;
3540 char* var27 /* : NativeString */;
3541 char* var_its_items /* var its_items: NativeString */;
3542 char* var28 /* : NativeString */;
3543 char* var_my_items /* var my_items: NativeString */;
3544 short int var29 /* : Bool */;
3545 short int var31 /* : Bool */;
3546 int cltype32;
3547 int idtype33;
3548 const char* var_class_name34;
3549 short int var35 /* : Bool */;
3550 unsigned char var36 /* : Byte */;
3551 unsigned char var38 /* : Byte */;
3552 unsigned char var39 /* : Byte */;
3553 unsigned char var41 /* : Byte */;
3554 short int var42 /* : Bool */;
3555 short int var44 /* : Bool */;
3556 short int var45 /* : Bool */;
3557 long var46 /* : Int */;
3558 short int var48 /* : Bool */;
3559 int cltype49;
3560 int idtype50;
3561 const char* var_class_name51;
3562 long var52 /* : Int */;
3563 long var53 /* : Int */;
3564 short int var55 /* : Bool */;
3565 int cltype56;
3566 int idtype57;
3567 const char* var_class_name58;
3568 long var59 /* : Int */;
3569 var_other = p0;
3570 /* <var_other:nullable Object> isa FlatText */
3571 cltype = type_core__FlatText.color;
3572 idtype = type_core__FlatText.id;
3573 if(var_other == NULL) {
3574 var1 = 0;
3575 } else {
3576 if(cltype >= (((long)var_other&3)?type_info[((long)var_other&3)]:var_other->type)->table_size) {
3577 var1 = 0;
3578 } else {
3579 var1 = (((long)var_other&3)?type_info[((long)var_other&3)]:var_other->type)->type_table[cltype] == idtype;
3580 }
3581 }
3582 var2 = !var1;
3583 if (var2){
3584 {
3585 var3 = ((short int(*)(val* self, val* p0))(self->class->vft[COLOR_core___core__FlatString___core__kernel__Object___61d_61d]))(self, p0); /* == on <self:FlatString>*/
3586 }
3587 var = var3;
3588 goto RET_LABEL;
3589 } else {
3590 }
3591 {
3592 { /* Inline kernel#Object#object_id (self) on <self:FlatString> */
3593 var6 = (long)self;
3594 var4 = var6;
3595 goto RET_LABEL5;
3596 RET_LABEL5:(void)0;
3597 }
3598 }
3599 {
3600 { /* Inline kernel#Object#object_id (var_other) on <var_other:nullable Object(FlatText)> */
3601 var9 = (long)var_other;
3602 var7 = var9;
3603 goto RET_LABEL8;
3604 RET_LABEL8:(void)0;
3605 }
3606 }
3607 {
3608 { /* Inline kernel#Int#== (var4,var7) on <var4:Int> */
3609 var12 = var4 == var7;
3610 var10 = var12;
3611 goto RET_LABEL11;
3612 RET_LABEL11:(void)0;
3613 }
3614 }
3615 if (var10){
3616 var = 1;
3617 goto RET_LABEL;
3618 } else {
3619 }
3620 var13 = self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <self:FlatString> */
3621 var_my_length = var13;
3622 var14 = var_other->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <var_other:nullable Object(FlatText)> */
3623 {
3624 { /* Inline kernel#Int#!= (var14,var_my_length) on <var14:Int> */
3625 var17 = var14 == var_my_length;
3626 var18 = !var17;
3627 var15 = var18;
3628 goto RET_LABEL16;
3629 RET_LABEL16:(void)0;
3630 }
3631 }
3632 if (var15){
3633 var = 0;
3634 goto RET_LABEL;
3635 } else {
3636 }
3637 var19 = self->attrs[COLOR_core__flat__FlatString___first_byte].l; /* _first_byte on <self:FlatString> */
3638 var_my_index = var19;
3639 {
3640 var20 = ((long(*)(val* self))(var_other->class->vft[COLOR_core__flat__FlatText__first_byte]))(var_other); /* first_byte on <var_other:nullable Object(FlatText)>*/
3641 }
3642 var_its_index = var20;
3643 {
3644 { /* Inline kernel#Int#+ (var_my_index,var_my_length) on <var_my_index:Int> */
3645 /* Covariant cast for argument 0 (i) <var_my_length:Int> isa OTHER */
3646 /* <var_my_length:Int> isa OTHER */
3647 var23 = 1; /* easy <var_my_length:Int> isa OTHER*/
3648 if (unlikely(!var23)) {
3649 var_class_name = type_core__Int.name;
3650 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3651 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3652 fatal_exit(1);
3653 }
3654 var26 = var_my_index + var_my_length;
3655 var21 = var26;
3656 goto RET_LABEL22;
3657 RET_LABEL22:(void)0;
3658 }
3659 }
3660 var_last_iteration = var21;
3661 var27 = var_other->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var_other:nullable Object(FlatText)> */
3662 var_its_items = var27;
3663 var28 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatString> */
3664 var_my_items = var28;
3665 for(;;) {
3666 {
3667 { /* Inline kernel#Int#< (var_my_index,var_last_iteration) on <var_my_index:Int> */
3668 /* Covariant cast for argument 0 (i) <var_last_iteration:Int> isa OTHER */
3669 /* <var_last_iteration:Int> isa OTHER */
3670 var31 = 1; /* easy <var_last_iteration:Int> isa OTHER*/
3671 if (unlikely(!var31)) {
3672 var_class_name34 = type_core__Int.name;
3673 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
3674 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3675 fatal_exit(1);
3676 }
3677 var35 = var_my_index < var_last_iteration;
3678 var29 = var35;
3679 goto RET_LABEL30;
3680 RET_LABEL30:(void)0;
3681 }
3682 }
3683 if (var29){
3684 {
3685 { /* Inline native#NativeString#[] (var_my_items,var_my_index) on <var_my_items:NativeString> */
3686 var38 = (unsigned char)((int)var_my_items[var_my_index]);
3687 var36 = var38;
3688 goto RET_LABEL37;
3689 RET_LABEL37:(void)0;
3690 }
3691 }
3692 {
3693 { /* Inline native#NativeString#[] (var_its_items,var_its_index) on <var_its_items:NativeString> */
3694 var41 = (unsigned char)((int)var_its_items[var_its_index]);
3695 var39 = var41;
3696 goto RET_LABEL40;
3697 RET_LABEL40:(void)0;
3698 }
3699 }
3700 {
3701 { /* Inline kernel#Byte#!= (var36,var39) on <var36:Byte> */
3702 var44 = var36 == var39;
3703 var45 = !var44;
3704 var42 = var45;
3705 goto RET_LABEL43;
3706 RET_LABEL43:(void)0;
3707 }
3708 }
3709 if (var42){
3710 var = 0;
3711 goto RET_LABEL;
3712 } else {
3713 }
3714 {
3715 { /* Inline kernel#Int#+ (var_my_index,1l) on <var_my_index:Int> */
3716 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3717 /* <1l:Int> isa OTHER */
3718 var48 = 1; /* easy <1l:Int> isa OTHER*/
3719 if (unlikely(!var48)) {
3720 var_class_name51 = type_core__Int.name;
3721 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name51);
3722 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3723 fatal_exit(1);
3724 }
3725 var52 = var_my_index + 1l;
3726 var46 = var52;
3727 goto RET_LABEL47;
3728 RET_LABEL47:(void)0;
3729 }
3730 }
3731 var_my_index = var46;
3732 {
3733 { /* Inline kernel#Int#+ (var_its_index,1l) on <var_its_index:Int> */
3734 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3735 /* <1l:Int> isa OTHER */
3736 var55 = 1; /* easy <1l:Int> isa OTHER*/
3737 if (unlikely(!var55)) {
3738 var_class_name58 = type_core__Int.name;
3739 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name58);
3740 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3741 fatal_exit(1);
3742 }
3743 var59 = var_its_index + 1l;
3744 var53 = var59;
3745 goto RET_LABEL54;
3746 RET_LABEL54:(void)0;
3747 }
3748 }
3749 var_its_index = var53;
3750 } else {
3751 goto BREAK_label;
3752 }
3753 }
3754 BREAK_label: (void)0;
3755 var = 1;
3756 goto RET_LABEL;
3757 RET_LABEL:;
3758 return var;
3759 }
3760 /* method flat#FlatString#< for (self: FlatString, Text): Bool */
3761 short int core___core__FlatString___core__kernel__Comparable___60d(val* self, val* p0) {
3762 short int var /* : Bool */;
3763 short int var1 /* : Bool */;
3764 int cltype;
3765 int idtype;
3766 const struct type* type_struct;
3767 const char* var_class_name;
3768 val* var_other /* var other: Text */;
3769 short int var2 /* : Bool */;
3770 int cltype3;
3771 int idtype4;
3772 short int var5 /* : Bool */;
3773 short int var6 /* : Bool */;
3774 long var7 /* : Int */;
3775 long var9 /* : Int */;
3776 long var10 /* : Int */;
3777 long var12 /* : Int */;
3778 short int var13 /* : Bool */;
3779 short int var15 /* : Bool */;
3780 char* var16 /* : NativeString */;
3781 char* var_myits /* var myits: NativeString */;
3782 char* var17 /* : NativeString */;
3783 char* var_itsits /* var itsits: NativeString */;
3784 long var18 /* : Int */;
3785 long var_mbt /* var mbt: Int */;
3786 long var19 /* : Int */;
3787 long var21 /* : Int */;
3788 long var_obt /* var obt: Int */;
3789 long var22 /* : Int */;
3790 short int var23 /* : Bool */;
3791 short int var25 /* : Bool */;
3792 int cltype26;
3793 int idtype27;
3794 const char* var_class_name28;
3795 short int var29 /* : Bool */;
3796 long var_minln /* var minln: Int */;
3797 long var30 /* : Int */;
3798 long var_mst /* var mst: Int */;
3799 long var31 /* : Int */;
3800 long var_ost /* var ost: Int */;
3801 long var_i /* var i: Int */;
3802 long var_ /* var : Int */;
3803 short int var32 /* : Bool */;
3804 short int var34 /* : Bool */;
3805 int cltype35;
3806 int idtype36;
3807 const char* var_class_name37;
3808 short int var38 /* : Bool */;
3809 unsigned char var39 /* : Byte */;
3810 unsigned char var41 /* : Byte */;
3811 unsigned char var_my_curr_char /* var my_curr_char: Byte */;
3812 unsigned char var42 /* : Byte */;
3813 unsigned char var44 /* : Byte */;
3814 unsigned char var_its_curr_char /* var its_curr_char: Byte */;
3815 short int var45 /* : Bool */;
3816 short int var47 /* : Bool */;
3817 int cltype48;
3818 int idtype49;
3819 const char* var_class_name50;
3820 short int var51 /* : Bool */;
3821 short int var52 /* : Bool */;
3822 short int var54 /* : Bool */;
3823 int cltype55;
3824 int idtype56;
3825 const char* var_class_name57;
3826 short int var58 /* : Bool */;
3827 long var59 /* : Int */;
3828 short int var61 /* : Bool */;
3829 int cltype62;
3830 int idtype63;
3831 const char* var_class_name64;
3832 long var65 /* : Int */;
3833 long var66 /* : Int */;
3834 short int var68 /* : Bool */;
3835 int cltype69;
3836 int idtype70;
3837 const char* var_class_name71;
3838 long var72 /* : Int */;
3839 long var73 /* : Int */;
3840 short int var74 /* : Bool */;
3841 short int var76 /* : Bool */;
3842 int cltype77;
3843 int idtype78;
3844 const char* var_class_name79;
3845 short int var80 /* : Bool */;
3846 /* Covariant cast for argument 0 (other) <p0:Text> isa OTHER */
3847 /* <p0:Text> isa OTHER */
3848 type_struct = self->type->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
3849 cltype = type_struct->color;
3850 idtype = type_struct->id;
3851 if(cltype >= p0->type->table_size) {
3852 var1 = 0;
3853 } else {
3854 var1 = p0->type->type_table[cltype] == idtype;
3855 }
3856 if (unlikely(!var1)) {
3857 var_class_name = p0 == NULL ? "null" : p0->type->name;
3858 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3859 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 504);
3860 fatal_exit(1);
3861 }
3862 var_other = p0;
3863 /* <var_other:Text> isa FlatText */
3864 cltype3 = type_core__FlatText.color;
3865 idtype4 = type_core__FlatText.id;
3866 if(cltype3 >= var_other->type->table_size) {
3867 var2 = 0;
3868 } else {
3869 var2 = var_other->type->type_table[cltype3] == idtype4;
3870 }
3871 var5 = !var2;
3872 if (var5){
3873 {
3874 var6 = ((short int(*)(val* self, val* p0))(self->class->vft[COLOR_core___core__FlatString___core__kernel__Comparable___60d]))(self, p0); /* < on <self:FlatString>*/
3875 }
3876 var = var6;
3877 goto RET_LABEL;
3878 } else {
3879 }
3880 {
3881 { /* Inline kernel#Object#object_id (self) on <self:FlatString> */
3882 var9 = (long)self;
3883 var7 = var9;
3884 goto RET_LABEL8;
3885 RET_LABEL8:(void)0;
3886 }
3887 }
3888 {
3889 { /* Inline kernel#Object#object_id (var_other) on <var_other:Text(FlatText)> */
3890 var12 = (long)var_other;
3891 var10 = var12;
3892 goto RET_LABEL11;
3893 RET_LABEL11:(void)0;
3894 }
3895 }
3896 {
3897 { /* Inline kernel#Int#== (var7,var10) on <var7:Int> */
3898 var15 = var7 == var10;
3899 var13 = var15;
3900 goto RET_LABEL14;
3901 RET_LABEL14:(void)0;
3902 }
3903 }
3904 if (var13){
3905 var = 0;
3906 goto RET_LABEL;
3907 } else {
3908 }
3909 var16 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatString> */
3910 var_myits = var16;
3911 var17 = var_other->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var_other:Text(FlatText)> */
3912 var_itsits = var17;
3913 var18 = self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <self:FlatString> */
3914 var_mbt = var18;
3915 {
3916 { /* Inline abstract_text#FlatText#bytelen (var_other) on <var_other:Text(FlatText)> */
3917 var21 = var_other->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <var_other:Text(FlatText)> */
3918 var19 = var21;
3919 RET_LABEL20:(void)0;
3920 }
3921 }
3922 var_obt = var19;
3923 {
3924 { /* Inline kernel#Int#< (var_mbt,var_obt) on <var_mbt:Int> */
3925 /* Covariant cast for argument 0 (i) <var_obt:Int> isa OTHER */
3926 /* <var_obt:Int> isa OTHER */
3927 var25 = 1; /* easy <var_obt:Int> isa OTHER*/
3928 if (unlikely(!var25)) {
3929 var_class_name28 = type_core__Int.name;
3930 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28);
3931 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3932 fatal_exit(1);
3933 }
3934 var29 = var_mbt < var_obt;
3935 var23 = var29;
3936 goto RET_LABEL24;
3937 RET_LABEL24:(void)0;
3938 }
3939 }
3940 if (var23){
3941 var22 = var_mbt;
3942 } else {
3943 var22 = var_obt;
3944 }
3945 var_minln = var22;
3946 var30 = self->attrs[COLOR_core__flat__FlatString___first_byte].l; /* _first_byte on <self:FlatString> */
3947 var_mst = var30;
3948 {
3949 var31 = ((long(*)(val* self))(var_other->class->vft[COLOR_core__flat__FlatText__first_byte]))(var_other); /* first_byte on <var_other:Text(FlatText)>*/
3950 }
3951 var_ost = var31;
3952 var_i = 0l;
3953 var_ = var_minln;
3954 for(;;) {
3955 {
3956 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
3957 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
3958 /* <var_:Int> isa OTHER */
3959 var34 = 1; /* easy <var_:Int> isa OTHER*/
3960 if (unlikely(!var34)) {
3961 var_class_name37 = type_core__Int.name;
3962 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37);
3963 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3964 fatal_exit(1);
3965 }
3966 var38 = var_i < var_;
3967 var32 = var38;
3968 goto RET_LABEL33;
3969 RET_LABEL33:(void)0;
3970 }
3971 }
3972 if (var32){
3973 } else {
3974 goto BREAK_label;
3975 }
3976 {
3977 { /* Inline native#NativeString#[] (var_myits,var_mst) on <var_myits:NativeString> */
3978 var41 = (unsigned char)((int)var_myits[var_mst]);
3979 var39 = var41;
3980 goto RET_LABEL40;
3981 RET_LABEL40:(void)0;
3982 }
3983 }
3984 var_my_curr_char = var39;
3985 {
3986 { /* Inline native#NativeString#[] (var_itsits,var_ost) on <var_itsits:NativeString> */
3987 var44 = (unsigned char)((int)var_itsits[var_ost]);
3988 var42 = var44;
3989 goto RET_LABEL43;
3990 RET_LABEL43:(void)0;
3991 }
3992 }
3993 var_its_curr_char = var42;
3994 {
3995 { /* Inline kernel#Byte#> (var_my_curr_char,var_its_curr_char) on <var_my_curr_char:Byte> */
3996 /* Covariant cast for argument 0 (i) <var_its_curr_char:Byte> isa OTHER */
3997 /* <var_its_curr_char:Byte> isa OTHER */
3998 var47 = 1; /* easy <var_its_curr_char:Byte> isa OTHER*/
3999 if (unlikely(!var47)) {
4000 var_class_name50 = type_core__Byte.name;
4001 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name50);
4002 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 621);
4003 fatal_exit(1);
4004 }
4005 var51 = var_my_curr_char > var_its_curr_char;
4006 var45 = var51;
4007 goto RET_LABEL46;
4008 RET_LABEL46:(void)0;
4009 }
4010 }
4011 if (var45){
4012 var = 0;
4013 goto RET_LABEL;
4014 } else {
4015 }
4016 {
4017 { /* Inline kernel#Byte#< (var_my_curr_char,var_its_curr_char) on <var_my_curr_char:Byte> */
4018 /* Covariant cast for argument 0 (i) <var_its_curr_char:Byte> isa OTHER */
4019 /* <var_its_curr_char:Byte> isa OTHER */
4020 var54 = 1; /* easy <var_its_curr_char:Byte> isa OTHER*/
4021 if (unlikely(!var54)) {
4022 var_class_name57 = type_core__Byte.name;
4023 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name57);
4024 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 619);
4025 fatal_exit(1);
4026 }
4027 var58 = var_my_curr_char < var_its_curr_char;
4028 var52 = var58;
4029 goto RET_LABEL53;
4030 RET_LABEL53:(void)0;
4031 }
4032 }
4033 if (var52){
4034 var = 1;
4035 goto RET_LABEL;
4036 } else {
4037 }
4038 {
4039 { /* Inline kernel#Int#+ (var_mst,1l) on <var_mst:Int> */
4040 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4041 /* <1l:Int> isa OTHER */
4042 var61 = 1; /* easy <1l:Int> isa OTHER*/
4043 if (unlikely(!var61)) {
4044 var_class_name64 = type_core__Int.name;
4045 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name64);
4046 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4047 fatal_exit(1);
4048 }
4049 var65 = var_mst + 1l;
4050 var59 = var65;
4051 goto RET_LABEL60;
4052 RET_LABEL60:(void)0;
4053 }
4054 }
4055 var_mst = var59;
4056 {
4057 { /* Inline kernel#Int#+ (var_ost,1l) on <var_ost:Int> */
4058 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4059 /* <1l:Int> isa OTHER */
4060 var68 = 1; /* easy <1l:Int> isa OTHER*/
4061 if (unlikely(!var68)) {
4062 var_class_name71 = type_core__Int.name;
4063 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name71);
4064 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4065 fatal_exit(1);
4066 }
4067 var72 = var_ost + 1l;
4068 var66 = var72;
4069 goto RET_LABEL67;
4070 RET_LABEL67:(void)0;
4071 }
4072 }
4073 var_ost = var66;
4074 {
4075 var73 = core___core__Int___Discrete__successor(var_i, 1l);
4076 }
4077 var_i = var73;
4078 }
4079 BREAK_label: (void)0;
4080 {
4081 { /* Inline kernel#Int#< (var_mbt,var_obt) on <var_mbt:Int> */
4082 /* Covariant cast for argument 0 (i) <var_obt:Int> isa OTHER */
4083 /* <var_obt:Int> isa OTHER */
4084 var76 = 1; /* easy <var_obt:Int> isa OTHER*/
4085 if (unlikely(!var76)) {
4086 var_class_name79 = type_core__Int.name;
4087 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name79);
4088 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
4089 fatal_exit(1);
4090 }
4091 var80 = var_mbt < var_obt;
4092 var74 = var80;
4093 goto RET_LABEL75;
4094 RET_LABEL75:(void)0;
4095 }
4096 }
4097 var = var74;
4098 goto RET_LABEL;
4099 RET_LABEL:;
4100 return var;
4101 }
4102 /* method flat#FlatString#* for (self: FlatString, Int): String */
4103 val* core___core__FlatString___core__abstract_text__String___42d(val* self, long p0) {
4104 val* var /* : String */;
4105 long var_i /* var i: Int */;
4106 long var1 /* : Int */;
4107 long var_mybtlen /* var mybtlen: Int */;
4108 long var2 /* : Int */;
4109 short int var4 /* : Bool */;
4110 int cltype;
4111 int idtype;
4112 const char* var_class_name;
4113 long var5 /* : Int */;
4114 long var_new_bytelen /* var new_bytelen: Int */;
4115 long var6 /* : Int */;
4116 long var_mylen /* var mylen: Int */;
4117 long var7 /* : Int */;
4118 short int var9 /* : Bool */;
4119 int cltype10;
4120 int idtype11;
4121 const char* var_class_name12;
4122 long var13 /* : Int */;
4123 long var_newlen /* var newlen: Int */;
4124 char* var14 /* : NativeString */;
4125 char* var_its /* var its: NativeString */;
4126 long var15 /* : Int */;
4127 long var_fb /* var fb: Int */;
4128 char* var16 /* : NativeString */;
4129 long var17 /* : Int */;
4130 short int var19 /* : Bool */;
4131 int cltype20;
4132 int idtype21;
4133 const char* var_class_name22;
4134 long var23 /* : Int */;
4135 char* var24 /* : NativeString */;
4136 char* var26 /* : NativeString */;
4137 char* var_ns /* var ns: NativeString */;
4138 long var_offset /* var offset: Int */;
4139 short int var28 /* : Bool */;
4140 short int var30 /* : Bool */;
4141 int cltype31;
4142 int idtype32;
4143 const char* var_class_name33;
4144 short int var34 /* : Bool */;
4145 long var36 /* : Int */;
4146 short int var38 /* : Bool */;
4147 int cltype39;
4148 int idtype40;
4149 const char* var_class_name41;
4150 long var42 /* : Int */;
4151 long var43 /* : Int */;
4152 short int var45 /* : Bool */;
4153 int cltype46;
4154 int idtype47;
4155 const char* var_class_name48;
4156 long var49 /* : Int */;
4157 val* var50 /* : FlatString */;
4158 var_i = p0;
4159 var1 = self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <self:FlatString> */
4160 var_mybtlen = var1;
4161 {
4162 { /* Inline kernel#Int#* (var_mybtlen,var_i) on <var_mybtlen:Int> */
4163 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
4164 /* <var_i:Int> isa OTHER */
4165 var4 = 1; /* easy <var_i:Int> isa OTHER*/
4166 if (unlikely(!var4)) {
4167 var_class_name = type_core__Int.name;
4168 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4169 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 735);
4170 fatal_exit(1);
4171 }
4172 var5 = var_mybtlen * var_i;
4173 var2 = var5;
4174 goto RET_LABEL3;
4175 RET_LABEL3:(void)0;
4176 }
4177 }
4178 var_new_bytelen = var2;
4179 var6 = self->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <self:FlatString> */
4180 var_mylen = var6;
4181 {
4182 { /* Inline kernel#Int#* (var_mylen,var_i) on <var_mylen:Int> */
4183 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
4184 /* <var_i:Int> isa OTHER */
4185 var9 = 1; /* easy <var_i:Int> isa OTHER*/
4186 if (unlikely(!var9)) {
4187 var_class_name12 = type_core__Int.name;
4188 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name12);
4189 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 735);
4190 fatal_exit(1);
4191 }
4192 var13 = var_mylen * var_i;
4193 var7 = var13;
4194 goto RET_LABEL8;
4195 RET_LABEL8:(void)0;
4196 }
4197 }
4198 var_newlen = var7;
4199 var14 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatString> */
4200 var_its = var14;
4201 var15 = self->attrs[COLOR_core__flat__FlatString___first_byte].l; /* _first_byte on <self:FlatString> */
4202 var_fb = var15;
4203 var16 = NULL/*special!*/;
4204 {
4205 { /* Inline kernel#Int#+ (var_new_bytelen,1l) on <var_new_bytelen:Int> */
4206 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4207 /* <1l:Int> isa OTHER */
4208 var19 = 1; /* easy <1l:Int> isa OTHER*/
4209 if (unlikely(!var19)) {
4210 var_class_name22 = type_core__Int.name;
4211 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22);
4212 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4213 fatal_exit(1);
4214 }
4215 var23 = var_new_bytelen + 1l;
4216 var17 = var23;
4217 goto RET_LABEL18;
4218 RET_LABEL18:(void)0;
4219 }
4220 }
4221 {
4222 { /* Inline native#NativeString#new (var16,var17) on <var16:NativeString> */
4223 var26 = (char*)nit_alloc(var17);
4224 var24 = var26;
4225 goto RET_LABEL25;
4226 RET_LABEL25:(void)0;
4227 }
4228 }
4229 var_ns = var24;
4230 {
4231 { /* Inline native#NativeString#[]= (var_ns,var_new_bytelen,((unsigned char)0x00)) on <var_ns:NativeString> */
4232 var_ns[var_new_bytelen]=(unsigned char)((unsigned char)0x00);
4233 RET_LABEL27:(void)0;
4234 }
4235 }
4236 var_offset = 0l;
4237 for(;;) {
4238 {
4239 { /* Inline kernel#Int#> (var_i,0l) on <var_i:Int> */
4240 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
4241 /* <0l:Int> isa OTHER */
4242 var30 = 1; /* easy <0l:Int> isa OTHER*/
4243 if (unlikely(!var30)) {
4244 var_class_name33 = type_core__Int.name;
4245 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33);
4246 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
4247 fatal_exit(1);
4248 }
4249 var34 = var_i > 0l;
4250 var28 = var34;
4251 goto RET_LABEL29;
4252 RET_LABEL29:(void)0;
4253 }
4254 }
4255 if (var28){
4256 {
4257 { /* Inline native#NativeString#copy_to (var_its,var_ns,var_mybtlen,var_fb,var_offset) on <var_its:NativeString> */
4258 memmove(var_ns+var_offset,var_its+var_fb,var_mybtlen);
4259 RET_LABEL35:(void)0;
4260 }
4261 }
4262 {
4263 { /* Inline kernel#Int#+ (var_offset,var_mybtlen) on <var_offset:Int> */
4264 /* Covariant cast for argument 0 (i) <var_mybtlen:Int> isa OTHER */
4265 /* <var_mybtlen:Int> isa OTHER */
4266 var38 = 1; /* easy <var_mybtlen:Int> isa OTHER*/
4267 if (unlikely(!var38)) {
4268 var_class_name41 = type_core__Int.name;
4269 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41);
4270 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4271 fatal_exit(1);
4272 }
4273 var42 = var_offset + var_mybtlen;
4274 var36 = var42;
4275 goto RET_LABEL37;
4276 RET_LABEL37:(void)0;
4277 }
4278 }
4279 var_offset = var36;
4280 {
4281 { /* Inline kernel#Int#- (var_i,1l) on <var_i:Int> */
4282 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4283 /* <1l:Int> isa OTHER */
4284 var45 = 1; /* easy <1l:Int> isa OTHER*/
4285 if (unlikely(!var45)) {
4286 var_class_name48 = type_core__Int.name;
4287 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48);
4288 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
4289 fatal_exit(1);
4290 }
4291 var49 = var_i - 1l;
4292 var43 = var49;
4293 goto RET_LABEL44;
4294 RET_LABEL44:(void)0;
4295 }
4296 }
4297 var_i = var43;
4298 } else {
4299 goto BREAK_label;
4300 }
4301 }
4302 BREAK_label: (void)0;
4303 var50 = NEW_core__FlatString(&type_core__FlatString);
4304 {
4305 core___core__FlatString___full(var50, var_ns, var_new_bytelen, 0l, var_newlen); /* Direct call flat#FlatString#full on <var50:FlatString>*/
4306 }
4307 var = var50;
4308 goto RET_LABEL;
4309 RET_LABEL:;
4310 return var;
4311 }
4312 /* method flat#FlatString#hash for (self: FlatString): Int */
4313 long core___core__FlatString___core__kernel__Object__hash(val* self) {
4314 long var /* : Int */;
4315 val* var1 /* : nullable Int */;
4316 val* var3 /* : nullable Int */;
4317 short int var4 /* : Bool */;
4318 short int var5 /* : Bool */;
4319 short int var7 /* : Bool */;
4320 long var_h /* var h: Int */;
4321 long var8 /* : Int */;
4322 long var_i /* var i: Int */;
4323 char* var9 /* : NativeString */;
4324 char* var_my_items /* var my_items: NativeString */;
4325 long var10 /* : Int */;
4326 long var_max /* var max: Int */;
4327 short int var11 /* : Bool */;
4328 short int var13 /* : Bool */;
4329 int cltype;
4330 int idtype;
4331 const char* var_class_name;
4332 short int var14 /* : Bool */;
4333 long var15 /* : Int */;
4334 long var17 /* : Int */;
4335 long var18 /* : Int */;
4336 short int var20 /* : Bool */;
4337 int cltype21;
4338 int idtype22;
4339 const char* var_class_name23;
4340 long var24 /* : Int */;
4341 unsigned char var25 /* : Byte */;
4342 unsigned char var27 /* : Byte */;
4343 long var28 /* : Int */;
4344 long var30 /* : Int */;
4345 long var31 /* : Int */;
4346 short int var33 /* : Bool */;
4347 int cltype34;
4348 int idtype35;
4349 const char* var_class_name36;
4350 long var37 /* : Int */;
4351 long var38 /* : Int */;
4352 short int var40 /* : Bool */;
4353 int cltype41;
4354 int idtype42;
4355 const char* var_class_name43;
4356 long var44 /* : Int */;
4357 val* var46 /* : nullable Int */;
4358 val* var47 /* : nullable Int */;
4359 val* var49 /* : nullable Int */;
4360 long var50 /* : Int */;
4361 {
4362 { /* Inline abstract_text#Text#hash_cache (self) on <self:FlatString> */
4363 var3 = self->attrs[COLOR_core__abstract_text__Text___hash_cache].val; /* _hash_cache on <self:FlatString> */
4364 var1 = var3;
4365 RET_LABEL2:(void)0;
4366 }
4367 }
4368 if (var1 == NULL) {
4369 var4 = 1; /* is null */
4370 } else {
4371 var4 = 0; /* arg is null but recv is not */
4372 }
4373 if (0) {
4374 { /* Inline kernel#Int#== (var1,((val*)NULL)) on <var1:nullable Int> */
4375 var7 = 0; /* incompatible types Int vs. null; cannot be NULL */
4376 var5 = var7;
4377 goto RET_LABEL6;
4378 RET_LABEL6:(void)0;
4379 }
4380 var4 = var5;
4381 }
4382 if (var4){
4383 var_h = 5381l;
4384 var8 = self->attrs[COLOR_core__flat__FlatString___first_byte].l; /* _first_byte on <self:FlatString> */
4385 var_i = var8;
4386 var9 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatString> */
4387 var_my_items = var9;
4388 {
4389 var10 = core__flat___FlatText___last_byte(self);
4390 }
4391 var_max = var10;
4392 for(;;) {
4393 {
4394 { /* Inline kernel#Int#<= (var_i,var_max) on <var_i:Int> */
4395 /* Covariant cast for argument 0 (i) <var_max:Int> isa OTHER */
4396 /* <var_max:Int> isa OTHER */
4397 var13 = 1; /* easy <var_max:Int> isa OTHER*/
4398 if (unlikely(!var13)) {
4399 var_class_name = type_core__Int.name;
4400 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4401 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
4402 fatal_exit(1);
4403 }
4404 var14 = var_i <= var_max;
4405 var11 = var14;
4406 goto RET_LABEL12;
4407 RET_LABEL12:(void)0;
4408 }
4409 }
4410 if (var11){
4411 {
4412 { /* Inline kernel#Int#<< (var_h,5l) on <var_h:Int> */
4413 var17 = var_h << 5l;
4414 var15 = var17;
4415 goto RET_LABEL16;
4416 RET_LABEL16:(void)0;
4417 }
4418 }
4419 {
4420 { /* Inline kernel#Int#+ (var15,var_h) on <var15:Int> */
4421 /* Covariant cast for argument 0 (i) <var_h:Int> isa OTHER */
4422 /* <var_h:Int> isa OTHER */
4423 var20 = 1; /* easy <var_h:Int> isa OTHER*/
4424 if (unlikely(!var20)) {
4425 var_class_name23 = type_core__Int.name;
4426 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name23);
4427 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4428 fatal_exit(1);
4429 }
4430 var24 = var15 + var_h;
4431 var18 = var24;
4432 goto RET_LABEL19;
4433 RET_LABEL19:(void)0;
4434 }
4435 }
4436 {
4437 { /* Inline native#NativeString#[] (var_my_items,var_i) on <var_my_items:NativeString> */
4438 var27 = (unsigned char)((int)var_my_items[var_i]);
4439 var25 = var27;
4440 goto RET_LABEL26;
4441 RET_LABEL26:(void)0;
4442 }
4443 }
4444 {
4445 { /* Inline kernel#Byte#to_i (var25) on <var25:Byte> */
4446 var30 = (long)var25;
4447 var28 = var30;
4448 goto RET_LABEL29;
4449 RET_LABEL29:(void)0;
4450 }
4451 }
4452 {
4453 { /* Inline kernel#Int#+ (var18,var28) on <var18:Int> */
4454 /* Covariant cast for argument 0 (i) <var28:Int> isa OTHER */
4455 /* <var28:Int> isa OTHER */
4456 var33 = 1; /* easy <var28:Int> isa OTHER*/
4457 if (unlikely(!var33)) {
4458 var_class_name36 = type_core__Int.name;
4459 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name36);
4460 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4461 fatal_exit(1);
4462 }
4463 var37 = var18 + var28;
4464 var31 = var37;
4465 goto RET_LABEL32;
4466 RET_LABEL32:(void)0;
4467 }
4468 }
4469 var_h = var31;
4470 {
4471 { /* Inline kernel#Int#+ (var_i,1l) on <var_i:Int> */
4472 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4473 /* <1l:Int> isa OTHER */
4474 var40 = 1; /* easy <1l:Int> isa OTHER*/
4475 if (unlikely(!var40)) {
4476 var_class_name43 = type_core__Int.name;
4477 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name43);
4478 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4479 fatal_exit(1);
4480 }
4481 var44 = var_i + 1l;
4482 var38 = var44;
4483 goto RET_LABEL39;
4484 RET_LABEL39:(void)0;
4485 }
4486 }
4487 var_i = var38;
4488 } else {
4489 goto BREAK_label;
4490 }
4491 }
4492 BREAK_label: (void)0;
4493 {
4494 { /* Inline abstract_text#Text#hash_cache= (self,var_h) on <self:FlatString> */
4495 var46 = (val*)(var_h<<2|1);
4496 self->attrs[COLOR_core__abstract_text__Text___hash_cache].val = var46; /* _hash_cache on <self:FlatString> */
4497 RET_LABEL45:(void)0;
4498 }
4499 }
4500 } else {
4501 }
4502 {
4503 { /* Inline abstract_text#Text#hash_cache (self) on <self:FlatString> */
4504 var49 = self->attrs[COLOR_core__abstract_text__Text___hash_cache].val; /* _hash_cache on <self:FlatString> */
4505 var47 = var49;
4506 RET_LABEL48:(void)0;
4507 }
4508 }
4509 if (unlikely(var47 == NULL)) {
4510 PRINT_ERROR("Runtime error: %s", "Cast failed");
4511 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 590);
4512 fatal_exit(1);
4513 }
4514 var50 = (long)(var47)>>2;
4515 var = var50;
4516 goto RET_LABEL;
4517 RET_LABEL:;
4518 return var;
4519 }
4520 /* method flat#FlatString#substrings for (self: FlatString): Iterator[FlatText] */
4521 val* core___core__FlatString___core__abstract_text__Text__substrings(val* self) {
4522 val* var /* : Iterator[FlatText] */;
4523 val* var1 /* : FlatSubstringsIter */;
4524 var1 = NEW_core__flat__FlatSubstringsIter(&type_core__flat__FlatSubstringsIter);
4525 {
4526 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_core__flat__FlatSubstringsIter__tgt_61d]))(var1, self); /* tgt= on <var1:FlatSubstringsIter>*/
4527 }
4528 {
4529 ((void(*)(val* self))(var1->class->vft[COLOR_core__kernel__Object__init]))(var1); /* init on <var1:FlatSubstringsIter>*/
4530 }
4531 var = var1;
4532 goto RET_LABEL;
4533 RET_LABEL:;
4534 return var;
4535 }
4536 /* method flat#FlatStringCharReverseIterator#target for (self: FlatStringCharReverseIterator): FlatString */
4537 val* core__flat___core__flat__FlatStringCharReverseIterator___target(val* self) {
4538 val* var /* : FlatString */;
4539 val* var1 /* : FlatString */;
4540 var1 = self->attrs[COLOR_core__flat__FlatStringCharReverseIterator___target].val; /* _target on <self:FlatStringCharReverseIterator> */
4541 if (unlikely(var1 == NULL)) {
4542 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
4543 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 599);
4544 fatal_exit(1);
4545 }
4546 var = var1;
4547 RET_LABEL:;
4548 return var;
4549 }
4550 /* method flat#FlatStringCharReverseIterator#target= for (self: FlatStringCharReverseIterator, FlatString) */
4551 void core__flat___core__flat__FlatStringCharReverseIterator___target_61d(val* self, val* p0) {
4552 self->attrs[COLOR_core__flat__FlatStringCharReverseIterator___target].val = p0; /* _target on <self:FlatStringCharReverseIterator> */
4553 RET_LABEL:;
4554 }
4555 /* method flat#FlatStringCharReverseIterator#curr_pos for (self: FlatStringCharReverseIterator): Int */
4556 long core__flat___core__flat__FlatStringCharReverseIterator___curr_pos(val* self) {
4557 long var /* : Int */;
4558 long var1 /* : Int */;
4559 var1 = self->attrs[COLOR_core__flat__FlatStringCharReverseIterator___curr_pos].l; /* _curr_pos on <self:FlatStringCharReverseIterator> */
4560 var = var1;
4561 RET_LABEL:;
4562 return var;
4563 }
4564 /* method flat#FlatStringCharReverseIterator#curr_pos= for (self: FlatStringCharReverseIterator, Int) */
4565 void core__flat___core__flat__FlatStringCharReverseIterator___curr_pos_61d(val* self, long p0) {
4566 self->attrs[COLOR_core__flat__FlatStringCharReverseIterator___curr_pos].l = p0; /* _curr_pos on <self:FlatStringCharReverseIterator> */
4567 RET_LABEL:;
4568 }
4569 /* method flat#FlatStringCharReverseIterator#is_ok for (self: FlatStringCharReverseIterator): Bool */
4570 short int core__flat___core__flat__FlatStringCharReverseIterator___core__abstract_collection__Iterator__is_ok(val* self) {
4571 short int var /* : Bool */;
4572 long var1 /* : Int */;
4573 long var3 /* : Int */;
4574 short int var4 /* : Bool */;
4575 short int var6 /* : Bool */;
4576 int cltype;
4577 int idtype;
4578 const char* var_class_name;
4579 short int var7 /* : Bool */;
4580 {
4581 { /* Inline flat#FlatStringCharReverseIterator#curr_pos (self) on <self:FlatStringCharReverseIterator> */
4582 var3 = self->attrs[COLOR_core__flat__FlatStringCharReverseIterator___curr_pos].l; /* _curr_pos on <self:FlatStringCharReverseIterator> */
4583 var1 = var3;
4584 RET_LABEL2:(void)0;
4585 }
4586 }
4587 {
4588 { /* Inline kernel#Int#>= (var1,0l) on <var1:Int> */
4589 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
4590 /* <0l:Int> isa OTHER */
4591 var6 = 1; /* easy <0l:Int> isa OTHER*/
4592 if (unlikely(!var6)) {
4593 var_class_name = type_core__Int.name;
4594 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4595 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
4596 fatal_exit(1);
4597 }
4598 var7 = var1 >= 0l;
4599 var4 = var7;
4600 goto RET_LABEL5;
4601 RET_LABEL5:(void)0;
4602 }
4603 }
4604 var = var4;
4605 goto RET_LABEL;
4606 RET_LABEL:;
4607 return var;
4608 }
4609 /* method flat#FlatStringCharReverseIterator#item for (self: FlatStringCharReverseIterator): Char */
4610 uint32_t core__flat___core__flat__FlatStringCharReverseIterator___core__abstract_collection__Iterator__item(val* self) {
4611 uint32_t var /* : Char */;
4612 val* var1 /* : FlatString */;
4613 val* var3 /* : FlatString */;
4614 long var4 /* : Int */;
4615 long var6 /* : Int */;
4616 uint32_t var7 /* : Char */;
4617 {
4618 { /* Inline flat#FlatStringCharReverseIterator#target (self) on <self:FlatStringCharReverseIterator> */
4619 var3 = self->attrs[COLOR_core__flat__FlatStringCharReverseIterator___target].val; /* _target on <self:FlatStringCharReverseIterator> */
4620 if (unlikely(var3 == NULL)) {
4621 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
4622 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 599);
4623 fatal_exit(1);
4624 }
4625 var1 = var3;
4626 RET_LABEL2:(void)0;
4627 }
4628 }
4629 {
4630 { /* Inline flat#FlatStringCharReverseIterator#curr_pos (self) on <self:FlatStringCharReverseIterator> */
4631 var6 = self->attrs[COLOR_core__flat__FlatStringCharReverseIterator___curr_pos].l; /* _curr_pos on <self:FlatStringCharReverseIterator> */
4632 var4 = var6;
4633 RET_LABEL5:(void)0;
4634 }
4635 }
4636 {
4637 var7 = core__flat___FlatText___core__abstract_text__Text___91d_93d(var1, var4);
4638 }
4639 var = var7;
4640 goto RET_LABEL;
4641 RET_LABEL:;
4642 return var;
4643 }
4644 /* method flat#FlatStringCharReverseIterator#item for (self: Iterator[nullable Object]): nullable Object */
4645 val* VIRTUAL_core__flat___core__flat__FlatStringCharReverseIterator___core__abstract_collection__Iterator__item(val* self) {
4646 val* var /* : nullable Object */;
4647 uint32_t var1 /* : Char */;
4648 val* var2 /* : nullable Object */;
4649 var1 = core__flat___core__flat__FlatStringCharReverseIterator___core__abstract_collection__Iterator__item(self);
4650 var2 = (val*)((long)(var1)<<2|2);
4651 var = var2;
4652 RET_LABEL:;
4653 return var;
4654 }
4655 /* method flat#FlatStringCharReverseIterator#next for (self: FlatStringCharReverseIterator) */
4656 void core__flat___core__flat__FlatStringCharReverseIterator___core__abstract_collection__Iterator__next(val* self) {
4657 val* var_ /* var : FlatStringCharReverseIterator */;
4658 long var /* : Int */;
4659 long var2 /* : Int */;
4660 long var3 /* : Int */;
4661 short int var5 /* : Bool */;
4662 int cltype;
4663 int idtype;
4664 const char* var_class_name;
4665 long var6 /* : Int */;
4666 var_ = self;
4667 {
4668 { /* Inline flat#FlatStringCharReverseIterator#curr_pos (var_) on <var_:FlatStringCharReverseIterator> */
4669 var2 = var_->attrs[COLOR_core__flat__FlatStringCharReverseIterator___curr_pos].l; /* _curr_pos on <var_:FlatStringCharReverseIterator> */
4670 var = var2;
4671 RET_LABEL1:(void)0;
4672 }
4673 }
4674 {
4675 { /* Inline kernel#Int#- (var,1l) on <var:Int> */
4676 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4677 /* <1l:Int> isa OTHER */
4678 var5 = 1; /* easy <1l:Int> isa OTHER*/
4679 if (unlikely(!var5)) {
4680 var_class_name = type_core__Int.name;
4681 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4682 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
4683 fatal_exit(1);
4684 }
4685 var6 = var - 1l;
4686 var3 = var6;
4687 goto RET_LABEL4;
4688 RET_LABEL4:(void)0;
4689 }
4690 }
4691 {
4692 { /* Inline flat#FlatStringCharReverseIterator#curr_pos= (var_,var3) on <var_:FlatStringCharReverseIterator> */
4693 var_->attrs[COLOR_core__flat__FlatStringCharReverseIterator___curr_pos].l = var3; /* _curr_pos on <var_:FlatStringCharReverseIterator> */
4694 RET_LABEL7:(void)0;
4695 }
4696 }
4697 RET_LABEL:;
4698 }
4699 /* method flat#FlatStringCharReverseIterator#index for (self: FlatStringCharReverseIterator): Int */
4700 long core__flat___core__flat__FlatStringCharReverseIterator___core__abstract_collection__IndexedIterator__index(val* self) {
4701 long var /* : Int */;
4702 long var1 /* : Int */;
4703 long var3 /* : Int */;
4704 {
4705 { /* Inline flat#FlatStringCharReverseIterator#curr_pos (self) on <self:FlatStringCharReverseIterator> */
4706 var3 = self->attrs[COLOR_core__flat__FlatStringCharReverseIterator___curr_pos].l; /* _curr_pos on <self:FlatStringCharReverseIterator> */
4707 var1 = var3;
4708 RET_LABEL2:(void)0;
4709 }
4710 }
4711 var = var1;
4712 goto RET_LABEL;
4713 RET_LABEL:;
4714 return var;
4715 }
4716 /* method flat#FlatStringCharReverseIterator#init for (self: FlatStringCharReverseIterator) */
4717 void core__flat___core__flat__FlatStringCharReverseIterator___core__kernel__Object__init(val* self) {
4718 {
4719 ((void(*)(val* self))(self->class->vft[COLOR_core__flat___core__flat__FlatStringCharReverseIterator___core__kernel__Object__init]))(self); /* init on <self:FlatStringCharReverseIterator>*/
4720 }
4721 RET_LABEL:;
4722 }
4723 /* method flat#FlatStringCharIterator#target for (self: FlatStringCharIterator): FlatString */
4724 val* core__flat___core__flat__FlatStringCharIterator___target(val* self) {
4725 val* var /* : FlatString */;
4726 val* var1 /* : FlatString */;
4727 var1 = self->attrs[COLOR_core__flat__FlatStringCharIterator___target].val; /* _target on <self:FlatStringCharIterator> */
4728 if (unlikely(var1 == NULL)) {
4729 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
4730 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 616);
4731 fatal_exit(1);
4732 }
4733 var = var1;
4734 RET_LABEL:;
4735 return var;
4736 }
4737 /* method flat#FlatStringCharIterator#target= for (self: FlatStringCharIterator, FlatString) */
4738 void core__flat___core__flat__FlatStringCharIterator___target_61d(val* self, val* p0) {
4739 self->attrs[COLOR_core__flat__FlatStringCharIterator___target].val = p0; /* _target on <self:FlatStringCharIterator> */
4740 RET_LABEL:;
4741 }
4742 /* method flat#FlatStringCharIterator#max for (self: FlatStringCharIterator): Int */
4743 long core__flat___core__flat__FlatStringCharIterator___max(val* self) {
4744 long var /* : Int */;
4745 long var1 /* : Int */;
4746 var1 = self->attrs[COLOR_core__flat__FlatStringCharIterator___max].l; /* _max on <self:FlatStringCharIterator> */
4747 var = var1;
4748 RET_LABEL:;
4749 return var;
4750 }
4751 /* method flat#FlatStringCharIterator#max= for (self: FlatStringCharIterator, Int) */
4752 void core__flat___core__flat__FlatStringCharIterator___max_61d(val* self, long p0) {
4753 self->attrs[COLOR_core__flat__FlatStringCharIterator___max].l = p0; /* _max on <self:FlatStringCharIterator> */
4754 RET_LABEL:;
4755 }
4756 /* method flat#FlatStringCharIterator#curr_pos for (self: FlatStringCharIterator): Int */
4757 long core__flat___core__flat__FlatStringCharIterator___curr_pos(val* self) {
4758 long var /* : Int */;
4759 long var1 /* : Int */;
4760 var1 = self->attrs[COLOR_core__flat__FlatStringCharIterator___curr_pos].l; /* _curr_pos on <self:FlatStringCharIterator> */
4761 var = var1;
4762 RET_LABEL:;
4763 return var;
4764 }
4765 /* method flat#FlatStringCharIterator#curr_pos= for (self: FlatStringCharIterator, Int) */
4766 void core__flat___core__flat__FlatStringCharIterator___curr_pos_61d(val* self, long p0) {
4767 self->attrs[COLOR_core__flat__FlatStringCharIterator___curr_pos].l = p0; /* _curr_pos on <self:FlatStringCharIterator> */
4768 RET_LABEL:;
4769 }
4770 /* method flat#FlatStringCharIterator#init for (self: FlatStringCharIterator) */
4771 void core__flat___core__flat__FlatStringCharIterator___core__kernel__Object__init(val* self) {
4772 val* var /* : FlatString */;
4773 val* var2 /* : FlatString */;
4774 long var3 /* : Int */;
4775 long var4 /* : Int */;
4776 short int var6 /* : Bool */;
4777 int cltype;
4778 int idtype;
4779 const char* var_class_name;
4780 long var7 /* : Int */;
4781 {
4782 ((void(*)(val* self))(self->class->vft[COLOR_core__flat___core__flat__FlatStringCharIterator___core__kernel__Object__init]))(self); /* init on <self:FlatStringCharIterator>*/
4783 }
4784 {
4785 { /* Inline flat#FlatStringCharIterator#target (self) on <self:FlatStringCharIterator> */
4786 var2 = self->attrs[COLOR_core__flat__FlatStringCharIterator___target].val; /* _target on <self:FlatStringCharIterator> */
4787 if (unlikely(var2 == NULL)) {
4788 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
4789 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 616);
4790 fatal_exit(1);
4791 }
4792 var = var2;
4793 RET_LABEL1:(void)0;
4794 }
4795 }
4796 var3 = var->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <var:FlatString> */
4797 {
4798 { /* Inline kernel#Int#- (var3,1l) on <var3:Int> */
4799 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4800 /* <1l:Int> isa OTHER */
4801 var6 = 1; /* easy <1l:Int> isa OTHER*/
4802 if (unlikely(!var6)) {
4803 var_class_name = type_core__Int.name;
4804 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4805 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
4806 fatal_exit(1);
4807 }
4808 var7 = var3 - 1l;
4809 var4 = var7;
4810 goto RET_LABEL5;
4811 RET_LABEL5:(void)0;
4812 }
4813 }
4814 {
4815 { /* Inline flat#FlatStringCharIterator#max= (self,var4) on <self:FlatStringCharIterator> */
4816 self->attrs[COLOR_core__flat__FlatStringCharIterator___max].l = var4; /* _max on <self:FlatStringCharIterator> */
4817 RET_LABEL8:(void)0;
4818 }
4819 }
4820 RET_LABEL:;
4821 }
4822 /* method flat#FlatStringCharIterator#is_ok for (self: FlatStringCharIterator): Bool */
4823 short int core__flat___core__flat__FlatStringCharIterator___core__abstract_collection__Iterator__is_ok(val* self) {
4824 short int var /* : Bool */;
4825 long var1 /* : Int */;
4826 long var3 /* : Int */;
4827 long var4 /* : Int */;
4828 long var6 /* : Int */;
4829 short int var7 /* : Bool */;
4830 short int var9 /* : Bool */;
4831 int cltype;
4832 int idtype;
4833 const char* var_class_name;
4834 short int var10 /* : Bool */;
4835 {
4836 { /* Inline flat#FlatStringCharIterator#curr_pos (self) on <self:FlatStringCharIterator> */
4837 var3 = self->attrs[COLOR_core__flat__FlatStringCharIterator___curr_pos].l; /* _curr_pos on <self:FlatStringCharIterator> */
4838 var1 = var3;
4839 RET_LABEL2:(void)0;
4840 }
4841 }
4842 {
4843 { /* Inline flat#FlatStringCharIterator#max (self) on <self:FlatStringCharIterator> */
4844 var6 = self->attrs[COLOR_core__flat__FlatStringCharIterator___max].l; /* _max on <self:FlatStringCharIterator> */
4845 var4 = var6;
4846 RET_LABEL5:(void)0;
4847 }
4848 }
4849 {
4850 { /* Inline kernel#Int#<= (var1,var4) on <var1:Int> */
4851 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
4852 /* <var4:Int> isa OTHER */
4853 var9 = 1; /* easy <var4:Int> isa OTHER*/
4854 if (unlikely(!var9)) {
4855 var_class_name = type_core__Int.name;
4856 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4857 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
4858 fatal_exit(1);
4859 }
4860 var10 = var1 <= var4;
4861 var7 = var10;
4862 goto RET_LABEL8;
4863 RET_LABEL8:(void)0;
4864 }
4865 }
4866 var = var7;
4867 goto RET_LABEL;
4868 RET_LABEL:;
4869 return var;
4870 }
4871 /* method flat#FlatStringCharIterator#item for (self: FlatStringCharIterator): Char */
4872 uint32_t core__flat___core__flat__FlatStringCharIterator___core__abstract_collection__Iterator__item(val* self) {
4873 uint32_t var /* : Char */;
4874 val* var1 /* : FlatString */;
4875 val* var3 /* : FlatString */;
4876 long var4 /* : Int */;
4877 long var6 /* : Int */;
4878 uint32_t var7 /* : Char */;
4879 {
4880 { /* Inline flat#FlatStringCharIterator#target (self) on <self:FlatStringCharIterator> */
4881 var3 = self->attrs[COLOR_core__flat__FlatStringCharIterator___target].val; /* _target on <self:FlatStringCharIterator> */
4882 if (unlikely(var3 == NULL)) {
4883 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
4884 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 616);
4885 fatal_exit(1);
4886 }
4887 var1 = var3;
4888 RET_LABEL2:(void)0;
4889 }
4890 }
4891 {
4892 { /* Inline flat#FlatStringCharIterator#curr_pos (self) on <self:FlatStringCharIterator> */
4893 var6 = self->attrs[COLOR_core__flat__FlatStringCharIterator___curr_pos].l; /* _curr_pos on <self:FlatStringCharIterator> */
4894 var4 = var6;
4895 RET_LABEL5:(void)0;
4896 }
4897 }
4898 {
4899 var7 = core__flat___FlatText___core__abstract_text__Text___91d_93d(var1, var4);
4900 }
4901 var = var7;
4902 goto RET_LABEL;
4903 RET_LABEL:;
4904 return var;
4905 }
4906 /* method flat#FlatStringCharIterator#item for (self: Iterator[nullable Object]): nullable Object */
4907 val* VIRTUAL_core__flat___core__flat__FlatStringCharIterator___core__abstract_collection__Iterator__item(val* self) {
4908 val* var /* : nullable Object */;
4909 uint32_t var1 /* : Char */;
4910 val* var2 /* : nullable Object */;
4911 var1 = core__flat___core__flat__FlatStringCharIterator___core__abstract_collection__Iterator__item(self);
4912 var2 = (val*)((long)(var1)<<2|2);
4913 var = var2;
4914 RET_LABEL:;
4915 return var;
4916 }
4917 /* method flat#FlatStringCharIterator#next for (self: FlatStringCharIterator) */
4918 void core__flat___core__flat__FlatStringCharIterator___core__abstract_collection__Iterator__next(val* self) {
4919 val* var_ /* var : FlatStringCharIterator */;
4920 long var /* : Int */;
4921 long var2 /* : Int */;
4922 long var3 /* : Int */;
4923 short int var5 /* : Bool */;
4924 int cltype;
4925 int idtype;
4926 const char* var_class_name;
4927 long var6 /* : Int */;
4928 var_ = self;
4929 {
4930 { /* Inline flat#FlatStringCharIterator#curr_pos (var_) on <var_:FlatStringCharIterator> */
4931 var2 = var_->attrs[COLOR_core__flat__FlatStringCharIterator___curr_pos].l; /* _curr_pos on <var_:FlatStringCharIterator> */
4932 var = var2;
4933 RET_LABEL1:(void)0;
4934 }
4935 }
4936 {
4937 { /* Inline kernel#Int#+ (var,1l) on <var:Int> */
4938 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4939 /* <1l:Int> isa OTHER */
4940 var5 = 1; /* easy <1l:Int> isa OTHER*/
4941 if (unlikely(!var5)) {
4942 var_class_name = type_core__Int.name;
4943 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4944 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4945 fatal_exit(1);
4946 }
4947 var6 = var + 1l;
4948 var3 = var6;
4949 goto RET_LABEL4;
4950 RET_LABEL4:(void)0;
4951 }
4952 }
4953 {
4954 { /* Inline flat#FlatStringCharIterator#curr_pos= (var_,var3) on <var_:FlatStringCharIterator> */
4955 var_->attrs[COLOR_core__flat__FlatStringCharIterator___curr_pos].l = var3; /* _curr_pos on <var_:FlatStringCharIterator> */
4956 RET_LABEL7:(void)0;
4957 }
4958 }
4959 RET_LABEL:;
4960 }
4961 /* method flat#FlatStringCharIterator#index for (self: FlatStringCharIterator): Int */
4962 long core__flat___core__flat__FlatStringCharIterator___core__abstract_collection__IndexedIterator__index(val* self) {
4963 long var /* : Int */;
4964 long var1 /* : Int */;
4965 long var3 /* : Int */;
4966 {
4967 { /* Inline flat#FlatStringCharIterator#curr_pos (self) on <self:FlatStringCharIterator> */
4968 var3 = self->attrs[COLOR_core__flat__FlatStringCharIterator___curr_pos].l; /* _curr_pos on <self:FlatStringCharIterator> */
4969 var1 = var3;
4970 RET_LABEL2:(void)0;
4971 }
4972 }
4973 var = var1;
4974 goto RET_LABEL;
4975 RET_LABEL:;
4976 return var;
4977 }
4978 /* method flat#FlatStringCharView#[] for (self: FlatStringCharView, Int): Char */
4979 uint32_t core__flat___core__flat__FlatStringCharView___core__abstract_collection__SequenceRead___91d_93d(val* self, long p0) {
4980 uint32_t var /* : Char */;
4981 long var_index /* var index: Int */;
4982 val* var1 /* : Text */;
4983 val* var3 /* : Text */;
4984 uint32_t var4 /* : Char */;
4985 var_index = p0;
4986 {
4987 { /* Inline abstract_text#StringCharView#target (self) on <self:FlatStringCharView> */
4988 var3 = self->attrs[COLOR_core__abstract_text__StringCharView___target].val; /* _target on <self:FlatStringCharView> */
4989 if (unlikely(var3 == NULL)) {
4990 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
4991 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1138);
4992 fatal_exit(1);
4993 }
4994 var1 = var3;
4995 RET_LABEL2:(void)0;
4996 }
4997 }
4998 {
4999 var4 = core__flat___FlatText___core__abstract_text__Text___91d_93d(var1, var_index);
5000 }
5001 var = var4;
5002 goto RET_LABEL;
5003 RET_LABEL:;
5004 return var;
5005 }
5006 /* method flat#FlatStringCharView#[] for (self: SequenceRead[nullable Object], Int): nullable Object */
5007 val* VIRTUAL_core__flat___core__flat__FlatStringCharView___core__abstract_collection__SequenceRead___91d_93d(val* self, long p0) {
5008 val* var /* : nullable Object */;
5009 uint32_t var1 /* : Char */;
5010 val* var2 /* : nullable Object */;
5011 var1 = core__flat___core__flat__FlatStringCharView___core__abstract_collection__SequenceRead___91d_93d(self, p0);
5012 var2 = (val*)((long)(var1)<<2|2);
5013 var = var2;
5014 RET_LABEL:;
5015 return var;
5016 }
5017 /* method flat#FlatStringCharView#iterator_from for (self: FlatStringCharView, Int): IndexedIterator[Char] */
5018 val* core__flat___core__flat__FlatStringCharView___core__abstract_collection__SequenceRead__iterator_from(val* self, long p0) {
5019 val* var /* : IndexedIterator[Char] */;
5020 long var_start /* var start: Int */;
5021 val* var1 /* : FlatStringCharIterator */;
5022 val* var2 /* : Text */;
5023 val* var4 /* : Text */;
5024 var_start = p0;
5025 var1 = NEW_core__flat__FlatStringCharIterator(&type_core__flat__FlatStringCharIterator);
5026 {
5027 { /* Inline abstract_text#StringCharView#target (self) on <self:FlatStringCharView> */
5028 var4 = self->attrs[COLOR_core__abstract_text__StringCharView___target].val; /* _target on <self:FlatStringCharView> */
5029 if (unlikely(var4 == NULL)) {
5030 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
5031 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1138);
5032 fatal_exit(1);
5033 }
5034 var2 = var4;
5035 RET_LABEL3:(void)0;
5036 }
5037 }
5038 {
5039 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_core__flat__FlatStringCharIterator__target_61d]))(var1, var2); /* target= on <var1:FlatStringCharIterator>*/
5040 }
5041 {
5042 ((void(*)(val* self, long p0))(var1->class->vft[COLOR_core__flat__FlatStringCharIterator__curr_pos_61d]))(var1, var_start); /* curr_pos= on <var1:FlatStringCharIterator>*/
5043 }
5044 {
5045 ((void(*)(val* self))(var1->class->vft[COLOR_core__kernel__Object__init]))(var1); /* init on <var1:FlatStringCharIterator>*/
5046 }
5047 var = var1;
5048 goto RET_LABEL;
5049 RET_LABEL:;
5050 return var;
5051 }
5052 /* method flat#FlatStringCharView#reverse_iterator_from for (self: FlatStringCharView, Int): IndexedIterator[Char] */
5053 val* core__flat___core__flat__FlatStringCharView___core__abstract_collection__SequenceRead__reverse_iterator_from(val* self, long p0) {
5054 val* var /* : IndexedIterator[Char] */;
5055 long var_start /* var start: Int */;
5056 val* var1 /* : FlatStringCharReverseIterator */;
5057 val* var2 /* : Text */;
5058 val* var4 /* : Text */;
5059 var_start = p0;
5060 var1 = NEW_core__flat__FlatStringCharReverseIterator(&type_core__flat__FlatStringCharReverseIterator);
5061 {
5062 { /* Inline abstract_text#StringCharView#target (self) on <self:FlatStringCharView> */
5063 var4 = self->attrs[COLOR_core__abstract_text__StringCharView___target].val; /* _target on <self:FlatStringCharView> */
5064 if (unlikely(var4 == NULL)) {
5065 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
5066 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1138);
5067 fatal_exit(1);
5068 }
5069 var2 = var4;
5070 RET_LABEL3:(void)0;
5071 }
5072 }
5073 {
5074 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_core__flat__FlatStringCharReverseIterator__target_61d]))(var1, var2); /* target= on <var1:FlatStringCharReverseIterator>*/
5075 }
5076 {
5077 ((void(*)(val* self, long p0))(var1->class->vft[COLOR_core__flat__FlatStringCharReverseIterator__curr_pos_61d]))(var1, var_start); /* curr_pos= on <var1:FlatStringCharReverseIterator>*/
5078 }
5079 {
5080 ((void(*)(val* self))(var1->class->vft[COLOR_core__kernel__Object__init]))(var1); /* init on <var1:FlatStringCharReverseIterator>*/
5081 }
5082 var = var1;
5083 goto RET_LABEL;
5084 RET_LABEL:;
5085 return var;
5086 }
5087 /* method flat#FlatStringByteReverseIterator#target for (self: FlatStringByteReverseIterator): FlatString */
5088 val* core__flat___core__flat__FlatStringByteReverseIterator___target(val* self) {
5089 val* var /* : FlatString */;
5090 val* var1 /* : FlatString */;
5091 var1 = self->attrs[COLOR_core__flat__FlatStringByteReverseIterator___target].val; /* _target on <self:FlatStringByteReverseIterator> */
5092 if (unlikely(var1 == NULL)) {
5093 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
5094 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 650);
5095 fatal_exit(1);
5096 }
5097 var = var1;
5098 RET_LABEL:;
5099 return var;
5100 }
5101 /* method flat#FlatStringByteReverseIterator#target= for (self: FlatStringByteReverseIterator, FlatString) */
5102 void core__flat___core__flat__FlatStringByteReverseIterator___target_61d(val* self, val* p0) {
5103 self->attrs[COLOR_core__flat__FlatStringByteReverseIterator___target].val = p0; /* _target on <self:FlatStringByteReverseIterator> */
5104 RET_LABEL:;
5105 }
5106 /* method flat#FlatStringByteReverseIterator#target_items for (self: FlatStringByteReverseIterator): NativeString */
5107 char* core__flat___core__flat__FlatStringByteReverseIterator___target_items(val* self) {
5108 char* var /* : NativeString */;
5109 char* var1 /* : NativeString */;
5110 var1 = self->attrs[COLOR_core__flat__FlatStringByteReverseIterator___target_items].str; /* _target_items on <self:FlatStringByteReverseIterator> */
5111 var = var1;
5112 RET_LABEL:;
5113 return var;
5114 }
5115 /* method flat#FlatStringByteReverseIterator#target_items= for (self: FlatStringByteReverseIterator, NativeString) */
5116 void core__flat___core__flat__FlatStringByteReverseIterator___target_items_61d(val* self, char* p0) {
5117 self->attrs[COLOR_core__flat__FlatStringByteReverseIterator___target_items].str = p0; /* _target_items on <self:FlatStringByteReverseIterator> */
5118 RET_LABEL:;
5119 }
5120 /* method flat#FlatStringByteReverseIterator#curr_pos for (self: FlatStringByteReverseIterator): Int */
5121 long core__flat___core__flat__FlatStringByteReverseIterator___curr_pos(val* self) {
5122 long var /* : Int */;
5123 long var1 /* : Int */;
5124 var1 = self->attrs[COLOR_core__flat__FlatStringByteReverseIterator___curr_pos].l; /* _curr_pos on <self:FlatStringByteReverseIterator> */
5125 var = var1;
5126 RET_LABEL:;
5127 return var;
5128 }
5129 /* method flat#FlatStringByteReverseIterator#curr_pos= for (self: FlatStringByteReverseIterator, Int) */
5130 void core__flat___core__flat__FlatStringByteReverseIterator___curr_pos_61d(val* self, long p0) {
5131 self->attrs[COLOR_core__flat__FlatStringByteReverseIterator___curr_pos].l = p0; /* _curr_pos on <self:FlatStringByteReverseIterator> */
5132 RET_LABEL:;
5133 }
5134 /* method flat#FlatStringByteReverseIterator#init for (self: FlatStringByteReverseIterator) */
5135 void core__flat___core__flat__FlatStringByteReverseIterator___core__kernel__Object__init(val* self) {
5136 val* var /* : FlatString */;
5137 val* var2 /* : FlatString */;
5138 val* var_tgt /* var tgt: FlatString */;
5139 char* var3 /* : NativeString */;
5140 val* var_ /* var : FlatStringByteReverseIterator */;
5141 long var5 /* : Int */;
5142 long var7 /* : Int */;
5143 long var8 /* : Int */;
5144 long var9 /* : Int */;
5145 short int var11 /* : Bool */;
5146 int cltype;
5147 int idtype;
5148 const char* var_class_name;
5149 long var12 /* : Int */;
5150 {
5151 ((void(*)(val* self))(self->class->vft[COLOR_core__flat___core__flat__FlatStringByteReverseIterator___core__kernel__Object__init]))(self); /* init on <self:FlatStringByteReverseIterator>*/
5152 }
5153 {
5154 { /* Inline flat#FlatStringByteReverseIterator#target (self) on <self:FlatStringByteReverseIterator> */
5155 var2 = self->attrs[COLOR_core__flat__FlatStringByteReverseIterator___target].val; /* _target on <self:FlatStringByteReverseIterator> */
5156 if (unlikely(var2 == NULL)) {
5157 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
5158 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 650);
5159 fatal_exit(1);
5160 }
5161 var = var2;
5162 RET_LABEL1:(void)0;
5163 }
5164 }
5165 var_tgt = var;
5166 var3 = var_tgt->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var_tgt:FlatString> */
5167 {
5168 { /* Inline flat#FlatStringByteReverseIterator#target_items= (self,var3) on <self:FlatStringByteReverseIterator> */
5169 self->attrs[COLOR_core__flat__FlatStringByteReverseIterator___target_items].str = var3; /* _target_items on <self:FlatStringByteReverseIterator> */
5170 RET_LABEL4:(void)0;
5171 }
5172 }
5173 var_ = self;
5174 {
5175 { /* Inline flat#FlatStringByteReverseIterator#curr_pos (var_) on <var_:FlatStringByteReverseIterator> */
5176 var7 = var_->attrs[COLOR_core__flat__FlatStringByteReverseIterator___curr_pos].l; /* _curr_pos on <var_:FlatStringByteReverseIterator> */
5177 var5 = var7;
5178 RET_LABEL6:(void)0;
5179 }
5180 }
5181 var8 = var_tgt->attrs[COLOR_core__flat__FlatString___first_byte].l; /* _first_byte on <var_tgt:FlatString> */
5182 {
5183 { /* Inline kernel#Int#+ (var5,var8) on <var5:Int> */
5184 /* Covariant cast for argument 0 (i) <var8:Int> isa OTHER */
5185 /* <var8:Int> isa OTHER */
5186 var11 = 1; /* easy <var8:Int> isa OTHER*/
5187 if (unlikely(!var11)) {
5188 var_class_name = type_core__Int.name;
5189 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5190 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
5191 fatal_exit(1);
5192 }
5193 var12 = var5 + var8;
5194 var9 = var12;
5195 goto RET_LABEL10;
5196 RET_LABEL10:(void)0;
5197 }
5198 }
5199 {
5200 { /* Inline flat#FlatStringByteReverseIterator#curr_pos= (var_,var9) on <var_:FlatStringByteReverseIterator> */
5201 var_->attrs[COLOR_core__flat__FlatStringByteReverseIterator___curr_pos].l = var9; /* _curr_pos on <var_:FlatStringByteReverseIterator> */
5202 RET_LABEL13:(void)0;
5203 }
5204 }
5205 RET_LABEL:;
5206 }
5207 /* method flat#FlatStringByteReverseIterator#is_ok for (self: FlatStringByteReverseIterator): Bool */
5208 short int core__flat___core__flat__FlatStringByteReverseIterator___core__abstract_collection__Iterator__is_ok(val* self) {
5209 short int var /* : Bool */;
5210 long var1 /* : Int */;
5211 long var3 /* : Int */;
5212 val* var4 /* : FlatString */;
5213 val* var6 /* : FlatString */;
5214 long var7 /* : Int */;
5215 short int var8 /* : Bool */;
5216 short int var10 /* : Bool */;
5217 int cltype;
5218 int idtype;
5219 const char* var_class_name;
5220 short int var11 /* : Bool */;
5221 {
5222 { /* Inline flat#FlatStringByteReverseIterator#curr_pos (self) on <self:FlatStringByteReverseIterator> */
5223 var3 = self->attrs[COLOR_core__flat__FlatStringByteReverseIterator___curr_pos].l; /* _curr_pos on <self:FlatStringByteReverseIterator> */
5224 var1 = var3;
5225 RET_LABEL2:(void)0;
5226 }
5227 }
5228 {
5229 { /* Inline flat#FlatStringByteReverseIterator#target (self) on <self:FlatStringByteReverseIterator> */
5230 var6 = self->attrs[COLOR_core__flat__FlatStringByteReverseIterator___target].val; /* _target on <self:FlatStringByteReverseIterator> */
5231 if (unlikely(var6 == NULL)) {
5232 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
5233 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 650);
5234 fatal_exit(1);
5235 }
5236 var4 = var6;
5237 RET_LABEL5:(void)0;
5238 }
5239 }
5240 var7 = var4->attrs[COLOR_core__flat__FlatString___first_byte].l; /* _first_byte on <var4:FlatString> */
5241 {
5242 { /* Inline kernel#Int#>= (var1,var7) on <var1:Int> */
5243 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
5244 /* <var7:Int> isa OTHER */
5245 var10 = 1; /* easy <var7:Int> isa OTHER*/
5246 if (unlikely(!var10)) {
5247 var_class_name = type_core__Int.name;
5248 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5249 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
5250 fatal_exit(1);
5251 }
5252 var11 = var1 >= var7;
5253 var8 = var11;
5254 goto RET_LABEL9;
5255 RET_LABEL9:(void)0;
5256 }
5257 }
5258 var = var8;
5259 goto RET_LABEL;
5260 RET_LABEL:;
5261 return var;
5262 }
5263 /* method flat#FlatStringByteReverseIterator#item for (self: FlatStringByteReverseIterator): Byte */
5264 unsigned char core__flat___core__flat__FlatStringByteReverseIterator___core__abstract_collection__Iterator__item(val* self) {
5265 unsigned char var /* : Byte */;
5266 char* var1 /* : NativeString */;
5267 char* var3 /* : NativeString */;
5268 long var4 /* : Int */;
5269 long var6 /* : Int */;
5270 unsigned char var7 /* : Byte */;
5271 unsigned char var9 /* : Byte */;
5272 {
5273 { /* Inline flat#FlatStringByteReverseIterator#target_items (self) on <self:FlatStringByteReverseIterator> */
5274 var3 = self->attrs[COLOR_core__flat__FlatStringByteReverseIterator___target_items].str; /* _target_items on <self:FlatStringByteReverseIterator> */
5275 var1 = var3;
5276 RET_LABEL2:(void)0;
5277 }
5278 }
5279 {
5280 { /* Inline flat#FlatStringByteReverseIterator#curr_pos (self) on <self:FlatStringByteReverseIterator> */
5281 var6 = self->attrs[COLOR_core__flat__FlatStringByteReverseIterator___curr_pos].l; /* _curr_pos on <self:FlatStringByteReverseIterator> */
5282 var4 = var6;
5283 RET_LABEL5:(void)0;
5284 }
5285 }
5286 {
5287 { /* Inline native#NativeString#[] (var1,var4) on <var1:NativeString> */
5288 var9 = (unsigned char)((int)var1[var4]);
5289 var7 = var9;
5290 goto RET_LABEL8;
5291 RET_LABEL8:(void)0;
5292 }
5293 }
5294 var = var7;
5295 goto RET_LABEL;
5296 RET_LABEL:;
5297 return var;
5298 }
5299 /* method flat#FlatStringByteReverseIterator#item for (self: Iterator[nullable Object]): nullable Object */
5300 val* VIRTUAL_core__flat___core__flat__FlatStringByteReverseIterator___core__abstract_collection__Iterator__item(val* self) {
5301 val* var /* : nullable Object */;
5302 unsigned char var1 /* : Byte */;
5303 val* var2 /* : nullable Object */;
5304 var1 = core__flat___core__flat__FlatStringByteReverseIterator___core__abstract_collection__Iterator__item(self);
5305 var2 = BOX_core__Byte(var1); /* autobox from Byte to nullable Object */
5306 var = var2;
5307 RET_LABEL:;
5308 return var;
5309 }
5310 /* method flat#FlatStringByteReverseIterator#next for (self: FlatStringByteReverseIterator) */
5311 void core__flat___core__flat__FlatStringByteReverseIterator___core__abstract_collection__Iterator__next(val* self) {
5312 val* var_ /* var : FlatStringByteReverseIterator */;
5313 long var /* : Int */;
5314 long var2 /* : Int */;
5315 long var3 /* : Int */;
5316 short int var5 /* : Bool */;
5317 int cltype;
5318 int idtype;
5319 const char* var_class_name;
5320 long var6 /* : Int */;
5321 var_ = self;
5322 {
5323 { /* Inline flat#FlatStringByteReverseIterator#curr_pos (var_) on <var_:FlatStringByteReverseIterator> */
5324 var2 = var_->attrs[COLOR_core__flat__FlatStringByteReverseIterator___curr_pos].l; /* _curr_pos on <var_:FlatStringByteReverseIterator> */
5325 var = var2;
5326 RET_LABEL1:(void)0;
5327 }
5328 }
5329 {
5330 { /* Inline kernel#Int#- (var,1l) on <var:Int> */
5331 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5332 /* <1l:Int> isa OTHER */
5333 var5 = 1; /* easy <1l:Int> isa OTHER*/
5334 if (unlikely(!var5)) {
5335 var_class_name = type_core__Int.name;
5336 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5337 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
5338 fatal_exit(1);
5339 }
5340 var6 = var - 1l;
5341 var3 = var6;
5342 goto RET_LABEL4;
5343 RET_LABEL4:(void)0;
5344 }
5345 }
5346 {
5347 { /* Inline flat#FlatStringByteReverseIterator#curr_pos= (var_,var3) on <var_:FlatStringByteReverseIterator> */
5348 var_->attrs[COLOR_core__flat__FlatStringByteReverseIterator___curr_pos].l = var3; /* _curr_pos on <var_:FlatStringByteReverseIterator> */
5349 RET_LABEL7:(void)0;
5350 }
5351 }
5352 RET_LABEL:;
5353 }
5354 /* method flat#FlatStringByteReverseIterator#index for (self: FlatStringByteReverseIterator): Int */
5355 long core__flat___core__flat__FlatStringByteReverseIterator___core__abstract_collection__IndexedIterator__index(val* self) {
5356 long var /* : Int */;
5357 long var1 /* : Int */;
5358 long var3 /* : Int */;
5359 val* var4 /* : FlatString */;
5360 val* var6 /* : FlatString */;
5361 long var7 /* : Int */;
5362 long var8 /* : Int */;
5363 short int var10 /* : Bool */;
5364 int cltype;
5365 int idtype;
5366 const char* var_class_name;
5367 long var11 /* : Int */;
5368 {
5369 { /* Inline flat#FlatStringByteReverseIterator#curr_pos (self) on <self:FlatStringByteReverseIterator> */
5370 var3 = self->attrs[COLOR_core__flat__FlatStringByteReverseIterator___curr_pos].l; /* _curr_pos on <self:FlatStringByteReverseIterator> */
5371 var1 = var3;
5372 RET_LABEL2:(void)0;
5373 }
5374 }
5375 {
5376 { /* Inline flat#FlatStringByteReverseIterator#target (self) on <self:FlatStringByteReverseIterator> */
5377 var6 = self->attrs[COLOR_core__flat__FlatStringByteReverseIterator___target].val; /* _target on <self:FlatStringByteReverseIterator> */
5378 if (unlikely(var6 == NULL)) {
5379 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
5380 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 650);
5381 fatal_exit(1);
5382 }
5383 var4 = var6;
5384 RET_LABEL5:(void)0;
5385 }
5386 }
5387 var7 = var4->attrs[COLOR_core__flat__FlatString___first_byte].l; /* _first_byte on <var4:FlatString> */
5388 {
5389 { /* Inline kernel#Int#- (var1,var7) on <var1:Int> */
5390 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
5391 /* <var7:Int> isa OTHER */
5392 var10 = 1; /* easy <var7:Int> isa OTHER*/
5393 if (unlikely(!var10)) {
5394 var_class_name = type_core__Int.name;
5395 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5396 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
5397 fatal_exit(1);
5398 }
5399 var11 = var1 - var7;
5400 var8 = var11;
5401 goto RET_LABEL9;
5402 RET_LABEL9:(void)0;
5403 }
5404 }
5405 var = var8;
5406 goto RET_LABEL;
5407 RET_LABEL:;
5408 return var;
5409 }
5410 /* method flat#FlatStringByteIterator#target for (self: FlatStringByteIterator): FlatString */
5411 val* core__flat___core__flat__FlatStringByteIterator___target(val* self) {
5412 val* var /* : FlatString */;
5413 val* var1 /* : FlatString */;
5414 var1 = self->attrs[COLOR_core__flat__FlatStringByteIterator___target].val; /* _target on <self:FlatStringByteIterator> */
5415 if (unlikely(var1 == NULL)) {
5416 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
5417 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 676);
5418 fatal_exit(1);
5419 }
5420 var = var1;
5421 RET_LABEL:;
5422 return var;
5423 }
5424 /* method flat#FlatStringByteIterator#target= for (self: FlatStringByteIterator, FlatString) */
5425 void core__flat___core__flat__FlatStringByteIterator___target_61d(val* self, val* p0) {
5426 self->attrs[COLOR_core__flat__FlatStringByteIterator___target].val = p0; /* _target on <self:FlatStringByteIterator> */
5427 RET_LABEL:;
5428 }
5429 /* method flat#FlatStringByteIterator#target_items for (self: FlatStringByteIterator): NativeString */
5430 char* core__flat___core__flat__FlatStringByteIterator___target_items(val* self) {
5431 char* var /* : NativeString */;
5432 char* var1 /* : NativeString */;
5433 var1 = self->attrs[COLOR_core__flat__FlatStringByteIterator___target_items].str; /* _target_items on <self:FlatStringByteIterator> */
5434 var = var1;
5435 RET_LABEL:;
5436 return var;
5437 }
5438 /* method flat#FlatStringByteIterator#target_items= for (self: FlatStringByteIterator, NativeString) */
5439 void core__flat___core__flat__FlatStringByteIterator___target_items_61d(val* self, char* p0) {
5440 self->attrs[COLOR_core__flat__FlatStringByteIterator___target_items].str = p0; /* _target_items on <self:FlatStringByteIterator> */
5441 RET_LABEL:;
5442 }
5443 /* method flat#FlatStringByteIterator#curr_pos for (self: FlatStringByteIterator): Int */
5444 long core__flat___core__flat__FlatStringByteIterator___curr_pos(val* self) {
5445 long var /* : Int */;
5446 long var1 /* : Int */;
5447 var1 = self->attrs[COLOR_core__flat__FlatStringByteIterator___curr_pos].l; /* _curr_pos on <self:FlatStringByteIterator> */
5448 var = var1;
5449 RET_LABEL:;
5450 return var;
5451 }
5452 /* method flat#FlatStringByteIterator#curr_pos= for (self: FlatStringByteIterator, Int) */
5453 void core__flat___core__flat__FlatStringByteIterator___curr_pos_61d(val* self, long p0) {
5454 self->attrs[COLOR_core__flat__FlatStringByteIterator___curr_pos].l = p0; /* _curr_pos on <self:FlatStringByteIterator> */
5455 RET_LABEL:;
5456 }
5457 /* method flat#FlatStringByteIterator#init for (self: FlatStringByteIterator) */
5458 void core__flat___core__flat__FlatStringByteIterator___core__kernel__Object__init(val* self) {
5459 val* var /* : FlatString */;
5460 val* var2 /* : FlatString */;
5461 val* var_tgt /* var tgt: FlatString */;
5462 char* var3 /* : NativeString */;
5463 val* var_ /* var : FlatStringByteIterator */;
5464 long var5 /* : Int */;
5465 long var7 /* : Int */;
5466 long var8 /* : Int */;
5467 long var9 /* : Int */;
5468 short int var11 /* : Bool */;
5469 int cltype;
5470 int idtype;
5471 const char* var_class_name;
5472 long var12 /* : Int */;
5473 {
5474 ((void(*)(val* self))(self->class->vft[COLOR_core__flat___core__flat__FlatStringByteIterator___core__kernel__Object__init]))(self); /* init on <self:FlatStringByteIterator>*/
5475 }
5476 {
5477 { /* Inline flat#FlatStringByteIterator#target (self) on <self:FlatStringByteIterator> */
5478 var2 = self->attrs[COLOR_core__flat__FlatStringByteIterator___target].val; /* _target on <self:FlatStringByteIterator> */
5479 if (unlikely(var2 == NULL)) {
5480 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
5481 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 676);
5482 fatal_exit(1);
5483 }
5484 var = var2;
5485 RET_LABEL1:(void)0;
5486 }
5487 }
5488 var_tgt = var;
5489 var3 = var_tgt->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var_tgt:FlatString> */
5490 {
5491 { /* Inline flat#FlatStringByteIterator#target_items= (self,var3) on <self:FlatStringByteIterator> */
5492 self->attrs[COLOR_core__flat__FlatStringByteIterator___target_items].str = var3; /* _target_items on <self:FlatStringByteIterator> */
5493 RET_LABEL4:(void)0;
5494 }
5495 }
5496 var_ = self;
5497 {
5498 { /* Inline flat#FlatStringByteIterator#curr_pos (var_) on <var_:FlatStringByteIterator> */
5499 var7 = var_->attrs[COLOR_core__flat__FlatStringByteIterator___curr_pos].l; /* _curr_pos on <var_:FlatStringByteIterator> */
5500 var5 = var7;
5501 RET_LABEL6:(void)0;
5502 }
5503 }
5504 var8 = var_tgt->attrs[COLOR_core__flat__FlatString___first_byte].l; /* _first_byte on <var_tgt:FlatString> */
5505 {
5506 { /* Inline kernel#Int#+ (var5,var8) on <var5:Int> */
5507 /* Covariant cast for argument 0 (i) <var8:Int> isa OTHER */
5508 /* <var8:Int> isa OTHER */
5509 var11 = 1; /* easy <var8:Int> isa OTHER*/
5510 if (unlikely(!var11)) {
5511 var_class_name = type_core__Int.name;
5512 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5513 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
5514 fatal_exit(1);
5515 }
5516 var12 = var5 + var8;
5517 var9 = var12;
5518 goto RET_LABEL10;
5519 RET_LABEL10:(void)0;
5520 }
5521 }
5522 {
5523 { /* Inline flat#FlatStringByteIterator#curr_pos= (var_,var9) on <var_:FlatStringByteIterator> */
5524 var_->attrs[COLOR_core__flat__FlatStringByteIterator___curr_pos].l = var9; /* _curr_pos on <var_:FlatStringByteIterator> */
5525 RET_LABEL13:(void)0;
5526 }
5527 }
5528 RET_LABEL:;
5529 }
5530 /* method flat#FlatStringByteIterator#is_ok for (self: FlatStringByteIterator): Bool */
5531 short int core__flat___core__flat__FlatStringByteIterator___core__abstract_collection__Iterator__is_ok(val* self) {
5532 short int var /* : Bool */;
5533 long var1 /* : Int */;
5534 long var3 /* : Int */;
5535 val* var4 /* : FlatString */;
5536 val* var6 /* : FlatString */;
5537 long var7 /* : Int */;
5538 short int var8 /* : Bool */;
5539 short int var10 /* : Bool */;
5540 int cltype;
5541 int idtype;
5542 const char* var_class_name;
5543 short int var11 /* : Bool */;
5544 {
5545 { /* Inline flat#FlatStringByteIterator#curr_pos (self) on <self:FlatStringByteIterator> */
5546 var3 = self->attrs[COLOR_core__flat__FlatStringByteIterator___curr_pos].l; /* _curr_pos on <self:FlatStringByteIterator> */
5547 var1 = var3;
5548 RET_LABEL2:(void)0;
5549 }
5550 }
5551 {
5552 { /* Inline flat#FlatStringByteIterator#target (self) on <self:FlatStringByteIterator> */
5553 var6 = self->attrs[COLOR_core__flat__FlatStringByteIterator___target].val; /* _target on <self:FlatStringByteIterator> */
5554 if (unlikely(var6 == NULL)) {
5555 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
5556 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 676);
5557 fatal_exit(1);
5558 }
5559 var4 = var6;
5560 RET_LABEL5:(void)0;
5561 }
5562 }
5563 {
5564 var7 = core__flat___FlatText___last_byte(var4);
5565 }
5566 {
5567 { /* Inline kernel#Int#<= (var1,var7) on <var1:Int> */
5568 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
5569 /* <var7:Int> isa OTHER */
5570 var10 = 1; /* easy <var7:Int> isa OTHER*/
5571 if (unlikely(!var10)) {
5572 var_class_name = type_core__Int.name;
5573 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5574 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
5575 fatal_exit(1);
5576 }
5577 var11 = var1 <= var7;
5578 var8 = var11;
5579 goto RET_LABEL9;
5580 RET_LABEL9:(void)0;
5581 }
5582 }
5583 var = var8;
5584 goto RET_LABEL;
5585 RET_LABEL:;
5586 return var;
5587 }
5588 /* method flat#FlatStringByteIterator#item for (self: FlatStringByteIterator): Byte */
5589 unsigned char core__flat___core__flat__FlatStringByteIterator___core__abstract_collection__Iterator__item(val* self) {
5590 unsigned char var /* : Byte */;
5591 char* var1 /* : NativeString */;
5592 char* var3 /* : NativeString */;
5593 long var4 /* : Int */;
5594 long var6 /* : Int */;
5595 unsigned char var7 /* : Byte */;
5596 unsigned char var9 /* : Byte */;
5597 {
5598 { /* Inline flat#FlatStringByteIterator#target_items (self) on <self:FlatStringByteIterator> */
5599 var3 = self->attrs[COLOR_core__flat__FlatStringByteIterator___target_items].str; /* _target_items on <self:FlatStringByteIterator> */
5600 var1 = var3;
5601 RET_LABEL2:(void)0;
5602 }
5603 }
5604 {
5605 { /* Inline flat#FlatStringByteIterator#curr_pos (self) on <self:FlatStringByteIterator> */
5606 var6 = self->attrs[COLOR_core__flat__FlatStringByteIterator___curr_pos].l; /* _curr_pos on <self:FlatStringByteIterator> */
5607 var4 = var6;
5608 RET_LABEL5:(void)0;
5609 }
5610 }
5611 {
5612 { /* Inline native#NativeString#[] (var1,var4) on <var1:NativeString> */
5613 var9 = (unsigned char)((int)var1[var4]);
5614 var7 = var9;
5615 goto RET_LABEL8;
5616 RET_LABEL8:(void)0;
5617 }
5618 }
5619 var = var7;
5620 goto RET_LABEL;
5621 RET_LABEL:;
5622 return var;
5623 }
5624 /* method flat#FlatStringByteIterator#item for (self: Iterator[nullable Object]): nullable Object */
5625 val* VIRTUAL_core__flat___core__flat__FlatStringByteIterator___core__abstract_collection__Iterator__item(val* self) {
5626 val* var /* : nullable Object */;
5627 unsigned char var1 /* : Byte */;
5628 val* var2 /* : nullable Object */;
5629 var1 = core__flat___core__flat__FlatStringByteIterator___core__abstract_collection__Iterator__item(self);
5630 var2 = BOX_core__Byte(var1); /* autobox from Byte to nullable Object */
5631 var = var2;
5632 RET_LABEL:;
5633 return var;
5634 }
5635 /* method flat#FlatStringByteIterator#next for (self: FlatStringByteIterator) */
5636 void core__flat___core__flat__FlatStringByteIterator___core__abstract_collection__Iterator__next(val* self) {
5637 val* var_ /* var : FlatStringByteIterator */;
5638 long var /* : Int */;
5639 long var2 /* : Int */;
5640 long var3 /* : Int */;
5641 short int var5 /* : Bool */;
5642 int cltype;
5643 int idtype;
5644 const char* var_class_name;
5645 long var6 /* : Int */;
5646 var_ = self;
5647 {
5648 { /* Inline flat#FlatStringByteIterator#curr_pos (var_) on <var_:FlatStringByteIterator> */
5649 var2 = var_->attrs[COLOR_core__flat__FlatStringByteIterator___curr_pos].l; /* _curr_pos on <var_:FlatStringByteIterator> */
5650 var = var2;
5651 RET_LABEL1:(void)0;
5652 }
5653 }
5654 {
5655 { /* Inline kernel#Int#+ (var,1l) on <var:Int> */
5656 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5657 /* <1l:Int> isa OTHER */
5658 var5 = 1; /* easy <1l:Int> isa OTHER*/
5659 if (unlikely(!var5)) {
5660 var_class_name = type_core__Int.name;
5661 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5662 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
5663 fatal_exit(1);
5664 }
5665 var6 = var + 1l;
5666 var3 = var6;
5667 goto RET_LABEL4;
5668 RET_LABEL4:(void)0;
5669 }
5670 }
5671 {
5672 { /* Inline flat#FlatStringByteIterator#curr_pos= (var_,var3) on <var_:FlatStringByteIterator> */
5673 var_->attrs[COLOR_core__flat__FlatStringByteIterator___curr_pos].l = var3; /* _curr_pos on <var_:FlatStringByteIterator> */
5674 RET_LABEL7:(void)0;
5675 }
5676 }
5677 RET_LABEL:;
5678 }
5679 /* method flat#FlatStringByteIterator#index for (self: FlatStringByteIterator): Int */
5680 long core__flat___core__flat__FlatStringByteIterator___core__abstract_collection__IndexedIterator__index(val* self) {
5681 long var /* : Int */;
5682 long var1 /* : Int */;
5683 long var3 /* : Int */;
5684 val* var4 /* : FlatString */;
5685 val* var6 /* : FlatString */;
5686 long var7 /* : Int */;
5687 long var8 /* : Int */;
5688 short int var10 /* : Bool */;
5689 int cltype;
5690 int idtype;
5691 const char* var_class_name;
5692 long var11 /* : Int */;
5693 {
5694 { /* Inline flat#FlatStringByteIterator#curr_pos (self) on <self:FlatStringByteIterator> */
5695 var3 = self->attrs[COLOR_core__flat__FlatStringByteIterator___curr_pos].l; /* _curr_pos on <self:FlatStringByteIterator> */
5696 var1 = var3;
5697 RET_LABEL2:(void)0;
5698 }
5699 }
5700 {
5701 { /* Inline flat#FlatStringByteIterator#target (self) on <self:FlatStringByteIterator> */
5702 var6 = self->attrs[COLOR_core__flat__FlatStringByteIterator___target].val; /* _target on <self:FlatStringByteIterator> */
5703 if (unlikely(var6 == NULL)) {
5704 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
5705 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 676);
5706 fatal_exit(1);
5707 }
5708 var4 = var6;
5709 RET_LABEL5:(void)0;
5710 }
5711 }
5712 var7 = var4->attrs[COLOR_core__flat__FlatString___first_byte].l; /* _first_byte on <var4:FlatString> */
5713 {
5714 { /* Inline kernel#Int#- (var1,var7) on <var1:Int> */
5715 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
5716 /* <var7:Int> isa OTHER */
5717 var10 = 1; /* easy <var7:Int> isa OTHER*/
5718 if (unlikely(!var10)) {
5719 var_class_name = type_core__Int.name;
5720 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5721 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
5722 fatal_exit(1);
5723 }
5724 var11 = var1 - var7;
5725 var8 = var11;
5726 goto RET_LABEL9;
5727 RET_LABEL9:(void)0;
5728 }
5729 }
5730 var = var8;
5731 goto RET_LABEL;
5732 RET_LABEL:;
5733 return var;
5734 }
5735 /* method flat#FlatStringByteView#[] for (self: FlatStringByteView, Int): Byte */
5736 unsigned char core__flat___core__flat__FlatStringByteView___core__abstract_collection__SequenceRead___91d_93d(val* self, long p0) {
5737 unsigned char var /* : Byte */;
5738 long var_index /* var index: Int */;
5739 val* var1 /* : Text */;
5740 val* var_target /* var target: FlatString */;
5741 short int var2 /* : Bool */;
5742 short int var3 /* : Bool */;
5743 short int var5 /* : Bool */;
5744 int cltype;
5745 int idtype;
5746 const char* var_class_name;
5747 short int var6 /* : Bool */;
5748 short int var_ /* var : Bool */;
5749 long var7 /* : Int */;
5750 short int var8 /* : Bool */;
5751 short int var10 /* : Bool */;
5752 int cltype11;
5753 int idtype12;
5754 const char* var_class_name13;
5755 short int var14 /* : Bool */;
5756 long var15 /* : Int */;
5757 long var16 /* : Int */;
5758 short int var18 /* : Bool */;
5759 int cltype19;
5760 int idtype20;
5761 const char* var_class_name21;
5762 long var22 /* : Int */;
5763 long var_ind /* var ind: Int */;
5764 char* var23 /* : NativeString */;
5765 unsigned char var24 /* : Byte */;
5766 unsigned char var26 /* : Byte */;
5767 var_index = p0;
5768 var1 = self->attrs[COLOR_core__abstract_text__StringByteView___target].val; /* _target on <self:FlatStringByteView> */
5769 if (unlikely(var1 == NULL)) {
5770 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
5771 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 708);
5772 fatal_exit(1);
5773 }
5774 var_target = var1;
5775 {
5776 { /* Inline kernel#Int#>= (var_index,0l) on <var_index:Int> */
5777 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
5778 /* <0l:Int> isa OTHER */
5779 var5 = 1; /* easy <0l:Int> isa OTHER*/
5780 if (unlikely(!var5)) {
5781 var_class_name = type_core__Int.name;
5782 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5783 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
5784 fatal_exit(1);
5785 }
5786 var6 = var_index >= 0l;
5787 var3 = var6;
5788 goto RET_LABEL4;
5789 RET_LABEL4:(void)0;
5790 }
5791 }
5792 var_ = var3;
5793 if (var3){
5794 var7 = var_target->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <var_target:FlatString> */
5795 {
5796 { /* Inline kernel#Int#< (var_index,var7) on <var_index:Int> */
5797 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
5798 /* <var7:Int> isa OTHER */
5799 var10 = 1; /* easy <var7:Int> isa OTHER*/
5800 if (unlikely(!var10)) {
5801 var_class_name13 = type_core__Int.name;
5802 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
5803 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
5804 fatal_exit(1);
5805 }
5806 var14 = var_index < var7;
5807 var8 = var14;
5808 goto RET_LABEL9;
5809 RET_LABEL9:(void)0;
5810 }
5811 }
5812 var2 = var8;
5813 } else {
5814 var2 = var_;
5815 }
5816 if (unlikely(!var2)) {
5817 PRINT_ERROR("Runtime error: %s", "Assert failed");
5818 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 709);
5819 fatal_exit(1);
5820 }
5821 var15 = var_target->attrs[COLOR_core__flat__FlatString___first_byte].l; /* _first_byte on <var_target:FlatString> */
5822 {
5823 { /* Inline kernel#Int#+ (var_index,var15) on <var_index:Int> */
5824 /* Covariant cast for argument 0 (i) <var15:Int> isa OTHER */
5825 /* <var15:Int> isa OTHER */
5826 var18 = 1; /* easy <var15:Int> isa OTHER*/
5827 if (unlikely(!var18)) {
5828 var_class_name21 = type_core__Int.name;
5829 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
5830 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
5831 fatal_exit(1);
5832 }
5833 var22 = var_index + var15;
5834 var16 = var22;
5835 goto RET_LABEL17;
5836 RET_LABEL17:(void)0;
5837 }
5838 }
5839 var_ind = var16;
5840 var23 = var_target->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var_target:FlatString> */
5841 {
5842 { /* Inline native#NativeString#[] (var23,var_ind) on <var23:NativeString> */
5843 var26 = (unsigned char)((int)var23[var_ind]);
5844 var24 = var26;
5845 goto RET_LABEL25;
5846 RET_LABEL25:(void)0;
5847 }
5848 }
5849 var = var24;
5850 goto RET_LABEL;
5851 RET_LABEL:;
5852 return var;
5853 }
5854 /* method flat#FlatStringByteView#[] for (self: SequenceRead[nullable Object], Int): nullable Object */
5855 val* VIRTUAL_core__flat___core__flat__FlatStringByteView___core__abstract_collection__SequenceRead___91d_93d(val* self, long p0) {
5856 val* var /* : nullable Object */;
5857 unsigned char var1 /* : Byte */;
5858 val* var2 /* : nullable Object */;
5859 var1 = core__flat___core__flat__FlatStringByteView___core__abstract_collection__SequenceRead___91d_93d(self, p0);
5860 var2 = BOX_core__Byte(var1); /* autobox from Byte to nullable Object */
5861 var = var2;
5862 RET_LABEL:;
5863 return var;
5864 }
5865 /* method flat#FlatStringByteView#iterator_from for (self: FlatStringByteView, Int): IndexedIterator[Byte] */
5866 val* core__flat___core__flat__FlatStringByteView___core__abstract_collection__SequenceRead__iterator_from(val* self, long p0) {
5867 val* var /* : IndexedIterator[Byte] */;
5868 long var_start /* var start: Int */;
5869 val* var1 /* : FlatStringByteIterator */;
5870 val* var2 /* : Text */;
5871 val* var4 /* : Text */;
5872 var_start = p0;
5873 var1 = NEW_core__flat__FlatStringByteIterator(&type_core__flat__FlatStringByteIterator);
5874 {
5875 { /* Inline abstract_text#StringByteView#target (self) on <self:FlatStringByteView> */
5876 var4 = self->attrs[COLOR_core__abstract_text__StringByteView___target].val; /* _target on <self:FlatStringByteView> */
5877 if (unlikely(var4 == NULL)) {
5878 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
5879 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1156);
5880 fatal_exit(1);
5881 }
5882 var2 = var4;
5883 RET_LABEL3:(void)0;
5884 }
5885 }
5886 {
5887 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_core__flat__FlatStringByteIterator__target_61d]))(var1, var2); /* target= on <var1:FlatStringByteIterator>*/
5888 }
5889 {
5890 ((void(*)(val* self, long p0))(var1->class->vft[COLOR_core__flat__FlatStringByteIterator__curr_pos_61d]))(var1, var_start); /* curr_pos= on <var1:FlatStringByteIterator>*/
5891 }
5892 {
5893 ((void(*)(val* self))(var1->class->vft[COLOR_core__kernel__Object__init]))(var1); /* init on <var1:FlatStringByteIterator>*/
5894 }
5895 var = var1;
5896 goto RET_LABEL;
5897 RET_LABEL:;
5898 return var;
5899 }
5900 /* method flat#FlatStringByteView#reverse_iterator_from for (self: FlatStringByteView, Int): IndexedIterator[Byte] */
5901 val* core__flat___core__flat__FlatStringByteView___core__abstract_collection__SequenceRead__reverse_iterator_from(val* self, long p0) {
5902 val* var /* : IndexedIterator[Byte] */;
5903 long var_start /* var start: Int */;
5904 val* var1 /* : FlatStringByteReverseIterator */;
5905 val* var2 /* : Text */;
5906 val* var4 /* : Text */;
5907 var_start = p0;
5908 var1 = NEW_core__flat__FlatStringByteReverseIterator(&type_core__flat__FlatStringByteReverseIterator);
5909 {
5910 { /* Inline abstract_text#StringByteView#target (self) on <self:FlatStringByteView> */
5911 var4 = self->attrs[COLOR_core__abstract_text__StringByteView___target].val; /* _target on <self:FlatStringByteView> */
5912 if (unlikely(var4 == NULL)) {
5913 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
5914 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1156);
5915 fatal_exit(1);
5916 }
5917 var2 = var4;
5918 RET_LABEL3:(void)0;
5919 }
5920 }
5921 {
5922 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_core__flat__FlatStringByteReverseIterator__target_61d]))(var1, var2); /* target= on <var1:FlatStringByteReverseIterator>*/
5923 }
5924 {
5925 ((void(*)(val* self, long p0))(var1->class->vft[COLOR_core__flat__FlatStringByteReverseIterator__curr_pos_61d]))(var1, var_start); /* curr_pos= on <var1:FlatStringByteReverseIterator>*/
5926 }
5927 {
5928 ((void(*)(val* self))(var1->class->vft[COLOR_core__kernel__Object__init]))(var1); /* init on <var1:FlatStringByteReverseIterator>*/
5929 }
5930 var = var1;
5931 goto RET_LABEL;
5932 RET_LABEL:;
5933 return var;
5934 }
5935 /* method flat#Buffer#new for (self: Buffer): Buffer */
5936 val* core__flat___Buffer___new(val* self) {
5937 val* var /* : Buffer */;
5938 val* var1 /* : FlatBuffer */;
5939 var1 = NEW_core__FlatBuffer(&type_core__FlatBuffer);
5940 {
5941 { /* Inline flat#FlatBuffer#init (var1) on <var1:FlatBuffer> */
5942 {
5943 ((void(*)(val* self))(var1->class->vft[COLOR_core___core__FlatBuffer___core__kernel__Object__init]))(var1); /* init on <var1:FlatBuffer>*/
5944 }
5945 RET_LABEL2:(void)0;
5946 }
5947 }
5948 var = var1;
5949 goto RET_LABEL;
5950 RET_LABEL:;
5951 return var;
5952 }
5953 /* method flat#Buffer#with_cap for (self: Buffer, Int): Buffer */
5954 val* core__flat___Buffer___with_cap(val* self, long p0) {
5955 val* var /* : Buffer */;
5956 long var_i /* var i: Int */;
5957 val* var1 /* : FlatBuffer */;
5958 var_i = p0;
5959 var1 = NEW_core__FlatBuffer(&type_core__FlatBuffer);
5960 {
5961 core___core__FlatBuffer___with_capacity(var1, var_i); /* Direct call flat#FlatBuffer#with_capacity on <var1:FlatBuffer>*/
5962 }
5963 var = var1;
5964 goto RET_LABEL;
5965 RET_LABEL:;
5966 return var;
5967 }
5968 /* method flat#FlatBuffer#chars for (self: FlatBuffer): Sequence[Char] */
5969 val* core___core__FlatBuffer___core__abstract_text__Text__chars(val* self) {
5970 val* var /* : Sequence[Char] */;
5971 short int var1 /* : Bool */;
5972 val* var2 /* : Sequence[Char] */;
5973 val* var3 /* : FlatBufferCharView */;
5974 var1 = self->attrs[COLOR_core__flat__FlatBuffer___chars].val != NULL; /* _chars on <self:FlatBuffer> */
5975 if(likely(var1)) {
5976 var2 = self->attrs[COLOR_core__flat__FlatBuffer___chars].val; /* _chars on <self:FlatBuffer> */
5977 if (unlikely(var2 == NULL)) {
5978 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
5979 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 731);
5980 fatal_exit(1);
5981 }
5982 } else {
5983 var3 = NEW_core__flat__FlatBufferCharView(&type_core__flat__FlatBufferCharView);
5984 {
5985 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_core__abstract_text__StringCharView__target_61d]))(var3, self); /* target= on <var3:FlatBufferCharView>*/
5986 }
5987 {
5988 ((void(*)(val* self))(var3->class->vft[COLOR_core__kernel__Object__init]))(var3); /* init on <var3:FlatBufferCharView>*/
5989 }
5990 self->attrs[COLOR_core__flat__FlatBuffer___chars].val = var3; /* _chars on <self:FlatBuffer> */
5991 var2 = var3;
5992 }
5993 var = var2;
5994 RET_LABEL:;
5995 return var;
5996 }
5997 /* method flat#FlatBuffer#bytes for (self: FlatBuffer): SequenceRead[Byte] */
5998 val* core___core__FlatBuffer___core__abstract_text__Text__bytes(val* self) {
5999 val* var /* : SequenceRead[Byte] */;
6000 short int var1 /* : Bool */;
6001 val* var2 /* : SequenceRead[Byte] */;
6002 val* var3 /* : FlatBufferByteView */;
6003 var1 = self->attrs[COLOR_core__flat__FlatBuffer___bytes].val != NULL; /* _bytes on <self:FlatBuffer> */
6004 if(likely(var1)) {
6005 var2 = self->attrs[COLOR_core__flat__FlatBuffer___bytes].val; /* _bytes on <self:FlatBuffer> */
6006 if (unlikely(var2 == NULL)) {
6007 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bytes");
6008 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 733);
6009 fatal_exit(1);
6010 }
6011 } else {
6012 var3 = NEW_core__flat__FlatBufferByteView(&type_core__flat__FlatBufferByteView);
6013 {
6014 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_core__abstract_text__StringByteView__target_61d]))(var3, self); /* target= on <var3:FlatBufferByteView>*/
6015 }
6016 {
6017 ((void(*)(val* self))(var3->class->vft[COLOR_core__kernel__Object__init]))(var3); /* init on <var3:FlatBufferByteView>*/
6018 }
6019 self->attrs[COLOR_core__flat__FlatBuffer___bytes].val = var3; /* _bytes on <self:FlatBuffer> */
6020 var2 = var3;
6021 }
6022 var = var2;
6023 RET_LABEL:;
6024 return var;
6025 }
6026 /* method flat#FlatBuffer#capacity for (self: FlatBuffer): Int */
6027 long core___core__FlatBuffer___capacity(val* self) {
6028 long var /* : Int */;
6029 long var1 /* : Int */;
6030 var1 = self->attrs[COLOR_core__flat__FlatBuffer___capacity].l; /* _capacity on <self:FlatBuffer> */
6031 var = var1;
6032 RET_LABEL:;
6033 return var;
6034 }
6035 /* method flat#FlatBuffer#capacity= for (self: FlatBuffer, Int) */
6036 void core___core__FlatBuffer___capacity_61d(val* self, long p0) {
6037 self->attrs[COLOR_core__flat__FlatBuffer___capacity].l = p0; /* _capacity on <self:FlatBuffer> */
6038 RET_LABEL:;
6039 }
6040 /* method flat#FlatBuffer#real_items for (self: FlatBuffer): NativeString */
6041 char* core___core__FlatBuffer___real_items(val* self) {
6042 char* var /* : NativeString */;
6043 char* var1 /* : NativeString */;
6044 var1 = self->attrs[COLOR_core__flat__FlatBuffer___real_items].str; /* _real_items on <self:FlatBuffer> */
6045 var = var1;
6046 RET_LABEL:;
6047 return var;
6048 }
6049 /* method flat#FlatBuffer#real_items= for (self: FlatBuffer, NativeString) */
6050 void core___core__FlatBuffer___real_items_61d(val* self, char* p0) {
6051 self->attrs[COLOR_core__flat__FlatBuffer___real_items].str = p0; /* _real_items on <self:FlatBuffer> */
6052 RET_LABEL:;
6053 }
6054 /* method flat#FlatBuffer#substrings for (self: FlatBuffer): Iterator[FlatText] */
6055 val* core___core__FlatBuffer___core__abstract_text__Text__substrings(val* self) {
6056 val* var /* : Iterator[FlatText] */;
6057 val* var1 /* : FlatSubstringsIter */;
6058 var1 = NEW_core__flat__FlatSubstringsIter(&type_core__flat__FlatSubstringsIter);
6059 {
6060 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_core__flat__FlatSubstringsIter__tgt_61d]))(var1, self); /* tgt= on <var1:FlatSubstringsIter>*/
6061 }
6062 {
6063 ((void(*)(val* self))(var1->class->vft[COLOR_core__kernel__Object__init]))(var1); /* init on <var1:FlatSubstringsIter>*/
6064 }
6065 var = var1;
6066 goto RET_LABEL;
6067 RET_LABEL:;
6068 return var;
6069 }
6070 /* method flat#FlatBuffer#reset for (self: FlatBuffer) */
6071 void core___core__FlatBuffer___reset(val* self) {
6072 char* var /* : NativeString */;
6073 long var1 /* : Int */;
6074 long var3 /* : Int */;
6075 char* var4 /* : NativeString */;
6076 char* var6 /* : NativeString */;
6077 char* var_nns /* var nns: NativeString */;
6078 long var7 /* : Int */;
6079 short int var8 /* : Bool */;
6080 short int var10 /* : Bool */;
6081 short int var11 /* : Bool */;
6082 char* var12 /* : NativeString */;
6083 long var13 /* : Int */;
6084 var = NULL/*special!*/;
6085 {
6086 { /* Inline flat#FlatBuffer#capacity (self) on <self:FlatBuffer> */
6087 var3 = self->attrs[COLOR_core__flat__FlatBuffer___capacity].l; /* _capacity on <self:FlatBuffer> */
6088 var1 = var3;
6089 RET_LABEL2:(void)0;
6090 }
6091 }
6092 {
6093 { /* Inline native#NativeString#new (var,var1) on <var:NativeString> */
6094 var6 = (char*)nit_alloc(var1);
6095 var4 = var6;
6096 goto RET_LABEL5;
6097 RET_LABEL5:(void)0;
6098 }
6099 }
6100 var_nns = var4;
6101 var7 = self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <self:FlatBuffer> */
6102 {
6103 { /* Inline kernel#Int#!= (var7,0l) on <var7:Int> */
6104 var10 = var7 == 0l;
6105 var11 = !var10;
6106 var8 = var11;
6107 goto RET_LABEL9;
6108 RET_LABEL9:(void)0;
6109 }
6110 }
6111 if (var8){
6112 var12 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatBuffer> */
6113 var13 = self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <self:FlatBuffer> */
6114 {
6115 { /* Inline native#NativeString#copy_to (var12,var_nns,var13,0l,0l) on <var12:NativeString> */
6116 memmove(var_nns+0l,var12+0l,var13);
6117 RET_LABEL14:(void)0;
6118 }
6119 }
6120 } else {
6121 }
6122 self->attrs[COLOR_core__abstract_text__FlatText___items].str = var_nns; /* _items on <self:FlatBuffer> */
6123 {
6124 { /* Inline abstract_text#Buffer#written= (self,0) on <self:FlatBuffer> */
6125 self->attrs[COLOR_core__abstract_text__Buffer___written].s = 0; /* _written on <self:FlatBuffer> */
6126 RET_LABEL15:(void)0;
6127 }
6128 }
6129 RET_LABEL:;
6130 }
6131 /* method flat#FlatBuffer#rshift_bytes for (self: FlatBuffer, Int, Int) */
6132 void core___core__FlatBuffer___rshift_bytes(val* self, long p0, long p1) {
6133 long var_from /* var from: Int */;
6134 long var_len /* var len: Int */;
6135 char* var /* : NativeString */;
6136 char* var_oit /* var oit: NativeString */;
6137 char* var1 /* : NativeString */;
6138 char* var_nit /* var nit: NativeString */;
6139 long var2 /* : Int */;
6140 long var_bt /* var bt: Int */;
6141 long var3 /* : Int */;
6142 short int var5 /* : Bool */;
6143 int cltype;
6144 int idtype;
6145 const char* var_class_name;
6146 long var6 /* : Int */;
6147 long var7 /* : Int */;
6148 long var9 /* : Int */;
6149 short int var10 /* : Bool */;
6150 short int var12 /* : Bool */;
6151 int cltype13;
6152 int idtype14;
6153 const char* var_class_name15;
6154 short int var16 /* : Bool */;
6155 long var17 /* : Int */;
6156 long var19 /* : Int */;
6157 long var20 /* : Int */;
6158 short int var22 /* : Bool */;
6159 int cltype23;
6160 int idtype24;
6161 const char* var_class_name25;
6162 long var26 /* : Int */;
6163 long var27 /* : Int */;
6164 short int var29 /* : Bool */;
6165 int cltype30;
6166 int idtype31;
6167 const char* var_class_name32;
6168 long var33 /* : Int */;
6169 char* var35 /* : NativeString */;
6170 long var36 /* : Int */;
6171 long var38 /* : Int */;
6172 char* var39 /* : NativeString */;
6173 char* var41 /* : NativeString */;
6174 long var43 /* : Int */;
6175 short int var45 /* : Bool */;
6176 int cltype46;
6177 int idtype47;
6178 const char* var_class_name48;
6179 long var49 /* : Int */;
6180 long var50 /* : Int */;
6181 short int var52 /* : Bool */;
6182 int cltype53;
6183 int idtype54;
6184 const char* var_class_name55;
6185 long var56 /* : Int */;
6186 var_from = p0;
6187 var_len = p1;
6188 var = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatBuffer> */
6189 var_oit = var;
6190 var1 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatBuffer> */
6191 var_nit = var1;
6192 var2 = self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <self:FlatBuffer> */
6193 var_bt = var2;
6194 {
6195 { /* Inline kernel#Int#+ (var_bt,var_len) on <var_bt:Int> */
6196 /* Covariant cast for argument 0 (i) <var_len:Int> isa OTHER */
6197 /* <var_len:Int> isa OTHER */
6198 var5 = 1; /* easy <var_len:Int> isa OTHER*/
6199 if (unlikely(!var5)) {
6200 var_class_name = type_core__Int.name;
6201 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6202 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
6203 fatal_exit(1);
6204 }
6205 var6 = var_bt + var_len;
6206 var3 = var6;
6207 goto RET_LABEL4;
6208 RET_LABEL4:(void)0;
6209 }
6210 }
6211 {
6212 { /* Inline flat#FlatBuffer#capacity (self) on <self:FlatBuffer> */
6213 var9 = self->attrs[COLOR_core__flat__FlatBuffer___capacity].l; /* _capacity on <self:FlatBuffer> */
6214 var7 = var9;
6215 RET_LABEL8:(void)0;
6216 }
6217 }
6218 {
6219 { /* Inline kernel#Int#> (var3,var7) on <var3:Int> */
6220 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
6221 /* <var7:Int> isa OTHER */
6222 var12 = 1; /* easy <var7:Int> isa OTHER*/
6223 if (unlikely(!var12)) {
6224 var_class_name15 = type_core__Int.name;
6225 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15);
6226 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
6227 fatal_exit(1);
6228 }
6229 var16 = var3 > var7;
6230 var10 = var16;
6231 goto RET_LABEL11;
6232 RET_LABEL11:(void)0;
6233 }
6234 }
6235 if (var10){
6236 {
6237 { /* Inline flat#FlatBuffer#capacity (self) on <self:FlatBuffer> */
6238 var19 = self->attrs[COLOR_core__flat__FlatBuffer___capacity].l; /* _capacity on <self:FlatBuffer> */
6239 var17 = var19;
6240 RET_LABEL18:(void)0;
6241 }
6242 }
6243 {
6244 { /* Inline kernel#Int#* (var17,2l) on <var17:Int> */
6245 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
6246 /* <2l:Int> isa OTHER */
6247 var22 = 1; /* easy <2l:Int> isa OTHER*/
6248 if (unlikely(!var22)) {
6249 var_class_name25 = type_core__Int.name;
6250 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25);
6251 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 735);
6252 fatal_exit(1);
6253 }
6254 var26 = var17 * 2l;
6255 var20 = var26;
6256 goto RET_LABEL21;
6257 RET_LABEL21:(void)0;
6258 }
6259 }
6260 {
6261 { /* Inline kernel#Int#+ (var20,2l) on <var20:Int> */
6262 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
6263 /* <2l:Int> isa OTHER */
6264 var29 = 1; /* easy <2l:Int> isa OTHER*/
6265 if (unlikely(!var29)) {
6266 var_class_name32 = type_core__Int.name;
6267 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32);
6268 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
6269 fatal_exit(1);
6270 }
6271 var33 = var20 + 2l;
6272 var27 = var33;
6273 goto RET_LABEL28;
6274 RET_LABEL28:(void)0;
6275 }
6276 }
6277 {
6278 { /* Inline flat#FlatBuffer#capacity= (self,var27) on <self:FlatBuffer> */
6279 self->attrs[COLOR_core__flat__FlatBuffer___capacity].l = var27; /* _capacity on <self:FlatBuffer> */
6280 RET_LABEL34:(void)0;
6281 }
6282 }
6283 var35 = NULL/*special!*/;
6284 {
6285 { /* Inline flat#FlatBuffer#capacity (self) on <self:FlatBuffer> */
6286 var38 = self->attrs[COLOR_core__flat__FlatBuffer___capacity].l; /* _capacity on <self:FlatBuffer> */
6287 var36 = var38;
6288 RET_LABEL37:(void)0;
6289 }
6290 }
6291 {
6292 { /* Inline native#NativeString#new (var35,var36) on <var35:NativeString> */
6293 var41 = (char*)nit_alloc(var36);
6294 var39 = var41;
6295 goto RET_LABEL40;
6296 RET_LABEL40:(void)0;
6297 }
6298 }
6299 var_nit = var39;
6300 {
6301 { /* Inline native#NativeString#copy_to (var_oit,var_nit,0l,0l,var_from) on <var_oit:NativeString> */
6302 memmove(var_nit+var_from,var_oit+0l,0l);
6303 RET_LABEL42:(void)0;
6304 }
6305 }
6306 } else {
6307 }
6308 {
6309 { /* Inline kernel#Int#- (var_bt,var_from) on <var_bt:Int> */
6310 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
6311 /* <var_from:Int> isa OTHER */
6312 var45 = 1; /* easy <var_from:Int> isa OTHER*/
6313 if (unlikely(!var45)) {
6314 var_class_name48 = type_core__Int.name;
6315 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48);
6316 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
6317 fatal_exit(1);
6318 }
6319 var49 = var_bt - var_from;
6320 var43 = var49;
6321 goto RET_LABEL44;
6322 RET_LABEL44:(void)0;
6323 }
6324 }
6325 {
6326 { /* Inline kernel#Int#+ (var_from,var_len) on <var_from:Int> */
6327 /* Covariant cast for argument 0 (i) <var_len:Int> isa OTHER */
6328 /* <var_len:Int> isa OTHER */
6329 var52 = 1; /* easy <var_len:Int> isa OTHER*/
6330 if (unlikely(!var52)) {
6331 var_class_name55 = type_core__Int.name;
6332 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name55);
6333 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
6334 fatal_exit(1);
6335 }
6336 var56 = var_from + var_len;
6337 var50 = var56;
6338 goto RET_LABEL51;
6339 RET_LABEL51:(void)0;
6340 }
6341 }
6342 {
6343 { /* Inline native#NativeString#copy_to (var_oit,var_nit,var43,var_from,var50) on <var_oit:NativeString> */
6344 memmove(var_nit+var50,var_oit+var_from,var43);
6345 RET_LABEL57:(void)0;
6346 }
6347 }
6348 RET_LABEL:;
6349 }
6350 /* method flat#FlatBuffer#lshift_bytes for (self: FlatBuffer, Int, Int) */
6351 void core___core__FlatBuffer___lshift_bytes(val* self, long p0, long p1) {
6352 long var_from /* var from: Int */;
6353 long var_len /* var len: Int */;
6354 char* var /* : NativeString */;
6355 char* var_it /* var it: NativeString */;
6356 long var1 /* : Int */;
6357 long var2 /* : Int */;
6358 short int var4 /* : Bool */;
6359 int cltype;
6360 int idtype;
6361 const char* var_class_name;
6362 long var5 /* : Int */;
6363 long var6 /* : Int */;
6364 short int var8 /* : Bool */;
6365 int cltype9;
6366 int idtype10;
6367 const char* var_class_name11;
6368 long var12 /* : Int */;
6369 var_from = p0;
6370 var_len = p1;
6371 var = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatBuffer> */
6372 var_it = var;
6373 var1 = self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <self:FlatBuffer> */
6374 {
6375 { /* Inline kernel#Int#- (var1,var_from) on <var1:Int> */
6376 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
6377 /* <var_from:Int> isa OTHER */
6378 var4 = 1; /* easy <var_from:Int> isa OTHER*/
6379 if (unlikely(!var4)) {
6380 var_class_name = type_core__Int.name;
6381 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6382 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
6383 fatal_exit(1);
6384 }
6385 var5 = var1 - var_from;
6386 var2 = var5;
6387 goto RET_LABEL3;
6388 RET_LABEL3:(void)0;
6389 }
6390 }
6391 {
6392 { /* Inline kernel#Int#- (var_from,var_len) on <var_from:Int> */
6393 /* Covariant cast for argument 0 (i) <var_len:Int> isa OTHER */
6394 /* <var_len:Int> isa OTHER */
6395 var8 = 1; /* easy <var_len:Int> isa OTHER*/
6396 if (unlikely(!var8)) {
6397 var_class_name11 = type_core__Int.name;
6398 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
6399 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
6400 fatal_exit(1);
6401 }
6402 var12 = var_from - var_len;
6403 var6 = var12;
6404 goto RET_LABEL7;
6405 RET_LABEL7:(void)0;
6406 }
6407 }
6408 {
6409 { /* Inline native#NativeString#copy_to (var_it,var_it,var2,var_from,var6) on <var_it:NativeString> */
6410 memmove(var_it+var6,var_it+var_from,var2);
6411 RET_LABEL13:(void)0;
6412 }
6413 }
6414 RET_LABEL:;
6415 }
6416 /* method flat#FlatBuffer#[]= for (self: FlatBuffer, Int, Char) */
6417 void core___core__FlatBuffer___core__abstract_text__Buffer___91d_93d_61d(val* self, long p0, uint32_t p1) {
6418 long var_index /* var index: Int */;
6419 uint32_t var_item /* var item: Char */;
6420 short int var /* : Bool */;
6421 short int var1 /* : Bool */;
6422 short int var3 /* : Bool */;
6423 int cltype;
6424 int idtype;
6425 const char* var_class_name;
6426 short int var4 /* : Bool */;
6427 short int var_ /* var : Bool */;
6428 long var5 /* : Int */;
6429 short int var6 /* : Bool */;
6430 short int var8 /* : Bool */;
6431 int cltype9;
6432 int idtype10;
6433 const char* var_class_name11;
6434 short int var12 /* : Bool */;
6435 short int var13 /* : Bool */;
6436 short int var15 /* : Bool */;
6437 long var17 /* : Int */;
6438 short int var18 /* : Bool */;
6439 short int var20 /* : Bool */;
6440 char* var21 /* : NativeString */;
6441 char* var_it /* var it: NativeString */;
6442 long var22 /* : Int */;
6443 long var_ip /* var ip: Int */;
6444 uint32_t var23 /* : Char */;
6445 uint32_t var_c /* var c: Char */;
6446 long var24 /* : Int */;
6447 long var_clen /* var clen: Int */;
6448 long var25 /* : Int */;
6449 long var_itemlen /* var itemlen: Int */;
6450 long var26 /* : Int */;
6451 short int var28 /* : Bool */;
6452 int cltype29;
6453 int idtype30;
6454 const char* var_class_name31;
6455 long var32 /* : Int */;
6456 long var_size_diff /* var size_diff: Int */;
6457 short int var33 /* : Bool */;
6458 short int var35 /* : Bool */;
6459 int cltype36;
6460 int idtype37;
6461 const char* var_class_name38;
6462 short int var39 /* : Bool */;
6463 long var40 /* : Int */;
6464 short int var42 /* : Bool */;
6465 int cltype43;
6466 int idtype44;
6467 const char* var_class_name45;
6468 long var46 /* : Int */;
6469 short int var47 /* : Bool */;
6470 short int var49 /* : Bool */;
6471 int cltype50;
6472 int idtype51;
6473 const char* var_class_name52;
6474 short int var53 /* : Bool */;
6475 long var54 /* : Int */;
6476 short int var56 /* : Bool */;
6477 int cltype57;
6478 int idtype58;
6479 const char* var_class_name59;
6480 long var60 /* : Int */;
6481 long var61 /* : Int */;
6482 long var63 /* : Int */;
6483 val* var_64 /* var : FlatBuffer */;
6484 long var65 /* : Int */;
6485 long var66 /* : Int */;
6486 short int var68 /* : Bool */;
6487 int cltype69;
6488 int idtype70;
6489 const char* var_class_name71;
6490 long var72 /* : Int */;
6491 var_index = p0;
6492 var_item = p1;
6493 {
6494 { /* Inline kernel#Int#>= (var_index,0l) on <var_index:Int> */
6495 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
6496 /* <0l:Int> isa OTHER */
6497 var3 = 1; /* easy <0l:Int> isa OTHER*/
6498 if (unlikely(!var3)) {
6499 var_class_name = type_core__Int.name;
6500 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6501 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
6502 fatal_exit(1);
6503 }
6504 var4 = var_index >= 0l;
6505 var1 = var4;
6506 goto RET_LABEL2;
6507 RET_LABEL2:(void)0;
6508 }
6509 }
6510 var_ = var1;
6511 if (var1){
6512 var5 = self->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <self:FlatBuffer> */
6513 {
6514 { /* Inline kernel#Int#<= (var_index,var5) on <var_index:Int> */
6515 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
6516 /* <var5:Int> isa OTHER */
6517 var8 = 1; /* easy <var5:Int> isa OTHER*/
6518 if (unlikely(!var8)) {
6519 var_class_name11 = type_core__Int.name;
6520 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
6521 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
6522 fatal_exit(1);
6523 }
6524 var12 = var_index <= var5;
6525 var6 = var12;
6526 goto RET_LABEL7;
6527 RET_LABEL7:(void)0;
6528 }
6529 }
6530 var = var6;
6531 } else {
6532 var = var_;
6533 }
6534 if (unlikely(!var)) {
6535 PRINT_ERROR("Runtime error: %s", "Assert failed");
6536 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 784);
6537 fatal_exit(1);
6538 }
6539 {
6540 { /* Inline abstract_text#Buffer#written (self) on <self:FlatBuffer> */
6541 var15 = self->attrs[COLOR_core__abstract_text__Buffer___written].s; /* _written on <self:FlatBuffer> */
6542 var13 = var15;
6543 RET_LABEL14:(void)0;
6544 }
6545 }
6546 if (var13){
6547 {
6548 core___core__FlatBuffer___reset(self); /* Direct call flat#FlatBuffer#reset on <self:FlatBuffer>*/
6549 }
6550 } else {
6551 }
6552 {
6553 { /* Inline abstract_text#Buffer#is_dirty= (self,1) on <self:FlatBuffer> */
6554 self->attrs[COLOR_core__abstract_text__Buffer___is_dirty].s = 1; /* _is_dirty on <self:FlatBuffer> */
6555 RET_LABEL16:(void)0;
6556 }
6557 }
6558 var17 = self->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <self:FlatBuffer> */
6559 {
6560 { /* Inline kernel#Int#== (var_index,var17) on <var_index:Int> */
6561 var20 = var_index == var17;
6562 var18 = var20;
6563 goto RET_LABEL19;
6564 RET_LABEL19:(void)0;
6565 }
6566 }
6567 if (var18){
6568 {
6569 core___core__FlatBuffer___core__abstract_text__Buffer__add(self, var_item); /* Direct call flat#FlatBuffer#add on <self:FlatBuffer>*/
6570 }
6571 goto RET_LABEL;
6572 } else {
6573 }
6574 var21 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatBuffer> */
6575 var_it = var21;
6576 {
6577 var22 = core___core__NativeString___char_to_byte_index(var_it, var_index);
6578 }
6579 var_ip = var22;
6580 {
6581 var23 = core___core__NativeString___char_at(var_it, var_ip);
6582 }
6583 var_c = var23;
6584 {
6585 var24 = core__abstract_text___Char___u8char_len(var_c);
6586 }
6587 var_clen = var24;
6588 {
6589 var25 = core__abstract_text___Char___u8char_len(var_item);
6590 }
6591 var_itemlen = var25;
6592 {
6593 { /* Inline kernel#Int#- (var_itemlen,var_clen) on <var_itemlen:Int> */
6594 /* Covariant cast for argument 0 (i) <var_clen:Int> isa OTHER */
6595 /* <var_clen:Int> isa OTHER */
6596 var28 = 1; /* easy <var_clen:Int> isa OTHER*/
6597 if (unlikely(!var28)) {
6598 var_class_name31 = type_core__Int.name;
6599 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31);
6600 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
6601 fatal_exit(1);
6602 }
6603 var32 = var_itemlen - var_clen;
6604 var26 = var32;
6605 goto RET_LABEL27;
6606 RET_LABEL27:(void)0;
6607 }
6608 }
6609 var_size_diff = var26;
6610 {
6611 { /* Inline kernel#Int#> (var_size_diff,0l) on <var_size_diff:Int> */
6612 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
6613 /* <0l:Int> isa OTHER */
6614 var35 = 1; /* easy <0l:Int> isa OTHER*/
6615 if (unlikely(!var35)) {
6616 var_class_name38 = type_core__Int.name;
6617 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name38);
6618 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
6619 fatal_exit(1);
6620 }
6621 var39 = var_size_diff > 0l;
6622 var33 = var39;
6623 goto RET_LABEL34;
6624 RET_LABEL34:(void)0;
6625 }
6626 }
6627 if (var33){
6628 {
6629 { /* Inline kernel#Int#+ (var_ip,var_clen) on <var_ip:Int> */
6630 /* Covariant cast for argument 0 (i) <var_clen:Int> isa OTHER */
6631 /* <var_clen:Int> isa OTHER */
6632 var42 = 1; /* easy <var_clen:Int> isa OTHER*/
6633 if (unlikely(!var42)) {
6634 var_class_name45 = type_core__Int.name;
6635 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name45);
6636 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
6637 fatal_exit(1);
6638 }
6639 var46 = var_ip + var_clen;
6640 var40 = var46;
6641 goto RET_LABEL41;
6642 RET_LABEL41:(void)0;
6643 }
6644 }
6645 {
6646 core___core__FlatBuffer___rshift_bytes(self, var40, var_size_diff); /* Direct call flat#FlatBuffer#rshift_bytes on <self:FlatBuffer>*/
6647 }
6648 } else {
6649 {
6650 { /* Inline kernel#Int#< (var_size_diff,0l) on <var_size_diff:Int> */
6651 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
6652 /* <0l:Int> isa OTHER */
6653 var49 = 1; /* easy <0l:Int> isa OTHER*/
6654 if (unlikely(!var49)) {
6655 var_class_name52 = type_core__Int.name;
6656 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name52);
6657 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
6658 fatal_exit(1);
6659 }
6660 var53 = var_size_diff < 0l;
6661 var47 = var53;
6662 goto RET_LABEL48;
6663 RET_LABEL48:(void)0;
6664 }
6665 }
6666 if (var47){
6667 {
6668 { /* Inline kernel#Int#+ (var_ip,var_clen) on <var_ip:Int> */
6669 /* Covariant cast for argument 0 (i) <var_clen:Int> isa OTHER */
6670 /* <var_clen:Int> isa OTHER */
6671 var56 = 1; /* easy <var_clen:Int> isa OTHER*/
6672 if (unlikely(!var56)) {
6673 var_class_name59 = type_core__Int.name;
6674 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name59);
6675 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
6676 fatal_exit(1);
6677 }
6678 var60 = var_ip + var_clen;
6679 var54 = var60;
6680 goto RET_LABEL55;
6681 RET_LABEL55:(void)0;
6682 }
6683 }
6684 {
6685 { /* Inline kernel#Int#unary - (var_size_diff) on <var_size_diff:Int> */
6686 var63 = -var_size_diff;
6687 var61 = var63;
6688 goto RET_LABEL62;
6689 RET_LABEL62:(void)0;
6690 }
6691 }
6692 {
6693 core___core__FlatBuffer___lshift_bytes(self, var54, var61); /* Direct call flat#FlatBuffer#lshift_bytes on <self:FlatBuffer>*/
6694 }
6695 } else {
6696 }
6697 }
6698 var_64 = self;
6699 var65 = var_64->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <var_64:FlatBuffer> */
6700 {
6701 { /* Inline kernel#Int#+ (var65,var_size_diff) on <var65:Int> */
6702 /* Covariant cast for argument 0 (i) <var_size_diff:Int> isa OTHER */
6703 /* <var_size_diff:Int> isa OTHER */
6704 var68 = 1; /* easy <var_size_diff:Int> isa OTHER*/
6705 if (unlikely(!var68)) {
6706 var_class_name71 = type_core__Int.name;
6707 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name71);
6708 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
6709 fatal_exit(1);
6710 }
6711 var72 = var65 + var_size_diff;
6712 var66 = var72;
6713 goto RET_LABEL67;
6714 RET_LABEL67:(void)0;
6715 }
6716 }
6717 var_64->attrs[COLOR_core__abstract_text__FlatText___bytelen].l = var66; /* _bytelen on <var_64:FlatBuffer> */
6718 {
6719 core__flat___NativeString___set_char_at(var_it, var_ip, var_item); /* Direct call flat#NativeString#set_char_at on <var_it:NativeString>*/
6720 }
6721 RET_LABEL:;
6722 }
6723 /* method flat#FlatBuffer#add for (self: FlatBuffer, Char) */
6724 void core___core__FlatBuffer___core__abstract_text__Buffer__add(val* self, uint32_t p0) {
6725 uint32_t var_c /* var c: Char */;
6726 short int var /* : Bool */;
6727 short int var2 /* : Bool */;
6728 long var4 /* : Int */;
6729 long var_clen /* var clen: Int */;
6730 long var5 /* : Int */;
6731 long var_bt /* var bt: Int */;
6732 long var6 /* : Int */;
6733 short int var8 /* : Bool */;
6734 int cltype;
6735 int idtype;
6736 const char* var_class_name;
6737 long var9 /* : Int */;
6738 char* var10 /* : NativeString */;
6739 val* var_ /* var : FlatBuffer */;
6740 long var11 /* : Int */;
6741 long var12 /* : Int */;
6742 short int var14 /* : Bool */;
6743 int cltype15;
6744 int idtype16;
6745 const char* var_class_name17;
6746 long var18 /* : Int */;
6747 val* var_19 /* var : FlatBuffer */;
6748 long var20 /* : Int */;
6749 long var21 /* : Int */;
6750 short int var23 /* : Bool */;
6751 int cltype24;
6752 int idtype25;
6753 const char* var_class_name26;
6754 long var27 /* : Int */;
6755 var_c = p0;
6756 {
6757 { /* Inline abstract_text#Buffer#written (self) on <self:FlatBuffer> */
6758 var2 = self->attrs[COLOR_core__abstract_text__Buffer___written].s; /* _written on <self:FlatBuffer> */
6759 var = var2;
6760 RET_LABEL1:(void)0;
6761 }
6762 }
6763 if (var){
6764 {
6765 core___core__FlatBuffer___reset(self); /* Direct call flat#FlatBuffer#reset on <self:FlatBuffer>*/
6766 }
6767 } else {
6768 }
6769 {
6770 { /* Inline abstract_text#Buffer#is_dirty= (self,1) on <self:FlatBuffer> */
6771 self->attrs[COLOR_core__abstract_text__Buffer___is_dirty].s = 1; /* _is_dirty on <self:FlatBuffer> */
6772 RET_LABEL3:(void)0;
6773 }
6774 }
6775 {
6776 var4 = core__abstract_text___Char___u8char_len(var_c);
6777 }
6778 var_clen = var4;
6779 var5 = self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <self:FlatBuffer> */
6780 var_bt = var5;
6781 {
6782 { /* Inline kernel#Int#+ (var_bt,var_clen) on <var_bt:Int> */
6783 /* Covariant cast for argument 0 (i) <var_clen:Int> isa OTHER */
6784 /* <var_clen:Int> isa OTHER */
6785 var8 = 1; /* easy <var_clen:Int> isa OTHER*/
6786 if (unlikely(!var8)) {
6787 var_class_name = type_core__Int.name;
6788 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6789 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
6790 fatal_exit(1);
6791 }
6792 var9 = var_bt + var_clen;
6793 var6 = var9;
6794 goto RET_LABEL7;
6795 RET_LABEL7:(void)0;
6796 }
6797 }
6798 {
6799 core___core__FlatBuffer___core__abstract_text__Buffer__enlarge(self, var6); /* Direct call flat#FlatBuffer#enlarge on <self:FlatBuffer>*/
6800 }
6801 var10 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatBuffer> */
6802 {
6803 core__flat___NativeString___set_char_at(var10, var_bt, var_c); /* Direct call flat#NativeString#set_char_at on <var10:NativeString>*/
6804 }
6805 var_ = self;
6806 var11 = var_->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <var_:FlatBuffer> */
6807 {
6808 { /* Inline kernel#Int#+ (var11,var_clen) on <var11:Int> */
6809 /* Covariant cast for argument 0 (i) <var_clen:Int> isa OTHER */
6810 /* <var_clen:Int> isa OTHER */
6811 var14 = 1; /* easy <var_clen:Int> isa OTHER*/
6812 if (unlikely(!var14)) {
6813 var_class_name17 = type_core__Int.name;
6814 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
6815 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
6816 fatal_exit(1);
6817 }
6818 var18 = var11 + var_clen;
6819 var12 = var18;
6820 goto RET_LABEL13;
6821 RET_LABEL13:(void)0;
6822 }
6823 }
6824 var_->attrs[COLOR_core__abstract_text__FlatText___bytelen].l = var12; /* _bytelen on <var_:FlatBuffer> */
6825 var_19 = self;
6826 var20 = var_19->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <var_19:FlatBuffer> */
6827 {
6828 { /* Inline kernel#Int#+ (var20,1l) on <var20:Int> */
6829 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
6830 /* <1l:Int> isa OTHER */
6831 var23 = 1; /* easy <1l:Int> isa OTHER*/
6832 if (unlikely(!var23)) {
6833 var_class_name26 = type_core__Int.name;
6834 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name26);
6835 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
6836 fatal_exit(1);
6837 }
6838 var27 = var20 + 1l;
6839 var21 = var27;
6840 goto RET_LABEL22;
6841 RET_LABEL22:(void)0;
6842 }
6843 }
6844 var_19->attrs[COLOR_core__abstract_text__FlatText___length].l = var21; /* _length on <var_19:FlatBuffer> */
6845 RET_LABEL:;
6846 }
6847 /* method flat#FlatBuffer#empty for (self: FlatBuffer): Buffer */
6848 val* core___core__FlatBuffer___core__abstract_text__Text__empty(val* self) {
6849 val* var /* : Buffer */;
6850 val* var1 /* : Buffer */;
6851 val* var2 /* : Buffer */;
6852 var1 = NEW_core__Buffer(&type_core__Buffer);
6853 {
6854 var2 = core__flat___Buffer___new(var1);
6855 }
6856 var = var2;
6857 goto RET_LABEL;
6858 RET_LABEL:;
6859 return var;
6860 }
6861 /* method flat#FlatBuffer#enlarge for (self: FlatBuffer, Int) */
6862 void core___core__FlatBuffer___core__abstract_text__Buffer__enlarge(val* self, long p0) {
6863 long var_cap /* var cap: Int */;
6864 long var /* : Int */;
6865 long var2 /* : Int */;
6866 long var_c /* var c: Int */;
6867 short int var3 /* : Bool */;
6868 short int var5 /* : Bool */;
6869 int cltype;
6870 int idtype;
6871 const char* var_class_name;
6872 short int var6 /* : Bool */;
6873 short int var7 /* : Bool */;
6874 short int var9 /* : Bool */;
6875 int cltype10;
6876 int idtype11;
6877 const char* var_class_name12;
6878 short int var13 /* : Bool */;
6879 long var14 /* : Int */;
6880 short int var16 /* : Bool */;
6881 int cltype17;
6882 int idtype18;
6883 const char* var_class_name19;
6884 long var20 /* : Int */;
6885 long var21 /* : Int */;
6886 short int var23 /* : Bool */;
6887 int cltype24;
6888 int idtype25;
6889 const char* var_class_name26;
6890 long var27 /* : Int */;
6891 long var29 /* : Int */;
6892 long var_bln /* var bln: Int */;
6893 char* var30 /* : NativeString */;
6894 long var31 /* : Int */;
6895 short int var33 /* : Bool */;
6896 int cltype34;
6897 int idtype35;
6898 const char* var_class_name36;
6899 long var37 /* : Int */;
6900 char* var38 /* : NativeString */;
6901 char* var40 /* : NativeString */;
6902 char* var_a /* var a: NativeString */;
6903 short int var41 /* : Bool */;
6904 short int var43 /* : Bool */;
6905 int cltype44;
6906 int idtype45;
6907 const char* var_class_name46;
6908 short int var47 /* : Bool */;
6909 char* var48 /* : NativeString */;
6910 char* var_it /* var it: NativeString */;
6911 short int var49 /* : Bool */;
6912 short int var51 /* : Bool */;
6913 int cltype52;
6914 int idtype53;
6915 const char* var_class_name54;
6916 short int var55 /* : Bool */;
6917 var_cap = p0;
6918 {
6919 { /* Inline flat#FlatBuffer#capacity (self) on <self:FlatBuffer> */
6920 var2 = self->attrs[COLOR_core__flat__FlatBuffer___capacity].l; /* _capacity on <self:FlatBuffer> */
6921 var = var2;
6922 RET_LABEL1:(void)0;
6923 }
6924 }
6925 var_c = var;
6926 {
6927 { /* Inline kernel#Int#<= (var_cap,var_c) on <var_cap:Int> */
6928 /* Covariant cast for argument 0 (i) <var_c:Int> isa OTHER */
6929 /* <var_c:Int> isa OTHER */
6930 var5 = 1; /* easy <var_c:Int> isa OTHER*/
6931 if (unlikely(!var5)) {
6932 var_class_name = type_core__Int.name;
6933 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6934 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
6935 fatal_exit(1);
6936 }
6937 var6 = var_cap <= var_c;
6938 var3 = var6;
6939 goto RET_LABEL4;
6940 RET_LABEL4:(void)0;
6941 }
6942 }
6943 if (var3){
6944 goto RET_LABEL;
6945 } else {
6946 }
6947 for(;;) {
6948 {
6949 { /* Inline kernel#Int#<= (var_c,var_cap) on <var_c:Int> */
6950 /* Covariant cast for argument 0 (i) <var_cap:Int> isa OTHER */
6951 /* <var_cap:Int> isa OTHER */
6952 var9 = 1; /* easy <var_cap:Int> isa OTHER*/
6953 if (unlikely(!var9)) {
6954 var_class_name12 = type_core__Int.name;
6955 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name12);
6956 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
6957 fatal_exit(1);
6958 }
6959 var13 = var_c <= var_cap;
6960 var7 = var13;
6961 goto RET_LABEL8;
6962 RET_LABEL8:(void)0;
6963 }
6964 }
6965 if (var7){
6966 {
6967 { /* Inline kernel#Int#* (var_c,2l) on <var_c:Int> */
6968 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
6969 /* <2l:Int> isa OTHER */
6970 var16 = 1; /* easy <2l:Int> isa OTHER*/
6971 if (unlikely(!var16)) {
6972 var_class_name19 = type_core__Int.name;
6973 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name19);
6974 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 735);
6975 fatal_exit(1);
6976 }
6977 var20 = var_c * 2l;
6978 var14 = var20;
6979 goto RET_LABEL15;
6980 RET_LABEL15:(void)0;
6981 }
6982 }
6983 {
6984 { /* Inline kernel#Int#+ (var14,2l) on <var14:Int> */
6985 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
6986 /* <2l:Int> isa OTHER */
6987 var23 = 1; /* easy <2l:Int> isa OTHER*/
6988 if (unlikely(!var23)) {
6989 var_class_name26 = type_core__Int.name;
6990 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name26);
6991 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
6992 fatal_exit(1);
6993 }
6994 var27 = var14 + 2l;
6995 var21 = var27;
6996 goto RET_LABEL22;
6997 RET_LABEL22:(void)0;
6998 }
6999 }
7000 var_c = var21;
7001 } else {
7002 goto BREAK_label;
7003 }
7004 }
7005 BREAK_label: (void)0;
7006 {
7007 { /* Inline abstract_text#Buffer#written= (self,0) on <self:FlatBuffer> */
7008 self->attrs[COLOR_core__abstract_text__Buffer___written].s = 0; /* _written on <self:FlatBuffer> */
7009 RET_LABEL28:(void)0;
7010 }
7011 }
7012 var29 = self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <self:FlatBuffer> */
7013 var_bln = var29;
7014 var30 = NULL/*special!*/;
7015 {
7016 { /* Inline kernel#Int#+ (var_c,1l) on <var_c:Int> */
7017 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
7018 /* <1l:Int> isa OTHER */
7019 var33 = 1; /* easy <1l:Int> isa OTHER*/
7020 if (unlikely(!var33)) {
7021 var_class_name36 = type_core__Int.name;
7022 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name36);
7023 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
7024 fatal_exit(1);
7025 }
7026 var37 = var_c + 1l;
7027 var31 = var37;
7028 goto RET_LABEL32;
7029 RET_LABEL32:(void)0;
7030 }
7031 }
7032 {
7033 { /* Inline native#NativeString#new (var30,var31) on <var30:NativeString> */
7034 var40 = (char*)nit_alloc(var31);
7035 var38 = var40;
7036 goto RET_LABEL39;
7037 RET_LABEL39:(void)0;
7038 }
7039 }
7040 var_a = var38;
7041 {
7042 { /* Inline kernel#Int#> (var_bln,0l) on <var_bln:Int> */
7043 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
7044 /* <0l:Int> isa OTHER */
7045 var43 = 1; /* easy <0l:Int> isa OTHER*/
7046 if (unlikely(!var43)) {
7047 var_class_name46 = type_core__Int.name;
7048 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name46);
7049 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
7050 fatal_exit(1);
7051 }
7052 var47 = var_bln > 0l;
7053 var41 = var47;
7054 goto RET_LABEL42;
7055 RET_LABEL42:(void)0;
7056 }
7057 }
7058 if (var41){
7059 var48 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatBuffer> */
7060 var_it = var48;
7061 {
7062 { /* Inline kernel#Int#> (var_bln,0l) on <var_bln:Int> */
7063 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
7064 /* <0l:Int> isa OTHER */
7065 var51 = 1; /* easy <0l:Int> isa OTHER*/
7066 if (unlikely(!var51)) {
7067 var_class_name54 = type_core__Int.name;
7068 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name54);
7069 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
7070 fatal_exit(1);
7071 }
7072 var55 = var_bln > 0l;
7073 var49 = var55;
7074 goto RET_LABEL50;
7075 RET_LABEL50:(void)0;
7076 }
7077 }
7078 if (var49){
7079 {
7080 { /* Inline native#NativeString#copy_to (var_it,var_a,var_bln,0l,0l) on <var_it:NativeString> */
7081 memmove(var_a+0l,var_it+0l,var_bln);
7082 RET_LABEL56:(void)0;
7083 }
7084 }
7085 } else {
7086 }
7087 } else {
7088 }
7089 self->attrs[COLOR_core__abstract_text__FlatText___items].str = var_a; /* _items on <self:FlatBuffer> */
7090 {
7091 { /* Inline flat#FlatBuffer#capacity= (self,var_c) on <self:FlatBuffer> */
7092 self->attrs[COLOR_core__flat__FlatBuffer___capacity].l = var_c; /* _capacity on <self:FlatBuffer> */
7093 RET_LABEL57:(void)0;
7094 }
7095 }
7096 RET_LABEL:;
7097 }
7098 /* method flat#FlatBuffer#to_s for (self: FlatBuffer): String */
7099 val* core___core__FlatBuffer___core__abstract_text__Object__to_s(val* self) {
7100 val* var /* : String */;
7101 long var2 /* : Int */;
7102 long var_bln /* var bln: Int */;
7103 short int var3 /* : Bool */;
7104 short int var5 /* : Bool */;
7105 char* var6 /* : NativeString */;
7106 char* var7 /* : NativeString */;
7107 char* var9 /* : NativeString */;
7108 val* var10 /* : FlatString */;
7109 char* var11 /* : NativeString */;
7110 long var12 /* : Int */;
7111 {
7112 { /* Inline abstract_text#Buffer#written= (self,1) on <self:FlatBuffer> */
7113 self->attrs[COLOR_core__abstract_text__Buffer___written].s = 1; /* _written on <self:FlatBuffer> */
7114 RET_LABEL1:(void)0;
7115 }
7116 }
7117 var2 = self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <self:FlatBuffer> */
7118 var_bln = var2;
7119 {
7120 { /* Inline kernel#Int#== (var_bln,0l) on <var_bln:Int> */
7121 var5 = var_bln == 0l;
7122 var3 = var5;
7123 goto RET_LABEL4;
7124 RET_LABEL4:(void)0;
7125 }
7126 }
7127 if (var3){
7128 var6 = NULL/*special!*/;
7129 {
7130 { /* Inline native#NativeString#new (var6,1l) on <var6:NativeString> */
7131 var9 = (char*)nit_alloc(1l);
7132 var7 = var9;
7133 goto RET_LABEL8;
7134 RET_LABEL8:(void)0;
7135 }
7136 }
7137 self->attrs[COLOR_core__abstract_text__FlatText___items].str = var7; /* _items on <self:FlatBuffer> */
7138 } else {
7139 }
7140 var10 = NEW_core__FlatString(&type_core__FlatString);
7141 var11 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatBuffer> */
7142 var12 = self->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <self:FlatBuffer> */
7143 {
7144 core___core__FlatString___full(var10, var11, var_bln, 0l, var12); /* Direct call flat#FlatString#full on <var10:FlatString>*/
7145 }
7146 var = var10;
7147 goto RET_LABEL;
7148 RET_LABEL:;
7149 return var;
7150 }
7151 /* method flat#FlatBuffer#to_cstring for (self: FlatBuffer): NativeString */
7152 char* core___core__FlatBuffer___core__abstract_text__Text__to_cstring(val* self) {
7153 char* var /* : NativeString */;
7154 short int var1 /* : Bool */;
7155 short int var3 /* : Bool */;
7156 long var4 /* : Int */;
7157 long var_bln /* var bln: Int */;
7158 char* var5 /* : NativeString */;
7159 long var6 /* : Int */;
7160 short int var8 /* : Bool */;
7161 int cltype;
7162 int idtype;
7163 const char* var_class_name;
7164 long var9 /* : Int */;
7165 char* var10 /* : NativeString */;
7166 char* var12 /* : NativeString */;
7167 char* var_new_native /* var new_native: NativeString */;
7168 long var14 /* : Int */;
7169 short int var15 /* : Bool */;
7170 short int var17 /* : Bool */;
7171 int cltype18;
7172 int idtype19;
7173 const char* var_class_name20;
7174 short int var21 /* : Bool */;
7175 char* var22 /* : NativeString */;
7176 char* var26 /* : NativeString */;
7177 char* var28 /* : NativeString */;
7178 {
7179 { /* Inline abstract_text#Buffer#is_dirty (self) on <self:FlatBuffer> */
7180 var3 = self->attrs[COLOR_core__abstract_text__Buffer___is_dirty].s; /* _is_dirty on <self:FlatBuffer> */
7181 var1 = var3;
7182 RET_LABEL2:(void)0;
7183 }
7184 }
7185 if (var1){
7186 var4 = self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <self:FlatBuffer> */
7187 var_bln = var4;
7188 var5 = NULL/*special!*/;
7189 {
7190 { /* Inline kernel#Int#+ (var_bln,1l) on <var_bln:Int> */
7191 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
7192 /* <1l:Int> isa OTHER */
7193 var8 = 1; /* easy <1l:Int> isa OTHER*/
7194 if (unlikely(!var8)) {
7195 var_class_name = type_core__Int.name;
7196 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
7197 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
7198 fatal_exit(1);
7199 }
7200 var9 = var_bln + 1l;
7201 var6 = var9;
7202 goto RET_LABEL7;
7203 RET_LABEL7:(void)0;
7204 }
7205 }
7206 {
7207 { /* Inline native#NativeString#new (var5,var6) on <var5:NativeString> */
7208 var12 = (char*)nit_alloc(var6);
7209 var10 = var12;
7210 goto RET_LABEL11;
7211 RET_LABEL11:(void)0;
7212 }
7213 }
7214 var_new_native = var10;
7215 {
7216 { /* Inline native#NativeString#[]= (var_new_native,var_bln,((unsigned char)0x00)) on <var_new_native:NativeString> */
7217 var_new_native[var_bln]=(unsigned char)((unsigned char)0x00);
7218 RET_LABEL13:(void)0;
7219 }
7220 }
7221 var14 = self->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <self:FlatBuffer> */
7222 {
7223 { /* Inline kernel#Int#> (var14,0l) on <var14:Int> */
7224 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
7225 /* <0l:Int> isa OTHER */
7226 var17 = 1; /* easy <0l:Int> isa OTHER*/
7227 if (unlikely(!var17)) {
7228 var_class_name20 = type_core__Int.name;
7229 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
7230 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
7231 fatal_exit(1);
7232 }
7233 var21 = var14 > 0l;
7234 var15 = var21;
7235 goto RET_LABEL16;
7236 RET_LABEL16:(void)0;
7237 }
7238 }
7239 if (var15){
7240 var22 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatBuffer> */
7241 {
7242 { /* Inline native#NativeString#copy_to (var22,var_new_native,var_bln,0l,0l) on <var22:NativeString> */
7243 memmove(var_new_native+0l,var22+0l,var_bln);
7244 RET_LABEL23:(void)0;
7245 }
7246 }
7247 } else {
7248 }
7249 {
7250 { /* Inline flat#FlatBuffer#real_items= (self,var_new_native) on <self:FlatBuffer> */
7251 self->attrs[COLOR_core__flat__FlatBuffer___real_items].str = var_new_native; /* _real_items on <self:FlatBuffer> */
7252 RET_LABEL24:(void)0;
7253 }
7254 }
7255 {
7256 { /* Inline abstract_text#Buffer#is_dirty= (self,0) on <self:FlatBuffer> */
7257 self->attrs[COLOR_core__abstract_text__Buffer___is_dirty].s = 0; /* _is_dirty on <self:FlatBuffer> */
7258 RET_LABEL25:(void)0;
7259 }
7260 }
7261 } else {
7262 }
7263 {
7264 { /* Inline flat#FlatBuffer#real_items (self) on <self:FlatBuffer> */
7265 var28 = self->attrs[COLOR_core__flat__FlatBuffer___real_items].str; /* _real_items on <self:FlatBuffer> */
7266 var26 = var28;
7267 RET_LABEL27:(void)0;
7268 }
7269 }
7270 var = var26;
7271 goto RET_LABEL;
7272 RET_LABEL:;
7273 return var;
7274 }
7275 /* method flat#FlatBuffer#init for (self: FlatBuffer) */
7276 void core___core__FlatBuffer___core__kernel__Object__init(val* self) {
7277 {
7278 ((void(*)(val* self))(self->class->vft[COLOR_core___core__FlatBuffer___core__kernel__Object__init]))(self); /* init on <self:FlatBuffer>*/
7279 }
7280 RET_LABEL:;
7281 }
7282 /* method flat#FlatBuffer#with_infos for (self: FlatBuffer, NativeString, Int, Int, Int) */
7283 void core___core__FlatBuffer___with_infos(val* self, char* p0, long p1, long p2, long p3) {
7284 char* var_items /* var items: NativeString */;
7285 long var_capacity /* var capacity: Int */;
7286 long var_bytelen /* var bytelen: Int */;
7287 long var_length /* var length: Int */;
7288 {
7289 { /* Inline flat#FlatBuffer#init (self) on <self:FlatBuffer> */
7290 {
7291 ((void(*)(val* self))(self->class->vft[COLOR_core___core__FlatBuffer___core__kernel__Object__init]))(self); /* init on <self:FlatBuffer>*/
7292 }
7293 RET_LABEL1:(void)0;
7294 }
7295 }
7296 var_items = p0;
7297 var_capacity = p1;
7298 var_bytelen = p2;
7299 var_length = p3;
7300 self->attrs[COLOR_core__abstract_text__FlatText___items].str = var_items; /* _items on <self:FlatBuffer> */
7301 {
7302 { /* Inline flat#FlatBuffer#capacity= (self,var_capacity) on <self:FlatBuffer> */
7303 self->attrs[COLOR_core__flat__FlatBuffer___capacity].l = var_capacity; /* _capacity on <self:FlatBuffer> */
7304 RET_LABEL2:(void)0;
7305 }
7306 }
7307 self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l = var_bytelen; /* _bytelen on <self:FlatBuffer> */
7308 self->attrs[COLOR_core__abstract_text__FlatText___length].l = var_length; /* _length on <self:FlatBuffer> */
7309 RET_LABEL:;
7310 }
7311 /* method flat#FlatBuffer#from for (self: FlatBuffer, Text) */
7312 void core___core__FlatBuffer___from(val* self, val* p0) {
7313 val* var_s /* var s: Text */;
7314 char* var /* : NativeString */;
7315 long var2 /* : Int */;
7316 char* var3 /* : NativeString */;
7317 char* var5 /* : NativeString */;
7318 short int var6 /* : Bool */;
7319 int cltype;
7320 int idtype;
7321 char* var7 /* : NativeString */;
7322 val* var8 /* : Iterator[FlatText] */;
7323 val* var_ /* var : Iterator[FlatText] */;
7324 val* var9 /* : Iterator[nullable Object] */;
7325 val* var_10 /* var : Iterator[FlatText] */;
7326 short int var11 /* : Bool */;
7327 val* var12 /* : nullable Object */;
7328 val* var_i /* var i: FlatText */;
7329 short int var13 /* : Bool */;
7330 int cltype14;
7331 int idtype15;
7332 const char* var_class_name;
7333 char* var16 /* : NativeString */;
7334 char* var17 /* : NativeString */;
7335 long var18 /* : Int */;
7336 long var20 /* : Int */;
7337 long var21 /* : Int */;
7338 long var22 /* : Int */;
7339 {
7340 { /* Inline flat#FlatBuffer#init (self) on <self:FlatBuffer> */
7341 {
7342 ((void(*)(val* self))(self->class->vft[COLOR_core___core__FlatBuffer___core__kernel__Object__init]))(self); /* init on <self:FlatBuffer>*/
7343 }
7344 RET_LABEL1:(void)0;
7345 }
7346 }
7347 var_s = p0;
7348 var = NULL/*special!*/;
7349 {
7350 var2 = ((long(*)(val* self))(var_s->class->vft[COLOR_core__abstract_text__Text__bytelen]))(var_s); /* bytelen on <var_s:Text>*/
7351 }
7352 {
7353 { /* Inline native#NativeString#new (var,var2) on <var:NativeString> */
7354 var5 = (char*)nit_alloc(var2);
7355 var3 = var5;
7356 goto RET_LABEL4;
7357 RET_LABEL4:(void)0;
7358 }
7359 }
7360 self->attrs[COLOR_core__abstract_text__FlatText___items].str = var3; /* _items on <self:FlatBuffer> */
7361 /* <var_s:Text> isa FlatText */
7362 cltype = type_core__FlatText.color;
7363 idtype = type_core__FlatText.id;
7364 if(cltype >= var_s->type->table_size) {
7365 var6 = 0;
7366 } else {
7367 var6 = var_s->type->type_table[cltype] == idtype;
7368 }
7369 if (var6){
7370 var7 = var_s->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var_s:Text(FlatText)> */
7371 self->attrs[COLOR_core__abstract_text__FlatText___items].str = var7; /* _items on <self:FlatBuffer> */
7372 } else {
7373 {
7374 var8 = core___core__FlatBuffer___core__abstract_text__Text__substrings(self);
7375 }
7376 var_ = var8;
7377 {
7378 var9 = ((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]>*/
7379 }
7380 var_10 = var9;
7381 for(;;) {
7382 {
7383 var11 = ((short int(*)(val* self))((((long)var_10&3)?class_info[((long)var_10&3)]:var_10->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_10); /* is_ok on <var_10:Iterator[FlatText]>*/
7384 }
7385 if (var11){
7386 } else {
7387 goto BREAK_label;
7388 }
7389 {
7390 var12 = ((val*(*)(val* self))((((long)var_10&3)?class_info[((long)var_10&3)]:var_10->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_10); /* item on <var_10:Iterator[FlatText]>*/
7391 }
7392 var_i = var12;
7393 /* <var_i:FlatText> isa FlatString */
7394 cltype14 = type_core__FlatString.color;
7395 idtype15 = type_core__FlatString.id;
7396 if(cltype14 >= var_i->type->table_size) {
7397 var13 = 0;
7398 } else {
7399 var13 = var_i->type->type_table[cltype14] == idtype15;
7400 }
7401 if (unlikely(!var13)) {
7402 var_class_name = var_i == NULL ? "null" : var_i->type->name;
7403 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "FlatString", var_class_name);
7404 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 891);
7405 fatal_exit(1);
7406 }
7407 var16 = var_i->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var_i:FlatText(FlatString)> */
7408 var17 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatBuffer> */
7409 var18 = var_i->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <var_i:FlatText> */
7410 {
7411 { /* Inline native#NativeString#copy_to (var16,var17,var18,0l,0l) on <var16:NativeString> */
7412 memmove(var17+0l,var16+0l,var18);
7413 RET_LABEL19:(void)0;
7414 }
7415 }
7416 {
7417 ((void(*)(val* self))((((long)var_10&3)?class_info[((long)var_10&3)]:var_10->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_10); /* next on <var_10:Iterator[FlatText]>*/
7418 }
7419 }
7420 BREAK_label: (void)0;
7421 {
7422 ((void(*)(val* self))((((long)var_10&3)?class_info[((long)var_10&3)]:var_10->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_10); /* finish on <var_10:Iterator[FlatText]>*/
7423 }
7424 }
7425 {
7426 var20 = ((long(*)(val* self))(var_s->class->vft[COLOR_core__abstract_text__Text__bytelen]))(var_s); /* bytelen on <var_s:Text>*/
7427 }
7428 self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l = var20; /* _bytelen on <self:FlatBuffer> */
7429 {
7430 var21 = ((long(*)(val* self))(var_s->class->vft[COLOR_core__abstract_text__Text__length]))(var_s); /* length on <var_s:Text>*/
7431 }
7432 self->attrs[COLOR_core__abstract_text__FlatText___length].l = var21; /* _length on <self:FlatBuffer> */
7433 var22 = self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <self:FlatBuffer> */
7434 self->attrs[COLOR_core__flat__FlatBuffer___capacity].l = var22; /* _capacity on <self:FlatBuffer> */
7435 {
7436 { /* Inline abstract_text#Buffer#written= (self,1) on <self:FlatBuffer> */
7437 self->attrs[COLOR_core__abstract_text__Buffer___written].s = 1; /* _written on <self:FlatBuffer> */
7438 RET_LABEL23:(void)0;
7439 }
7440 }
7441 RET_LABEL:;
7442 }
7443 /* method flat#FlatBuffer#with_capacity for (self: FlatBuffer, Int) */
7444 void core___core__FlatBuffer___with_capacity(val* self, long p0) {
7445 long var_cap /* var cap: Int */;
7446 short int var /* : Bool */;
7447 short int var3 /* : Bool */;
7448 int cltype;
7449 int idtype;
7450 const char* var_class_name;
7451 short int var4 /* : Bool */;
7452 char* var5 /* : NativeString */;
7453 long var6 /* : Int */;
7454 short int var8 /* : Bool */;
7455 int cltype9;
7456 int idtype10;
7457 const char* var_class_name11;
7458 long var12 /* : Int */;
7459 char* var13 /* : NativeString */;
7460 char* var15 /* : NativeString */;
7461 {
7462 { /* Inline flat#FlatBuffer#init (self) on <self:FlatBuffer> */
7463 {
7464 ((void(*)(val* self))(self->class->vft[COLOR_core___core__FlatBuffer___core__kernel__Object__init]))(self); /* init on <self:FlatBuffer>*/
7465 }
7466 RET_LABEL1:(void)0;
7467 }
7468 }
7469 var_cap = p0;
7470 {
7471 { /* Inline kernel#Int#>= (var_cap,0l) on <var_cap:Int> */
7472 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
7473 /* <0l:Int> isa OTHER */
7474 var3 = 1; /* easy <0l:Int> isa OTHER*/
7475 if (unlikely(!var3)) {
7476 var_class_name = type_core__Int.name;
7477 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
7478 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
7479 fatal_exit(1);
7480 }
7481 var4 = var_cap >= 0l;
7482 var = var4;
7483 goto RET_LABEL2;
7484 RET_LABEL2:(void)0;
7485 }
7486 }
7487 if (unlikely(!var)) {
7488 PRINT_ERROR("Runtime error: %s", "Assert failed");
7489 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 902);
7490 fatal_exit(1);
7491 }
7492 var5 = NULL/*special!*/;
7493 {
7494 { /* Inline kernel#Int#+ (var_cap,1l) on <var_cap:Int> */
7495 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
7496 /* <1l:Int> isa OTHER */
7497 var8 = 1; /* easy <1l:Int> isa OTHER*/
7498 if (unlikely(!var8)) {
7499 var_class_name11 = type_core__Int.name;
7500 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
7501 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
7502 fatal_exit(1);
7503 }
7504 var12 = var_cap + 1l;
7505 var6 = var12;
7506 goto RET_LABEL7;
7507 RET_LABEL7:(void)0;
7508 }
7509 }
7510 {
7511 { /* Inline native#NativeString#new (var5,var6) on <var5:NativeString> */
7512 var15 = (char*)nit_alloc(var6);
7513 var13 = var15;
7514 goto RET_LABEL14;
7515 RET_LABEL14:(void)0;
7516 }
7517 }
7518 self->attrs[COLOR_core__abstract_text__FlatText___items].str = var13; /* _items on <self:FlatBuffer> */
7519 {
7520 { /* Inline flat#FlatBuffer#capacity= (self,var_cap) on <self:FlatBuffer> */
7521 self->attrs[COLOR_core__flat__FlatBuffer___capacity].l = var_cap; /* _capacity on <self:FlatBuffer> */
7522 RET_LABEL16:(void)0;
7523 }
7524 }
7525 self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l = 0l; /* _bytelen on <self:FlatBuffer> */
7526 RET_LABEL:;
7527 }
7528 /* method flat#FlatBuffer#append for (self: FlatBuffer, Text) */
7529 void core___core__FlatBuffer___core__abstract_text__Buffer__append(val* self, val* p0) {
7530 val* var_s /* var s: Text */;
7531 short int var /* : Bool */;
7532 long var2 /* : Int */;
7533 long var_sl /* var sl: Int */;
7534 long var3 /* : Int */;
7535 long var4 /* : Int */;
7536 short int var6 /* : Bool */;
7537 int cltype;
7538 int idtype;
7539 const char* var_class_name;
7540 long var7 /* : Int */;
7541 long var_nln /* var nln: Int */;
7542 short int var8 /* : Bool */;
7543 int cltype9;
7544 int idtype10;
7545 char* var11 /* : NativeString */;
7546 char* var12 /* : NativeString */;
7547 long var13 /* : Int */;
7548 long var14 /* : Int */;
7549 val* var16 /* : Iterator[FlatText] */;
7550 val* var_ /* var : Iterator[FlatText] */;
7551 val* var17 /* : Iterator[nullable Object] */;
7552 val* var_18 /* var : Iterator[FlatText] */;
7553 short int var19 /* : Bool */;
7554 val* var20 /* : nullable Object */;
7555 val* var_i /* var i: FlatText */;
7556 val* var_21 /* var : FlatBuffer */;
7557 long var22 /* : Int */;
7558 long var23 /* : Int */;
7559 long var25 /* : Int */;
7560 long var26 /* : Int */;
7561 short int var28 /* : Bool */;
7562 int cltype29;
7563 int idtype30;
7564 const char* var_class_name31;
7565 long var32 /* : Int */;
7566 var_s = p0;
7567 {
7568 var = ((short int(*)(val* self))(var_s->class->vft[COLOR_core__abstract_text__Text__is_empty]))(var_s); /* is_empty on <var_s:Text>*/
7569 }
7570 if (var){
7571 goto RET_LABEL;
7572 } else {
7573 }
7574 {
7575 { /* Inline abstract_text#Buffer#is_dirty= (self,1) on <self:FlatBuffer> */
7576 self->attrs[COLOR_core__abstract_text__Buffer___is_dirty].s = 1; /* _is_dirty on <self:FlatBuffer> */
7577 RET_LABEL1:(void)0;
7578 }
7579 }
7580 {
7581 var2 = ((long(*)(val* self))(var_s->class->vft[COLOR_core__abstract_text__Text__bytelen]))(var_s); /* bytelen on <var_s:Text>*/
7582 }
7583 var_sl = var2;
7584 var3 = self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <self:FlatBuffer> */
7585 {
7586 { /* Inline kernel#Int#+ (var3,var_sl) on <var3:Int> */
7587 /* Covariant cast for argument 0 (i) <var_sl:Int> isa OTHER */
7588 /* <var_sl:Int> isa OTHER */
7589 var6 = 1; /* easy <var_sl:Int> isa OTHER*/
7590 if (unlikely(!var6)) {
7591 var_class_name = type_core__Int.name;
7592 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
7593 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
7594 fatal_exit(1);
7595 }
7596 var7 = var3 + var_sl;
7597 var4 = var7;
7598 goto RET_LABEL5;
7599 RET_LABEL5:(void)0;
7600 }
7601 }
7602 var_nln = var4;
7603 {
7604 core___core__FlatBuffer___core__abstract_text__Buffer__enlarge(self, var_nln); /* Direct call flat#FlatBuffer#enlarge on <self:FlatBuffer>*/
7605 }
7606 /* <var_s:Text> isa FlatText */
7607 cltype9 = type_core__FlatText.color;
7608 idtype10 = type_core__FlatText.id;
7609 if(cltype9 >= var_s->type->table_size) {
7610 var8 = 0;
7611 } else {
7612 var8 = var_s->type->type_table[cltype9] == idtype10;
7613 }
7614 if (var8){
7615 var11 = var_s->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var_s:Text(FlatText)> */
7616 var12 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatBuffer> */
7617 {
7618 var13 = ((long(*)(val* self))(var_s->class->vft[COLOR_core__flat__FlatText__first_byte]))(var_s); /* first_byte on <var_s:Text(FlatText)>*/
7619 }
7620 var14 = self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <self:FlatBuffer> */
7621 {
7622 { /* Inline native#NativeString#copy_to (var11,var12,var_sl,var13,var14) on <var11:NativeString> */
7623 memmove(var12+var14,var11+var13,var_sl);
7624 RET_LABEL15:(void)0;
7625 }
7626 }
7627 } else {
7628 {
7629 var16 = ((val*(*)(val* self))(var_s->class->vft[COLOR_core__abstract_text__Text__substrings]))(var_s); /* substrings on <var_s:Text>*/
7630 }
7631 var_ = var16;
7632 {
7633 var17 = ((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]>*/
7634 }
7635 var_18 = var17;
7636 for(;;) {
7637 {
7638 var19 = ((short int(*)(val* self))((((long)var_18&3)?class_info[((long)var_18&3)]:var_18->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_18); /* is_ok on <var_18:Iterator[FlatText]>*/
7639 }
7640 if (var19){
7641 } else {
7642 goto BREAK_label;
7643 }
7644 {
7645 var20 = ((val*(*)(val* self))((((long)var_18&3)?class_info[((long)var_18&3)]:var_18->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_18); /* item on <var_18:Iterator[FlatText]>*/
7646 }
7647 var_i = var20;
7648 {
7649 core___core__FlatBuffer___core__abstract_text__Buffer__append(self, var_i); /* Direct call flat#FlatBuffer#append on <self:FlatBuffer>*/
7650 }
7651 {
7652 ((void(*)(val* self))((((long)var_18&3)?class_info[((long)var_18&3)]:var_18->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_18); /* next on <var_18:Iterator[FlatText]>*/
7653 }
7654 }
7655 BREAK_label: (void)0;
7656 {
7657 ((void(*)(val* self))((((long)var_18&3)?class_info[((long)var_18&3)]:var_18->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_18); /* finish on <var_18:Iterator[FlatText]>*/
7658 }
7659 goto RET_LABEL;
7660 }
7661 self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l = var_nln; /* _bytelen on <self:FlatBuffer> */
7662 var_21 = self;
7663 var22 = var_21->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <var_21:FlatBuffer> */
7664 {
7665 { /* Inline abstract_text#FlatText#length (var_s) on <var_s:Text(FlatText)> */
7666 var25 = var_s->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <var_s:Text(FlatText)> */
7667 var23 = var25;
7668 RET_LABEL24:(void)0;
7669 }
7670 }
7671 {
7672 { /* Inline kernel#Int#+ (var22,var23) on <var22:Int> */
7673 /* Covariant cast for argument 0 (i) <var23:Int> isa OTHER */
7674 /* <var23:Int> isa OTHER */
7675 var28 = 1; /* easy <var23:Int> isa OTHER*/
7676 if (unlikely(!var28)) {
7677 var_class_name31 = type_core__Int.name;
7678 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31);
7679 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
7680 fatal_exit(1);
7681 }
7682 var32 = var22 + var23;
7683 var26 = var32;
7684 goto RET_LABEL27;
7685 RET_LABEL27:(void)0;
7686 }
7687 }
7688 var_21->attrs[COLOR_core__abstract_text__FlatText___length].l = var26; /* _length on <var_21:FlatBuffer> */
7689 RET_LABEL:;
7690 }
7691 /* method flat#FlatBuffer#substring for (self: FlatBuffer, Int, Int): Buffer */
7692 val* core___core__FlatBuffer___core__abstract_text__Text__substring(val* self, long p0, long p1) {
7693 val* var /* : Buffer */;
7694 long var_from /* var from: Int */;
7695 long var_count /* var count: Int */;
7696 short int var1 /* : Bool */;
7697 short int var3 /* : Bool */;
7698 int cltype;
7699 int idtype;
7700 const char* var_class_name;
7701 short int var4 /* : Bool */;
7702 short int var5 /* : Bool */;
7703 short int var7 /* : Bool */;
7704 int cltype8;
7705 int idtype9;
7706 const char* var_class_name10;
7707 short int var11 /* : Bool */;
7708 long var12 /* : Int */;
7709 short int var14 /* : Bool */;
7710 int cltype15;
7711 int idtype16;
7712 const char* var_class_name17;
7713 long var18 /* : Int */;
7714 long var19 /* : Int */;
7715 short int var20 /* : Bool */;
7716 short int var22 /* : Bool */;
7717 int cltype23;
7718 int idtype24;
7719 const char* var_class_name25;
7720 short int var26 /* : Bool */;
7721 long var27 /* : Int */;
7722 long var28 /* : Int */;
7723 short int var30 /* : Bool */;
7724 int cltype31;
7725 int idtype32;
7726 const char* var_class_name33;
7727 long var34 /* : Int */;
7728 short int var35 /* : Bool */;
7729 short int var37 /* : Bool */;
7730 int cltype38;
7731 int idtype39;
7732 const char* var_class_name40;
7733 short int var41 /* : Bool */;
7734 val* var42 /* : Buffer */;
7735 val* var43 /* : Buffer */;
7736 char* var44 /* : NativeString */;
7737 char* var_its /* var its: NativeString */;
7738 long var45 /* : Int */;
7739 long var_bytefrom /* var bytefrom: Int */;
7740 long var46 /* : Int */;
7741 short int var48 /* : Bool */;
7742 int cltype49;
7743 int idtype50;
7744 const char* var_class_name51;
7745 long var52 /* : Int */;
7746 long var53 /* : Int */;
7747 short int var55 /* : Bool */;
7748 int cltype56;
7749 int idtype57;
7750 const char* var_class_name58;
7751 long var59 /* : Int */;
7752 long var60 /* : Int */;
7753 long var_byteto /* var byteto: Int */;
7754 uint32_t var61 /* : Char */;
7755 long var62 /* : Int */;
7756 long var63 /* : Int */;
7757 short int var65 /* : Bool */;
7758 int cltype66;
7759 int idtype67;
7760 const char* var_class_name68;
7761 long var69 /* : Int */;
7762 long var70 /* : Int */;
7763 short int var72 /* : Bool */;
7764 int cltype73;
7765 int idtype74;
7766 const char* var_class_name75;
7767 long var76 /* : Int */;
7768 long var77 /* : Int */;
7769 short int var79 /* : Bool */;
7770 int cltype80;
7771 int idtype81;
7772 const char* var_class_name82;
7773 long var83 /* : Int */;
7774 long var84 /* : Int */;
7775 short int var86 /* : Bool */;
7776 int cltype87;
7777 int idtype88;
7778 const char* var_class_name89;
7779 long var90 /* : Int */;
7780 long var_byte_length /* var byte_length: Int */;
7781 char* var91 /* : NativeString */;
7782 char* var92 /* : NativeString */;
7783 char* var94 /* : NativeString */;
7784 char* var_r_items /* var r_items: NativeString */;
7785 val* var96 /* : FlatBuffer */;
7786 var_from = p0;
7787 var_count = p1;
7788 {
7789 { /* Inline kernel#Int#>= (var_count,0l) on <var_count:Int> */
7790 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
7791 /* <0l:Int> isa OTHER */
7792 var3 = 1; /* easy <0l:Int> isa OTHER*/
7793 if (unlikely(!var3)) {
7794 var_class_name = type_core__Int.name;
7795 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
7796 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
7797 fatal_exit(1);
7798 }
7799 var4 = var_count >= 0l;
7800 var1 = var4;
7801 goto RET_LABEL2;
7802 RET_LABEL2:(void)0;
7803 }
7804 }
7805 if (unlikely(!var1)) {
7806 PRINT_ERROR("Runtime error: %s", "Assert failed");
7807 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 937);
7808 fatal_exit(1);
7809 }
7810 {
7811 { /* Inline kernel#Int#< (var_from,0l) on <var_from:Int> */
7812 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
7813 /* <0l:Int> isa OTHER */
7814 var7 = 1; /* easy <0l:Int> isa OTHER*/
7815 if (unlikely(!var7)) {
7816 var_class_name10 = type_core__Int.name;
7817 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name10);
7818 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
7819 fatal_exit(1);
7820 }
7821 var11 = var_from < 0l;
7822 var5 = var11;
7823 goto RET_LABEL6;
7824 RET_LABEL6:(void)0;
7825 }
7826 }
7827 if (var5){
7828 var_from = 0l;
7829 } else {
7830 }
7831 {
7832 { /* Inline kernel#Int#+ (var_from,var_count) on <var_from:Int> */
7833 /* Covariant cast for argument 0 (i) <var_count:Int> isa OTHER */
7834 /* <var_count:Int> isa OTHER */
7835 var14 = 1; /* easy <var_count:Int> isa OTHER*/
7836 if (unlikely(!var14)) {
7837 var_class_name17 = type_core__Int.name;
7838 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
7839 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
7840 fatal_exit(1);
7841 }
7842 var18 = var_from + var_count;
7843 var12 = var18;
7844 goto RET_LABEL13;
7845 RET_LABEL13:(void)0;
7846 }
7847 }
7848 var19 = self->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <self:FlatBuffer> */
7849 {
7850 { /* Inline kernel#Int#> (var12,var19) on <var12:Int> */
7851 /* Covariant cast for argument 0 (i) <var19:Int> isa OTHER */
7852 /* <var19:Int> isa OTHER */
7853 var22 = 1; /* easy <var19:Int> isa OTHER*/
7854 if (unlikely(!var22)) {
7855 var_class_name25 = type_core__Int.name;
7856 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25);
7857 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
7858 fatal_exit(1);
7859 }
7860 var26 = var12 > var19;
7861 var20 = var26;
7862 goto RET_LABEL21;
7863 RET_LABEL21:(void)0;
7864 }
7865 }
7866 if (var20){
7867 var27 = self->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <self:FlatBuffer> */
7868 {
7869 { /* Inline kernel#Int#- (var27,var_from) on <var27:Int> */
7870 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
7871 /* <var_from:Int> isa OTHER */
7872 var30 = 1; /* easy <var_from:Int> isa OTHER*/
7873 if (unlikely(!var30)) {
7874 var_class_name33 = type_core__Int.name;
7875 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33);
7876 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
7877 fatal_exit(1);
7878 }
7879 var34 = var27 - var_from;
7880 var28 = var34;
7881 goto RET_LABEL29;
7882 RET_LABEL29:(void)0;
7883 }
7884 }
7885 var_count = var28;
7886 } else {
7887 }
7888 {
7889 { /* Inline kernel#Int#<= (var_count,0l) on <var_count:Int> */
7890 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
7891 /* <0l:Int> isa OTHER */
7892 var37 = 1; /* easy <0l:Int> isa OTHER*/
7893 if (unlikely(!var37)) {
7894 var_class_name40 = type_core__Int.name;
7895 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name40);
7896 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
7897 fatal_exit(1);
7898 }
7899 var41 = var_count <= 0l;
7900 var35 = var41;
7901 goto RET_LABEL36;
7902 RET_LABEL36:(void)0;
7903 }
7904 }
7905 if (var35){
7906 var42 = NEW_core__Buffer(&type_core__Buffer);
7907 {
7908 var43 = core__flat___Buffer___new(var42);
7909 }
7910 var = var43;
7911 goto RET_LABEL;
7912 } else {
7913 }
7914 var44 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatBuffer> */
7915 var_its = var44;
7916 {
7917 var45 = core___core__NativeString___char_to_byte_index(var_its, var_from);
7918 }
7919 var_bytefrom = var45;
7920 {
7921 { /* Inline kernel#Int#+ (var_count,var_from) on <var_count:Int> */
7922 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
7923 /* <var_from:Int> isa OTHER */
7924 var48 = 1; /* easy <var_from:Int> isa OTHER*/
7925 if (unlikely(!var48)) {
7926 var_class_name51 = type_core__Int.name;
7927 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name51);
7928 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
7929 fatal_exit(1);
7930 }
7931 var52 = var_count + var_from;
7932 var46 = var52;
7933 goto RET_LABEL47;
7934 RET_LABEL47:(void)0;
7935 }
7936 }
7937 {
7938 { /* Inline kernel#Int#- (var46,1l) on <var46:Int> */
7939 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
7940 /* <1l:Int> isa OTHER */
7941 var55 = 1; /* easy <1l:Int> isa OTHER*/
7942 if (unlikely(!var55)) {
7943 var_class_name58 = type_core__Int.name;
7944 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name58);
7945 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
7946 fatal_exit(1);
7947 }
7948 var59 = var46 - 1l;
7949 var53 = var59;
7950 goto RET_LABEL54;
7951 RET_LABEL54:(void)0;
7952 }
7953 }
7954 {
7955 var60 = core___core__NativeString___char_to_byte_index(var_its, var53);
7956 }
7957 var_byteto = var60;
7958 {
7959 var61 = core___core__NativeString___char_at(var_its, var_byteto);
7960 }
7961 {
7962 var62 = core__abstract_text___Char___u8char_len(var61);
7963 }
7964 {
7965 { /* Inline kernel#Int#- (var62,1l) on <var62:Int> */
7966 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
7967 /* <1l:Int> isa OTHER */
7968 var65 = 1; /* easy <1l:Int> isa OTHER*/
7969 if (unlikely(!var65)) {
7970 var_class_name68 = type_core__Int.name;
7971 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name68);
7972 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
7973 fatal_exit(1);
7974 }
7975 var69 = var62 - 1l;
7976 var63 = var69;
7977 goto RET_LABEL64;
7978 RET_LABEL64:(void)0;
7979 }
7980 }
7981 {
7982 { /* Inline kernel#Int#+ (var_byteto,var63) on <var_byteto:Int> */
7983 /* Covariant cast for argument 0 (i) <var63:Int> isa OTHER */
7984 /* <var63:Int> isa OTHER */
7985 var72 = 1; /* easy <var63:Int> isa OTHER*/
7986 if (unlikely(!var72)) {
7987 var_class_name75 = type_core__Int.name;
7988 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name75);
7989 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
7990 fatal_exit(1);
7991 }
7992 var76 = var_byteto + var63;
7993 var70 = var76;
7994 goto RET_LABEL71;
7995 RET_LABEL71:(void)0;
7996 }
7997 }
7998 var_byteto = var70;
7999 {
8000 { /* Inline kernel#Int#- (var_byteto,var_bytefrom) on <var_byteto:Int> */
8001 /* Covariant cast for argument 0 (i) <var_bytefrom:Int> isa OTHER */
8002 /* <var_bytefrom:Int> isa OTHER */
8003 var79 = 1; /* easy <var_bytefrom:Int> isa OTHER*/
8004 if (unlikely(!var79)) {
8005 var_class_name82 = type_core__Int.name;
8006 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name82);
8007 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
8008 fatal_exit(1);
8009 }
8010 var83 = var_byteto - var_bytefrom;
8011 var77 = var83;
8012 goto RET_LABEL78;
8013 RET_LABEL78:(void)0;
8014 }
8015 }
8016 {
8017 { /* Inline kernel#Int#+ (var77,1l) on <var77:Int> */
8018 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
8019 /* <1l:Int> isa OTHER */
8020 var86 = 1; /* easy <1l:Int> isa OTHER*/
8021 if (unlikely(!var86)) {
8022 var_class_name89 = type_core__Int.name;
8023 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name89);
8024 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
8025 fatal_exit(1);
8026 }
8027 var90 = var77 + 1l;
8028 var84 = var90;
8029 goto RET_LABEL85;
8030 RET_LABEL85:(void)0;
8031 }
8032 }
8033 var_byte_length = var84;
8034 var91 = NULL/*special!*/;
8035 {
8036 { /* Inline native#NativeString#new (var91,var_byte_length) on <var91:NativeString> */
8037 var94 = (char*)nit_alloc(var_byte_length);
8038 var92 = var94;
8039 goto RET_LABEL93;
8040 RET_LABEL93:(void)0;
8041 }
8042 }
8043 var_r_items = var92;
8044 {
8045 { /* Inline native#NativeString#copy_to (var_its,var_r_items,var_byte_length,var_bytefrom,0l) on <var_its:NativeString> */
8046 memmove(var_r_items+0l,var_its+var_bytefrom,var_byte_length);
8047 RET_LABEL95:(void)0;
8048 }
8049 }
8050 var96 = NEW_core__FlatBuffer(&type_core__FlatBuffer);
8051 {
8052 core___core__FlatBuffer___with_infos(var96, var_r_items, var_byte_length, var_byte_length, var_count); /* Direct call flat#FlatBuffer#with_infos on <var96:FlatBuffer>*/
8053 }
8054 var = var96;
8055 goto RET_LABEL;
8056 RET_LABEL:;
8057 return var;
8058 }
8059 /* method flat#FlatBufferByteReverseIterator#target for (self: FlatBufferByteReverseIterator): FlatBuffer */
8060 val* core__flat___core__flat__FlatBufferByteReverseIterator___target(val* self) {
8061 val* var /* : FlatBuffer */;
8062 val* var1 /* : FlatBuffer */;
8063 var1 = self->attrs[COLOR_core__flat__FlatBufferByteReverseIterator___target].val; /* _target on <self:FlatBufferByteReverseIterator> */
8064 if (unlikely(var1 == NULL)) {
8065 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
8066 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 984);
8067 fatal_exit(1);
8068 }
8069 var = var1;
8070 RET_LABEL:;
8071 return var;
8072 }
8073 /* method flat#FlatBufferByteReverseIterator#target= for (self: FlatBufferByteReverseIterator, FlatBuffer) */
8074 void core__flat___core__flat__FlatBufferByteReverseIterator___target_61d(val* self, val* p0) {
8075 self->attrs[COLOR_core__flat__FlatBufferByteReverseIterator___target].val = p0; /* _target on <self:FlatBufferByteReverseIterator> */
8076 RET_LABEL:;
8077 }
8078 /* method flat#FlatBufferByteReverseIterator#target_items for (self: FlatBufferByteReverseIterator): NativeString */
8079 char* core__flat___core__flat__FlatBufferByteReverseIterator___target_items(val* self) {
8080 char* var /* : NativeString */;
8081 char* var1 /* : NativeString */;
8082 var1 = self->attrs[COLOR_core__flat__FlatBufferByteReverseIterator___target_items].str; /* _target_items on <self:FlatBufferByteReverseIterator> */
8083 var = var1;
8084 RET_LABEL:;
8085 return var;
8086 }
8087 /* method flat#FlatBufferByteReverseIterator#target_items= for (self: FlatBufferByteReverseIterator, NativeString) */
8088 void core__flat___core__flat__FlatBufferByteReverseIterator___target_items_61d(val* self, char* p0) {
8089 self->attrs[COLOR_core__flat__FlatBufferByteReverseIterator___target_items].str = p0; /* _target_items on <self:FlatBufferByteReverseIterator> */
8090 RET_LABEL:;
8091 }
8092 /* method flat#FlatBufferByteReverseIterator#curr_pos for (self: FlatBufferByteReverseIterator): Int */
8093 long core__flat___core__flat__FlatBufferByteReverseIterator___curr_pos(val* self) {
8094 long var /* : Int */;
8095 long var1 /* : Int */;
8096 var1 = self->attrs[COLOR_core__flat__FlatBufferByteReverseIterator___curr_pos].l; /* _curr_pos on <self:FlatBufferByteReverseIterator> */
8097 var = var1;
8098 RET_LABEL:;
8099 return var;
8100 }
8101 /* method flat#FlatBufferByteReverseIterator#curr_pos= for (self: FlatBufferByteReverseIterator, Int) */
8102 void core__flat___core__flat__FlatBufferByteReverseIterator___curr_pos_61d(val* self, long p0) {
8103 self->attrs[COLOR_core__flat__FlatBufferByteReverseIterator___curr_pos].l = p0; /* _curr_pos on <self:FlatBufferByteReverseIterator> */
8104 RET_LABEL:;
8105 }
8106 /* method flat#FlatBufferByteReverseIterator#init for (self: FlatBufferByteReverseIterator) */
8107 void core__flat___core__flat__FlatBufferByteReverseIterator___core__kernel__Object__init(val* self) {
8108 val* var /* : FlatBuffer */;
8109 val* var2 /* : FlatBuffer */;
8110 char* var3 /* : NativeString */;
8111 {
8112 ((void(*)(val* self))(self->class->vft[COLOR_core__flat___core__flat__FlatBufferByteReverseIterator___core__kernel__Object__init]))(self); /* init on <self:FlatBufferByteReverseIterator>*/
8113 }
8114 {
8115 { /* Inline flat#FlatBufferByteReverseIterator#target (self) on <self:FlatBufferByteReverseIterator> */
8116 var2 = self->attrs[COLOR_core__flat__FlatBufferByteReverseIterator___target].val; /* _target on <self:FlatBufferByteReverseIterator> */
8117 if (unlikely(var2 == NULL)) {
8118 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
8119 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 984);
8120 fatal_exit(1);
8121 }
8122 var = var2;
8123 RET_LABEL1:(void)0;
8124 }
8125 }
8126 var3 = var->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var:FlatBuffer> */
8127 {
8128 { /* Inline flat#FlatBufferByteReverseIterator#target_items= (self,var3) on <self:FlatBufferByteReverseIterator> */
8129 self->attrs[COLOR_core__flat__FlatBufferByteReverseIterator___target_items].str = var3; /* _target_items on <self:FlatBufferByteReverseIterator> */
8130 RET_LABEL4:(void)0;
8131 }
8132 }
8133 RET_LABEL:;
8134 }
8135 /* method flat#FlatBufferByteReverseIterator#index for (self: FlatBufferByteReverseIterator): Int */
8136 long core__flat___core__flat__FlatBufferByteReverseIterator___core__abstract_collection__IndexedIterator__index(val* self) {
8137 long var /* : Int */;
8138 long var1 /* : Int */;
8139 long var3 /* : Int */;
8140 {
8141 { /* Inline flat#FlatBufferByteReverseIterator#curr_pos (self) on <self:FlatBufferByteReverseIterator> */
8142 var3 = self->attrs[COLOR_core__flat__FlatBufferByteReverseIterator___curr_pos].l; /* _curr_pos on <self:FlatBufferByteReverseIterator> */
8143 var1 = var3;
8144 RET_LABEL2:(void)0;
8145 }
8146 }
8147 var = var1;
8148 goto RET_LABEL;
8149 RET_LABEL:;
8150 return var;
8151 }
8152 /* method flat#FlatBufferByteReverseIterator#is_ok for (self: FlatBufferByteReverseIterator): Bool */
8153 short int core__flat___core__flat__FlatBufferByteReverseIterator___core__abstract_collection__Iterator__is_ok(val* self) {
8154 short int var /* : Bool */;
8155 long var1 /* : Int */;
8156 long var3 /* : Int */;
8157 short int var4 /* : Bool */;
8158 short int var6 /* : Bool */;
8159 int cltype;
8160 int idtype;
8161 const char* var_class_name;
8162 short int var7 /* : Bool */;
8163 {
8164 { /* Inline flat#FlatBufferByteReverseIterator#curr_pos (self) on <self:FlatBufferByteReverseIterator> */
8165 var3 = self->attrs[COLOR_core__flat__FlatBufferByteReverseIterator___curr_pos].l; /* _curr_pos on <self:FlatBufferByteReverseIterator> */
8166 var1 = var3;
8167 RET_LABEL2:(void)0;
8168 }
8169 }
8170 {
8171 { /* Inline kernel#Int#>= (var1,0l) on <var1:Int> */
8172 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
8173 /* <0l:Int> isa OTHER */
8174 var6 = 1; /* easy <0l:Int> isa OTHER*/
8175 if (unlikely(!var6)) {
8176 var_class_name = type_core__Int.name;
8177 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
8178 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
8179 fatal_exit(1);
8180 }
8181 var7 = var1 >= 0l;
8182 var4 = var7;
8183 goto RET_LABEL5;
8184 RET_LABEL5:(void)0;
8185 }
8186 }
8187 var = var4;
8188 goto RET_LABEL;
8189 RET_LABEL:;
8190 return var;
8191 }
8192 /* method flat#FlatBufferByteReverseIterator#item for (self: FlatBufferByteReverseIterator): Byte */
8193 unsigned char core__flat___core__flat__FlatBufferByteReverseIterator___core__abstract_collection__Iterator__item(val* self) {
8194 unsigned char var /* : Byte */;
8195 char* var1 /* : NativeString */;
8196 char* var3 /* : NativeString */;
8197 long var4 /* : Int */;
8198 long var6 /* : Int */;
8199 unsigned char var7 /* : Byte */;
8200 unsigned char var9 /* : Byte */;
8201 {
8202 { /* Inline flat#FlatBufferByteReverseIterator#target_items (self) on <self:FlatBufferByteReverseIterator> */
8203 var3 = self->attrs[COLOR_core__flat__FlatBufferByteReverseIterator___target_items].str; /* _target_items on <self:FlatBufferByteReverseIterator> */
8204 var1 = var3;
8205 RET_LABEL2:(void)0;
8206 }
8207 }
8208 {
8209 { /* Inline flat#FlatBufferByteReverseIterator#curr_pos (self) on <self:FlatBufferByteReverseIterator> */
8210 var6 = self->attrs[COLOR_core__flat__FlatBufferByteReverseIterator___curr_pos].l; /* _curr_pos on <self:FlatBufferByteReverseIterator> */
8211 var4 = var6;
8212 RET_LABEL5:(void)0;
8213 }
8214 }
8215 {
8216 { /* Inline native#NativeString#[] (var1,var4) on <var1:NativeString> */
8217 var9 = (unsigned char)((int)var1[var4]);
8218 var7 = var9;
8219 goto RET_LABEL8;
8220 RET_LABEL8:(void)0;
8221 }
8222 }
8223 var = var7;
8224 goto RET_LABEL;
8225 RET_LABEL:;
8226 return var;
8227 }
8228 /* method flat#FlatBufferByteReverseIterator#item for (self: Iterator[nullable Object]): nullable Object */
8229 val* VIRTUAL_core__flat___core__flat__FlatBufferByteReverseIterator___core__abstract_collection__Iterator__item(val* self) {
8230 val* var /* : nullable Object */;
8231 unsigned char var1 /* : Byte */;
8232 val* var2 /* : nullable Object */;
8233 var1 = core__flat___core__flat__FlatBufferByteReverseIterator___core__abstract_collection__Iterator__item(self);
8234 var2 = BOX_core__Byte(var1); /* autobox from Byte to nullable Object */
8235 var = var2;
8236 RET_LABEL:;
8237 return var;
8238 }
8239 /* method flat#FlatBufferByteReverseIterator#next for (self: FlatBufferByteReverseIterator) */
8240 void core__flat___core__flat__FlatBufferByteReverseIterator___core__abstract_collection__Iterator__next(val* self) {
8241 val* var_ /* var : FlatBufferByteReverseIterator */;
8242 long var /* : Int */;
8243 long var2 /* : Int */;
8244 long var3 /* : Int */;
8245 short int var5 /* : Bool */;
8246 int cltype;
8247 int idtype;
8248 const char* var_class_name;
8249 long var6 /* : Int */;
8250 var_ = self;
8251 {
8252 { /* Inline flat#FlatBufferByteReverseIterator#curr_pos (var_) on <var_:FlatBufferByteReverseIterator> */
8253 var2 = var_->attrs[COLOR_core__flat__FlatBufferByteReverseIterator___curr_pos].l; /* _curr_pos on <var_:FlatBufferByteReverseIterator> */
8254 var = var2;
8255 RET_LABEL1:(void)0;
8256 }
8257 }
8258 {
8259 { /* Inline kernel#Int#- (var,1l) on <var:Int> */
8260 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
8261 /* <1l:Int> isa OTHER */
8262 var5 = 1; /* easy <1l:Int> isa OTHER*/
8263 if (unlikely(!var5)) {
8264 var_class_name = type_core__Int.name;
8265 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
8266 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
8267 fatal_exit(1);
8268 }
8269 var6 = var - 1l;
8270 var3 = var6;
8271 goto RET_LABEL4;
8272 RET_LABEL4:(void)0;
8273 }
8274 }
8275 {
8276 { /* Inline flat#FlatBufferByteReverseIterator#curr_pos= (var_,var3) on <var_:FlatBufferByteReverseIterator> */
8277 var_->attrs[COLOR_core__flat__FlatBufferByteReverseIterator___curr_pos].l = var3; /* _curr_pos on <var_:FlatBufferByteReverseIterator> */
8278 RET_LABEL7:(void)0;
8279 }
8280 }
8281 RET_LABEL:;
8282 }
8283 /* method flat#FlatBufferByteView#[] for (self: FlatBufferByteView, Int): Byte */
8284 unsigned char core__flat___core__flat__FlatBufferByteView___core__abstract_collection__SequenceRead___91d_93d(val* self, long p0) {
8285 unsigned char var /* : Byte */;
8286 long var_index /* var index: Int */;
8287 val* var1 /* : Text */;
8288 val* var3 /* : Text */;
8289 char* var4 /* : NativeString */;
8290 unsigned char var5 /* : Byte */;
8291 unsigned char var7 /* : Byte */;
8292 var_index = p0;
8293 {
8294 { /* Inline abstract_text#StringByteView#target (self) on <self:FlatBufferByteView> */
8295 var3 = self->attrs[COLOR_core__abstract_text__StringByteView___target].val; /* _target on <self:FlatBufferByteView> */
8296 if (unlikely(var3 == NULL)) {
8297 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
8298 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1156);
8299 fatal_exit(1);
8300 }
8301 var1 = var3;
8302 RET_LABEL2:(void)0;
8303 }
8304 }
8305 var4 = var1->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var1:Text(FlatBuffer)> */
8306 {
8307 { /* Inline native#NativeString#[] (var4,var_index) on <var4:NativeString> */
8308 var7 = (unsigned char)((int)var4[var_index]);
8309 var5 = var7;
8310 goto RET_LABEL6;
8311 RET_LABEL6:(void)0;
8312 }
8313 }
8314 var = var5;
8315 goto RET_LABEL;
8316 RET_LABEL:;
8317 return var;
8318 }
8319 /* method flat#FlatBufferByteView#[] for (self: SequenceRead[nullable Object], Int): nullable Object */
8320 val* VIRTUAL_core__flat___core__flat__FlatBufferByteView___core__abstract_collection__SequenceRead___91d_93d(val* self, long p0) {
8321 val* var /* : nullable Object */;
8322 unsigned char var1 /* : Byte */;
8323 val* var2 /* : nullable Object */;
8324 var1 = core__flat___core__flat__FlatBufferByteView___core__abstract_collection__SequenceRead___91d_93d(self, p0);
8325 var2 = BOX_core__Byte(var1); /* autobox from Byte to nullable Object */
8326 var = var2;
8327 RET_LABEL:;
8328 return var;
8329 }
8330 /* method flat#FlatBufferByteView#iterator_from for (self: FlatBufferByteView, Int): IndexedIterator[Byte] */
8331 val* core__flat___core__flat__FlatBufferByteView___core__abstract_collection__SequenceRead__iterator_from(val* self, long p0) {
8332 val* var /* : IndexedIterator[Byte] */;
8333 long var_pos /* var pos: Int */;
8334 val* var1 /* : FlatBufferByteIterator */;
8335 val* var2 /* : Text */;
8336 val* var4 /* : Text */;
8337 var_pos = p0;
8338 var1 = NEW_core__flat__FlatBufferByteIterator(&type_core__flat__FlatBufferByteIterator);
8339 {
8340 { /* Inline abstract_text#StringByteView#target (self) on <self:FlatBufferByteView> */
8341 var4 = self->attrs[COLOR_core__abstract_text__StringByteView___target].val; /* _target on <self:FlatBufferByteView> */
8342 if (unlikely(var4 == NULL)) {
8343 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
8344 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1156);
8345 fatal_exit(1);
8346 }
8347 var2 = var4;
8348 RET_LABEL3:(void)0;
8349 }
8350 }
8351 {
8352 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_core__flat__FlatBufferByteIterator__target_61d]))(var1, var2); /* target= on <var1:FlatBufferByteIterator>*/
8353 }
8354 {
8355 ((void(*)(val* self, long p0))(var1->class->vft[COLOR_core__flat__FlatBufferByteIterator__curr_pos_61d]))(var1, var_pos); /* curr_pos= on <var1:FlatBufferByteIterator>*/
8356 }
8357 {
8358 ((void(*)(val* self))(var1->class->vft[COLOR_core__kernel__Object__init]))(var1); /* init on <var1:FlatBufferByteIterator>*/
8359 }
8360 var = var1;
8361 goto RET_LABEL;
8362 RET_LABEL:;
8363 return var;
8364 }
8365 /* method flat#FlatBufferByteView#reverse_iterator_from for (self: FlatBufferByteView, Int): IndexedIterator[Byte] */
8366 val* core__flat___core__flat__FlatBufferByteView___core__abstract_collection__SequenceRead__reverse_iterator_from(val* self, long p0) {
8367 val* var /* : IndexedIterator[Byte] */;
8368 long var_pos /* var pos: Int */;
8369 val* var1 /* : FlatBufferByteReverseIterator */;
8370 val* var2 /* : Text */;
8371 val* var4 /* : Text */;
8372 var_pos = p0;
8373 var1 = NEW_core__flat__FlatBufferByteReverseIterator(&type_core__flat__FlatBufferByteReverseIterator);
8374 {
8375 { /* Inline abstract_text#StringByteView#target (self) on <self:FlatBufferByteView> */
8376 var4 = self->attrs[COLOR_core__abstract_text__StringByteView___target].val; /* _target on <self:FlatBufferByteView> */
8377 if (unlikely(var4 == NULL)) {
8378 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
8379 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1156);
8380 fatal_exit(1);
8381 }
8382 var2 = var4;
8383 RET_LABEL3:(void)0;
8384 }
8385 }
8386 {
8387 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_core__flat__FlatBufferByteReverseIterator__target_61d]))(var1, var2); /* target= on <var1:FlatBufferByteReverseIterator>*/
8388 }
8389 {
8390 ((void(*)(val* self, long p0))(var1->class->vft[COLOR_core__flat__FlatBufferByteReverseIterator__curr_pos_61d]))(var1, var_pos); /* curr_pos= on <var1:FlatBufferByteReverseIterator>*/
8391 }
8392 {
8393 ((void(*)(val* self))(var1->class->vft[COLOR_core__kernel__Object__init]))(var1); /* init on <var1:FlatBufferByteReverseIterator>*/
8394 }
8395 var = var1;
8396 goto RET_LABEL;
8397 RET_LABEL:;
8398 return var;
8399 }
8400 /* method flat#FlatBufferByteIterator#target for (self: FlatBufferByteIterator): FlatBuffer */
8401 val* core__flat___core__flat__FlatBufferByteIterator___target(val* self) {
8402 val* var /* : FlatBuffer */;
8403 val* var1 /* : FlatBuffer */;
8404 var1 = self->attrs[COLOR_core__flat__FlatBufferByteIterator___target].val; /* _target on <self:FlatBufferByteIterator> */
8405 if (unlikely(var1 == NULL)) {
8406 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
8407 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 1018);
8408 fatal_exit(1);
8409 }
8410 var = var1;
8411 RET_LABEL:;
8412 return var;
8413 }
8414 /* method flat#FlatBufferByteIterator#target= for (self: FlatBufferByteIterator, FlatBuffer) */
8415 void core__flat___core__flat__FlatBufferByteIterator___target_61d(val* self, val* p0) {
8416 self->attrs[COLOR_core__flat__FlatBufferByteIterator___target].val = p0; /* _target on <self:FlatBufferByteIterator> */
8417 RET_LABEL:;
8418 }
8419 /* method flat#FlatBufferByteIterator#target_items for (self: FlatBufferByteIterator): NativeString */
8420 char* core__flat___core__flat__FlatBufferByteIterator___target_items(val* self) {
8421 char* var /* : NativeString */;
8422 char* var1 /* : NativeString */;
8423 var1 = self->attrs[COLOR_core__flat__FlatBufferByteIterator___target_items].str; /* _target_items on <self:FlatBufferByteIterator> */
8424 var = var1;
8425 RET_LABEL:;
8426 return var;
8427 }
8428 /* method flat#FlatBufferByteIterator#target_items= for (self: FlatBufferByteIterator, NativeString) */
8429 void core__flat___core__flat__FlatBufferByteIterator___target_items_61d(val* self, char* p0) {
8430 self->attrs[COLOR_core__flat__FlatBufferByteIterator___target_items].str = p0; /* _target_items on <self:FlatBufferByteIterator> */
8431 RET_LABEL:;
8432 }
8433 /* method flat#FlatBufferByteIterator#curr_pos for (self: FlatBufferByteIterator): Int */
8434 long core__flat___core__flat__FlatBufferByteIterator___curr_pos(val* self) {
8435 long var /* : Int */;
8436 long var1 /* : Int */;
8437 var1 = self->attrs[COLOR_core__flat__FlatBufferByteIterator___curr_pos].l; /* _curr_pos on <self:FlatBufferByteIterator> */
8438 var = var1;
8439 RET_LABEL:;
8440 return var;
8441 }
8442 /* method flat#FlatBufferByteIterator#curr_pos= for (self: FlatBufferByteIterator, Int) */
8443 void core__flat___core__flat__FlatBufferByteIterator___curr_pos_61d(val* self, long p0) {
8444 self->attrs[COLOR_core__flat__FlatBufferByteIterator___curr_pos].l = p0; /* _curr_pos on <self:FlatBufferByteIterator> */
8445 RET_LABEL:;
8446 }
8447 /* method flat#FlatBufferByteIterator#init for (self: FlatBufferByteIterator) */
8448 void core__flat___core__flat__FlatBufferByteIterator___core__kernel__Object__init(val* self) {
8449 val* var /* : FlatBuffer */;
8450 val* var2 /* : FlatBuffer */;
8451 char* var3 /* : NativeString */;
8452 {
8453 ((void(*)(val* self))(self->class->vft[COLOR_core__flat___core__flat__FlatBufferByteIterator___core__kernel__Object__init]))(self); /* init on <self:FlatBufferByteIterator>*/
8454 }
8455 {
8456 { /* Inline flat#FlatBufferByteIterator#target (self) on <self:FlatBufferByteIterator> */
8457 var2 = self->attrs[COLOR_core__flat__FlatBufferByteIterator___target].val; /* _target on <self:FlatBufferByteIterator> */
8458 if (unlikely(var2 == NULL)) {
8459 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
8460 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 1018);
8461 fatal_exit(1);
8462 }
8463 var = var2;
8464 RET_LABEL1:(void)0;
8465 }
8466 }
8467 var3 = var->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var:FlatBuffer> */
8468 {
8469 { /* Inline flat#FlatBufferByteIterator#target_items= (self,var3) on <self:FlatBufferByteIterator> */
8470 self->attrs[COLOR_core__flat__FlatBufferByteIterator___target_items].str = var3; /* _target_items on <self:FlatBufferByteIterator> */
8471 RET_LABEL4:(void)0;
8472 }
8473 }
8474 RET_LABEL:;
8475 }
8476 /* method flat#FlatBufferByteIterator#index for (self: FlatBufferByteIterator): Int */
8477 long core__flat___core__flat__FlatBufferByteIterator___core__abstract_collection__IndexedIterator__index(val* self) {
8478 long var /* : Int */;
8479 long var1 /* : Int */;
8480 long var3 /* : Int */;
8481 {
8482 { /* Inline flat#FlatBufferByteIterator#curr_pos (self) on <self:FlatBufferByteIterator> */
8483 var3 = self->attrs[COLOR_core__flat__FlatBufferByteIterator___curr_pos].l; /* _curr_pos on <self:FlatBufferByteIterator> */
8484 var1 = var3;
8485 RET_LABEL2:(void)0;
8486 }
8487 }
8488 var = var1;
8489 goto RET_LABEL;
8490 RET_LABEL:;
8491 return var;
8492 }
8493 /* method flat#FlatBufferByteIterator#is_ok for (self: FlatBufferByteIterator): Bool */
8494 short int core__flat___core__flat__FlatBufferByteIterator___core__abstract_collection__Iterator__is_ok(val* self) {
8495 short int var /* : Bool */;
8496 long var1 /* : Int */;
8497 long var3 /* : Int */;
8498 val* var4 /* : FlatBuffer */;
8499 val* var6 /* : FlatBuffer */;
8500 long var7 /* : Int */;
8501 short int var8 /* : Bool */;
8502 short int var10 /* : Bool */;
8503 int cltype;
8504 int idtype;
8505 const char* var_class_name;
8506 short int var11 /* : Bool */;
8507 {
8508 { /* Inline flat#FlatBufferByteIterator#curr_pos (self) on <self:FlatBufferByteIterator> */
8509 var3 = self->attrs[COLOR_core__flat__FlatBufferByteIterator___curr_pos].l; /* _curr_pos on <self:FlatBufferByteIterator> */
8510 var1 = var3;
8511 RET_LABEL2:(void)0;
8512 }
8513 }
8514 {
8515 { /* Inline flat#FlatBufferByteIterator#target (self) on <self:FlatBufferByteIterator> */
8516 var6 = self->attrs[COLOR_core__flat__FlatBufferByteIterator___target].val; /* _target on <self:FlatBufferByteIterator> */
8517 if (unlikely(var6 == NULL)) {
8518 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
8519 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 1018);
8520 fatal_exit(1);
8521 }
8522 var4 = var6;
8523 RET_LABEL5:(void)0;
8524 }
8525 }
8526 var7 = var4->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <var4:FlatBuffer> */
8527 {
8528 { /* Inline kernel#Int#< (var1,var7) on <var1:Int> */
8529 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
8530 /* <var7:Int> isa OTHER */
8531 var10 = 1; /* easy <var7:Int> isa OTHER*/
8532 if (unlikely(!var10)) {
8533 var_class_name = type_core__Int.name;
8534 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
8535 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
8536 fatal_exit(1);
8537 }
8538 var11 = var1 < var7;
8539 var8 = var11;
8540 goto RET_LABEL9;
8541 RET_LABEL9:(void)0;
8542 }
8543 }
8544 var = var8;
8545 goto RET_LABEL;
8546 RET_LABEL:;
8547 return var;
8548 }
8549 /* method flat#FlatBufferByteIterator#item for (self: FlatBufferByteIterator): Byte */
8550 unsigned char core__flat___core__flat__FlatBufferByteIterator___core__abstract_collection__Iterator__item(val* self) {
8551 unsigned char var /* : Byte */;
8552 char* var1 /* : NativeString */;
8553 char* var3 /* : NativeString */;
8554 long var4 /* : Int */;
8555 long var6 /* : Int */;
8556 unsigned char var7 /* : Byte */;
8557 unsigned char var9 /* : Byte */;
8558 {
8559 { /* Inline flat#FlatBufferByteIterator#target_items (self) on <self:FlatBufferByteIterator> */
8560 var3 = self->attrs[COLOR_core__flat__FlatBufferByteIterator___target_items].str; /* _target_items on <self:FlatBufferByteIterator> */
8561 var1 = var3;
8562 RET_LABEL2:(void)0;
8563 }
8564 }
8565 {
8566 { /* Inline flat#FlatBufferByteIterator#curr_pos (self) on <self:FlatBufferByteIterator> */
8567 var6 = self->attrs[COLOR_core__flat__FlatBufferByteIterator___curr_pos].l; /* _curr_pos on <self:FlatBufferByteIterator> */
8568 var4 = var6;
8569 RET_LABEL5:(void)0;
8570 }
8571 }
8572 {
8573 { /* Inline native#NativeString#[] (var1,var4) on <var1:NativeString> */
8574 var9 = (unsigned char)((int)var1[var4]);
8575 var7 = var9;
8576 goto RET_LABEL8;
8577 RET_LABEL8:(void)0;
8578 }
8579 }
8580 var = var7;
8581 goto RET_LABEL;
8582 RET_LABEL:;
8583 return var;
8584 }
8585 /* method flat#FlatBufferByteIterator#item for (self: Iterator[nullable Object]): nullable Object */
8586 val* VIRTUAL_core__flat___core__flat__FlatBufferByteIterator___core__abstract_collection__Iterator__item(val* self) {
8587 val* var /* : nullable Object */;
8588 unsigned char var1 /* : Byte */;
8589 val* var2 /* : nullable Object */;
8590 var1 = core__flat___core__flat__FlatBufferByteIterator___core__abstract_collection__Iterator__item(self);
8591 var2 = BOX_core__Byte(var1); /* autobox from Byte to nullable Object */
8592 var = var2;
8593 RET_LABEL:;
8594 return var;
8595 }
8596 /* method flat#FlatBufferByteIterator#next for (self: FlatBufferByteIterator) */
8597 void core__flat___core__flat__FlatBufferByteIterator___core__abstract_collection__Iterator__next(val* self) {
8598 val* var_ /* var : FlatBufferByteIterator */;
8599 long var /* : Int */;
8600 long var2 /* : Int */;
8601 long var3 /* : Int */;
8602 short int var5 /* : Bool */;
8603 int cltype;
8604 int idtype;
8605 const char* var_class_name;
8606 long var6 /* : Int */;
8607 var_ = self;
8608 {
8609 { /* Inline flat#FlatBufferByteIterator#curr_pos (var_) on <var_:FlatBufferByteIterator> */
8610 var2 = var_->attrs[COLOR_core__flat__FlatBufferByteIterator___curr_pos].l; /* _curr_pos on <var_:FlatBufferByteIterator> */
8611 var = var2;
8612 RET_LABEL1:(void)0;
8613 }
8614 }
8615 {
8616 { /* Inline kernel#Int#+ (var,1l) on <var:Int> */
8617 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
8618 /* <1l:Int> isa OTHER */
8619 var5 = 1; /* easy <1l:Int> isa OTHER*/
8620 if (unlikely(!var5)) {
8621 var_class_name = type_core__Int.name;
8622 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
8623 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
8624 fatal_exit(1);
8625 }
8626 var6 = var + 1l;
8627 var3 = var6;
8628 goto RET_LABEL4;
8629 RET_LABEL4:(void)0;
8630 }
8631 }
8632 {
8633 { /* Inline flat#FlatBufferByteIterator#curr_pos= (var_,var3) on <var_:FlatBufferByteIterator> */
8634 var_->attrs[COLOR_core__flat__FlatBufferByteIterator___curr_pos].l = var3; /* _curr_pos on <var_:FlatBufferByteIterator> */
8635 RET_LABEL7:(void)0;
8636 }
8637 }
8638 RET_LABEL:;
8639 }
8640 /* method flat#FlatBufferCharReverseIterator#target for (self: FlatBufferCharReverseIterator): FlatBuffer */
8641 val* core__flat___core__flat__FlatBufferCharReverseIterator___target(val* self) {
8642 val* var /* : FlatBuffer */;
8643 val* var1 /* : FlatBuffer */;
8644 var1 = self->attrs[COLOR_core__flat__FlatBufferCharReverseIterator___target].val; /* _target on <self:FlatBufferCharReverseIterator> */
8645 if (unlikely(var1 == NULL)) {
8646 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
8647 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 1039);
8648 fatal_exit(1);
8649 }
8650 var = var1;
8651 RET_LABEL:;
8652 return var;
8653 }
8654 /* method flat#FlatBufferCharReverseIterator#target= for (self: FlatBufferCharReverseIterator, FlatBuffer) */
8655 void core__flat___core__flat__FlatBufferCharReverseIterator___target_61d(val* self, val* p0) {
8656 self->attrs[COLOR_core__flat__FlatBufferCharReverseIterator___target].val = p0; /* _target on <self:FlatBufferCharReverseIterator> */
8657 RET_LABEL:;
8658 }
8659 /* method flat#FlatBufferCharReverseIterator#curr_pos for (self: FlatBufferCharReverseIterator): Int */
8660 long core__flat___core__flat__FlatBufferCharReverseIterator___curr_pos(val* self) {
8661 long var /* : Int */;
8662 long var1 /* : Int */;
8663 var1 = self->attrs[COLOR_core__flat__FlatBufferCharReverseIterator___curr_pos].l; /* _curr_pos on <self:FlatBufferCharReverseIterator> */
8664 var = var1;
8665 RET_LABEL:;
8666 return var;
8667 }
8668 /* method flat#FlatBufferCharReverseIterator#curr_pos= for (self: FlatBufferCharReverseIterator, Int) */
8669 void core__flat___core__flat__FlatBufferCharReverseIterator___curr_pos_61d(val* self, long p0) {
8670 self->attrs[COLOR_core__flat__FlatBufferCharReverseIterator___curr_pos].l = p0; /* _curr_pos on <self:FlatBufferCharReverseIterator> */
8671 RET_LABEL:;
8672 }
8673 /* method flat#FlatBufferCharReverseIterator#index for (self: FlatBufferCharReverseIterator): Int */
8674 long core__flat___core__flat__FlatBufferCharReverseIterator___core__abstract_collection__IndexedIterator__index(val* self) {
8675 long var /* : Int */;
8676 long var1 /* : Int */;
8677 long var3 /* : Int */;
8678 {
8679 { /* Inline flat#FlatBufferCharReverseIterator#curr_pos (self) on <self:FlatBufferCharReverseIterator> */
8680 var3 = self->attrs[COLOR_core__flat__FlatBufferCharReverseIterator___curr_pos].l; /* _curr_pos on <self:FlatBufferCharReverseIterator> */
8681 var1 = var3;
8682 RET_LABEL2:(void)0;
8683 }
8684 }
8685 var = var1;
8686 goto RET_LABEL;
8687 RET_LABEL:;
8688 return var;
8689 }
8690 /* method flat#FlatBufferCharReverseIterator#is_ok for (self: FlatBufferCharReverseIterator): Bool */
8691 short int core__flat___core__flat__FlatBufferCharReverseIterator___core__abstract_collection__Iterator__is_ok(val* self) {
8692 short int var /* : Bool */;
8693 long var1 /* : Int */;
8694 long var3 /* : Int */;
8695 short int var4 /* : Bool */;
8696 short int var6 /* : Bool */;
8697 int cltype;
8698 int idtype;
8699 const char* var_class_name;
8700 short int var7 /* : Bool */;
8701 {
8702 { /* Inline flat#FlatBufferCharReverseIterator#curr_pos (self) on <self:FlatBufferCharReverseIterator> */
8703 var3 = self->attrs[COLOR_core__flat__FlatBufferCharReverseIterator___curr_pos].l; /* _curr_pos on <self:FlatBufferCharReverseIterator> */
8704 var1 = var3;
8705 RET_LABEL2:(void)0;
8706 }
8707 }
8708 {
8709 { /* Inline kernel#Int#>= (var1,0l) on <var1:Int> */
8710 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
8711 /* <0l:Int> isa OTHER */
8712 var6 = 1; /* easy <0l:Int> isa OTHER*/
8713 if (unlikely(!var6)) {
8714 var_class_name = type_core__Int.name;
8715 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
8716 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
8717 fatal_exit(1);
8718 }
8719 var7 = var1 >= 0l;
8720 var4 = var7;
8721 goto RET_LABEL5;
8722 RET_LABEL5:(void)0;
8723 }
8724 }
8725 var = var4;
8726 goto RET_LABEL;
8727 RET_LABEL:;
8728 return var;
8729 }
8730 /* method flat#FlatBufferCharReverseIterator#item for (self: FlatBufferCharReverseIterator): Char */
8731 uint32_t core__flat___core__flat__FlatBufferCharReverseIterator___core__abstract_collection__Iterator__item(val* self) {
8732 uint32_t var /* : Char */;
8733 val* var1 /* : FlatBuffer */;
8734 val* var3 /* : FlatBuffer */;
8735 long var4 /* : Int */;
8736 long var6 /* : Int */;
8737 uint32_t var7 /* : Char */;
8738 {
8739 { /* Inline flat#FlatBufferCharReverseIterator#target (self) on <self:FlatBufferCharReverseIterator> */
8740 var3 = self->attrs[COLOR_core__flat__FlatBufferCharReverseIterator___target].val; /* _target on <self:FlatBufferCharReverseIterator> */
8741 if (unlikely(var3 == NULL)) {
8742 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
8743 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 1039);
8744 fatal_exit(1);
8745 }
8746 var1 = var3;
8747 RET_LABEL2:(void)0;
8748 }
8749 }
8750 {
8751 { /* Inline flat#FlatBufferCharReverseIterator#curr_pos (self) on <self:FlatBufferCharReverseIterator> */
8752 var6 = self->attrs[COLOR_core__flat__FlatBufferCharReverseIterator___curr_pos].l; /* _curr_pos on <self:FlatBufferCharReverseIterator> */
8753 var4 = var6;
8754 RET_LABEL5:(void)0;
8755 }
8756 }
8757 {
8758 var7 = core__flat___FlatText___core__abstract_text__Text___91d_93d(var1, var4);
8759 }
8760 var = var7;
8761 goto RET_LABEL;
8762 RET_LABEL:;
8763 return var;
8764 }
8765 /* method flat#FlatBufferCharReverseIterator#item for (self: Iterator[nullable Object]): nullable Object */
8766 val* VIRTUAL_core__flat___core__flat__FlatBufferCharReverseIterator___core__abstract_collection__Iterator__item(val* self) {
8767 val* var /* : nullable Object */;
8768 uint32_t var1 /* : Char */;
8769 val* var2 /* : nullable Object */;
8770 var1 = core__flat___core__flat__FlatBufferCharReverseIterator___core__abstract_collection__Iterator__item(self);
8771 var2 = (val*)((long)(var1)<<2|2);
8772 var = var2;
8773 RET_LABEL:;
8774 return var;
8775 }
8776 /* method flat#FlatBufferCharReverseIterator#next for (self: FlatBufferCharReverseIterator) */
8777 void core__flat___core__flat__FlatBufferCharReverseIterator___core__abstract_collection__Iterator__next(val* self) {
8778 val* var_ /* var : FlatBufferCharReverseIterator */;
8779 long var /* : Int */;
8780 long var2 /* : Int */;
8781 long var3 /* : Int */;
8782 short int var5 /* : Bool */;
8783 int cltype;
8784 int idtype;
8785 const char* var_class_name;
8786 long var6 /* : Int */;
8787 var_ = self;
8788 {
8789 { /* Inline flat#FlatBufferCharReverseIterator#curr_pos (var_) on <var_:FlatBufferCharReverseIterator> */
8790 var2 = var_->attrs[COLOR_core__flat__FlatBufferCharReverseIterator___curr_pos].l; /* _curr_pos on <var_:FlatBufferCharReverseIterator> */
8791 var = var2;
8792 RET_LABEL1:(void)0;
8793 }
8794 }
8795 {
8796 { /* Inline kernel#Int#- (var,1l) on <var:Int> */
8797 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
8798 /* <1l:Int> isa OTHER */
8799 var5 = 1; /* easy <1l:Int> isa OTHER*/
8800 if (unlikely(!var5)) {
8801 var_class_name = type_core__Int.name;
8802 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
8803 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
8804 fatal_exit(1);
8805 }
8806 var6 = var - 1l;
8807 var3 = var6;
8808 goto RET_LABEL4;
8809 RET_LABEL4:(void)0;
8810 }
8811 }
8812 {
8813 { /* Inline flat#FlatBufferCharReverseIterator#curr_pos= (var_,var3) on <var_:FlatBufferCharReverseIterator> */
8814 var_->attrs[COLOR_core__flat__FlatBufferCharReverseIterator___curr_pos].l = var3; /* _curr_pos on <var_:FlatBufferCharReverseIterator> */
8815 RET_LABEL7:(void)0;
8816 }
8817 }
8818 RET_LABEL:;
8819 }
8820 /* method flat#FlatBufferCharReverseIterator#init for (self: FlatBufferCharReverseIterator) */
8821 void core__flat___core__flat__FlatBufferCharReverseIterator___core__kernel__Object__init(val* self) {
8822 {
8823 ((void(*)(val* self))(self->class->vft[COLOR_core__flat___core__flat__FlatBufferCharReverseIterator___core__kernel__Object__init]))(self); /* init on <self:FlatBufferCharReverseIterator>*/
8824 }
8825 RET_LABEL:;
8826 }
8827 /* method flat#FlatBufferCharView#[] for (self: FlatBufferCharView, Int): Char */
8828 uint32_t core__flat___core__flat__FlatBufferCharView___core__abstract_collection__SequenceRead___91d_93d(val* self, long p0) {
8829 uint32_t var /* : Char */;
8830 long var_index /* var index: Int */;
8831 val* var1 /* : Text */;
8832 val* var3 /* : Text */;
8833 uint32_t var4 /* : Char */;
8834 var_index = p0;
8835 {
8836 { /* Inline abstract_text#StringCharView#target (self) on <self:FlatBufferCharView> */
8837 var3 = self->attrs[COLOR_core__abstract_text__StringCharView___target].val; /* _target on <self:FlatBufferCharView> */
8838 if (unlikely(var3 == NULL)) {
8839 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
8840 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1138);
8841 fatal_exit(1);
8842 }
8843 var1 = var3;
8844 RET_LABEL2:(void)0;
8845 }
8846 }
8847 {
8848 var4 = core__flat___FlatText___core__abstract_text__Text___91d_93d(var1, var_index);
8849 }
8850 var = var4;
8851 goto RET_LABEL;
8852 RET_LABEL:;
8853 return var;
8854 }
8855 /* method flat#FlatBufferCharView#[] for (self: SequenceRead[nullable Object], Int): nullable Object */
8856 val* VIRTUAL_core__flat___core__flat__FlatBufferCharView___core__abstract_collection__SequenceRead___91d_93d(val* self, long p0) {
8857 val* var /* : nullable Object */;
8858 uint32_t var1 /* : Char */;
8859 val* var2 /* : nullable Object */;
8860 var1 = core__flat___core__flat__FlatBufferCharView___core__abstract_collection__SequenceRead___91d_93d(self, p0);
8861 var2 = (val*)((long)(var1)<<2|2);
8862 var = var2;
8863 RET_LABEL:;
8864 return var;
8865 }
8866 /* method flat#FlatBufferCharView#[]= for (self: FlatBufferCharView, Int, Char) */
8867 void core__flat___core__flat__FlatBufferCharView___core__abstract_collection__Sequence___91d_93d_61d(val* self, long p0, uint32_t p1) {
8868 short int var /* : Bool */;
8869 int cltype;
8870 int idtype;
8871 const char* var_class_name;
8872 long var_index /* var index: Int */;
8873 uint32_t var_item /* var item: Char */;
8874 short int var1 /* : Bool */;
8875 short int var2 /* : Bool */;
8876 short int var4 /* : Bool */;
8877 int cltype5;
8878 int idtype6;
8879 const char* var_class_name7;
8880 short int var8 /* : Bool */;
8881 short int var_ /* var : Bool */;
8882 long var9 /* : Int */;
8883 short int var10 /* : Bool */;
8884 short int var12 /* : Bool */;
8885 int cltype13;
8886 int idtype14;
8887 const char* var_class_name15;
8888 short int var16 /* : Bool */;
8889 long var17 /* : Int */;
8890 short int var18 /* : Bool */;
8891 short int var20 /* : Bool */;
8892 val* var21 /* : Text */;
8893 val* var23 /* : Text */;
8894 /* Covariant cast for argument 1 (item) <p1:Char> isa Char */
8895 /* <p1:Char> isa Char */
8896 var = 1; /* easy <p1:Char> isa Char*/
8897 if (unlikely(!var)) {
8898 var_class_name = type_core__Char.name;
8899 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Char", var_class_name);
8900 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 1060);
8901 fatal_exit(1);
8902 }
8903 var_index = p0;
8904 var_item = p1;
8905 {
8906 { /* Inline kernel#Int#>= (var_index,0l) on <var_index:Int> */
8907 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
8908 /* <0l:Int> isa OTHER */
8909 var4 = 1; /* easy <0l:Int> isa OTHER*/
8910 if (unlikely(!var4)) {
8911 var_class_name7 = type_core__Int.name;
8912 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
8913 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
8914 fatal_exit(1);
8915 }
8916 var8 = var_index >= 0l;
8917 var2 = var8;
8918 goto RET_LABEL3;
8919 RET_LABEL3:(void)0;
8920 }
8921 }
8922 var_ = var2;
8923 if (var2){
8924 {
8925 var9 = core__abstract_text___core__abstract_text__StringCharView___core__abstract_collection__Collection__length(self);
8926 }
8927 {
8928 { /* Inline kernel#Int#<= (var_index,var9) on <var_index:Int> */
8929 /* Covariant cast for argument 0 (i) <var9:Int> isa OTHER */
8930 /* <var9:Int> isa OTHER */
8931 var12 = 1; /* easy <var9:Int> isa OTHER*/
8932 if (unlikely(!var12)) {
8933 var_class_name15 = type_core__Int.name;
8934 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15);
8935 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
8936 fatal_exit(1);
8937 }
8938 var16 = var_index <= var9;
8939 var10 = var16;
8940 goto RET_LABEL11;
8941 RET_LABEL11:(void)0;
8942 }
8943 }
8944 var1 = var10;
8945 } else {
8946 var1 = var_;
8947 }
8948 if (unlikely(!var1)) {
8949 PRINT_ERROR("Runtime error: %s", "Assert failed");
8950 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 1062);
8951 fatal_exit(1);
8952 }
8953 {
8954 var17 = core__abstract_text___core__abstract_text__StringCharView___core__abstract_collection__Collection__length(self);
8955 }
8956 {
8957 { /* Inline kernel#Int#== (var_index,var17) on <var_index:Int> */
8958 var20 = var_index == var17;
8959 var18 = var20;
8960 goto RET_LABEL19;
8961 RET_LABEL19:(void)0;
8962 }
8963 }
8964 if (var18){
8965 {
8966 core__flat___core__flat__FlatBufferCharView___core__abstract_collection__SimpleCollection__add(self, var_item); /* Direct call flat#FlatBufferCharView#add on <self:FlatBufferCharView>*/
8967 }
8968 goto RET_LABEL;
8969 } else {
8970 }
8971 {
8972 { /* Inline abstract_text#StringCharView#target (self) on <self:FlatBufferCharView> */
8973 var23 = self->attrs[COLOR_core__abstract_text__StringCharView___target].val; /* _target on <self:FlatBufferCharView> */
8974 if (unlikely(var23 == NULL)) {
8975 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
8976 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1138);
8977 fatal_exit(1);
8978 }
8979 var21 = var23;
8980 RET_LABEL22:(void)0;
8981 }
8982 }
8983 {
8984 core___core__FlatBuffer___core__abstract_text__Buffer___91d_93d_61d(var21, var_index, var_item); /* Direct call flat#FlatBuffer#[]= on <var21:Text(FlatBuffer)>*/
8985 }
8986 RET_LABEL:;
8987 }
8988 /* method flat#FlatBufferCharView#[]= for (self: Sequence[nullable Object], Int, nullable Object) */
8989 void VIRTUAL_core__flat___core__flat__FlatBufferCharView___core__abstract_collection__Sequence___91d_93d_61d(val* self, long p0, val* p1) {
8990 uint32_t var /* : Char */;
8991 var = (uint32_t)((long)(p1)>>2);
8992 core__flat___core__flat__FlatBufferCharView___core__abstract_collection__Sequence___91d_93d_61d(self, p0, var); /* Direct call flat#FlatBufferCharView#[]= on <self:Sequence[nullable Object](FlatBufferCharView)>*/
8993 RET_LABEL:;
8994 }
8995 /* method flat#FlatBufferCharView#push for (self: FlatBufferCharView, Char) */
8996 void core__flat___core__flat__FlatBufferCharView___core__abstract_collection__Sequence__push(val* self, uint32_t p0) {
8997 short int var /* : Bool */;
8998 int cltype;
8999 int idtype;
9000 const char* var_class_name;
9001 uint32_t var_c /* var c: Char */;
9002 val* var1 /* : Text */;
9003 val* var3 /* : Text */;
9004 /* Covariant cast for argument 0 (c) <p0:Char> isa Char */
9005 /* <p0:Char> isa Char */
9006 var = 1; /* easy <p0:Char> isa Char*/
9007 if (unlikely(!var)) {
9008 var_class_name = type_core__Char.name;
9009 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Char", var_class_name);
9010 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 1070);
9011 fatal_exit(1);
9012 }
9013 var_c = p0;
9014 {
9015 { /* Inline abstract_text#StringCharView#target (self) on <self:FlatBufferCharView> */
9016 var3 = self->attrs[COLOR_core__abstract_text__StringCharView___target].val; /* _target on <self:FlatBufferCharView> */
9017 if (unlikely(var3 == NULL)) {
9018 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
9019 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1138);
9020 fatal_exit(1);
9021 }
9022 var1 = var3;
9023 RET_LABEL2:(void)0;
9024 }
9025 }
9026 {
9027 core___core__FlatBuffer___core__abstract_text__Buffer__add(var1, var_c); /* Direct call flat#FlatBuffer#add on <var1:Text(FlatBuffer)>*/
9028 }
9029 RET_LABEL:;
9030 }
9031 /* method flat#FlatBufferCharView#push for (self: Sequence[nullable Object], nullable Object) */
9032 void VIRTUAL_core__flat___core__flat__FlatBufferCharView___core__abstract_collection__Sequence__push(val* self, val* p0) {
9033 uint32_t var /* : Char */;
9034 var = (uint32_t)((long)(p0)>>2);
9035 core__flat___core__flat__FlatBufferCharView___core__abstract_collection__Sequence__push(self, var); /* Direct call flat#FlatBufferCharView#push on <self:Sequence[nullable Object](FlatBufferCharView)>*/
9036 RET_LABEL:;
9037 }
9038 /* method flat#FlatBufferCharView#add for (self: FlatBufferCharView, Char) */
9039 void core__flat___core__flat__FlatBufferCharView___core__abstract_collection__SimpleCollection__add(val* self, uint32_t p0) {
9040 short int var /* : Bool */;
9041 int cltype;
9042 int idtype;
9043 const char* var_class_name;
9044 uint32_t var_c /* var c: Char */;
9045 val* var1 /* : Text */;
9046 val* var3 /* : Text */;
9047 /* Covariant cast for argument 0 (c) <p0:Char> isa Char */
9048 /* <p0:Char> isa Char */
9049 var = 1; /* easy <p0:Char> isa Char*/
9050 if (unlikely(!var)) {
9051 var_class_name = type_core__Char.name;
9052 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Char", var_class_name);
9053 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 1075);
9054 fatal_exit(1);
9055 }
9056 var_c = p0;
9057 {
9058 { /* Inline abstract_text#StringCharView#target (self) on <self:FlatBufferCharView> */
9059 var3 = self->attrs[COLOR_core__abstract_text__StringCharView___target].val; /* _target on <self:FlatBufferCharView> */
9060 if (unlikely(var3 == NULL)) {
9061 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
9062 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1138);
9063 fatal_exit(1);
9064 }
9065 var1 = var3;
9066 RET_LABEL2:(void)0;
9067 }
9068 }
9069 {
9070 core___core__FlatBuffer___core__abstract_text__Buffer__add(var1, var_c); /* Direct call flat#FlatBuffer#add on <var1:Text(FlatBuffer)>*/
9071 }
9072 RET_LABEL:;
9073 }
9074 /* method flat#FlatBufferCharView#add for (self: SimpleCollection[nullable Object], nullable Object) */
9075 void VIRTUAL_core__flat___core__flat__FlatBufferCharView___core__abstract_collection__SimpleCollection__add(val* self, val* p0) {
9076 uint32_t var /* : Char */;
9077 var = (uint32_t)((long)(p0)>>2);
9078 core__flat___core__flat__FlatBufferCharView___core__abstract_collection__SimpleCollection__add(self, var); /* Direct call flat#FlatBufferCharView#add on <self:SimpleCollection[nullable Object](FlatBufferCharView)>*/
9079 RET_LABEL:;
9080 }
9081 /* method flat#FlatBufferCharView#enlarge for (self: FlatBufferCharView, Int) */
9082 void core__flat___core__flat__FlatBufferCharView___enlarge(val* self, long p0) {
9083 long var_cap /* var cap: Int */;
9084 val* var /* : Text */;
9085 val* var2 /* : Text */;
9086 var_cap = p0;
9087 {
9088 { /* Inline abstract_text#StringCharView#target (self) on <self:FlatBufferCharView> */
9089 var2 = self->attrs[COLOR_core__abstract_text__StringCharView___target].val; /* _target on <self:FlatBufferCharView> */
9090 if (unlikely(var2 == NULL)) {
9091 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
9092 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1138);
9093 fatal_exit(1);
9094 }
9095 var = var2;
9096 RET_LABEL1:(void)0;
9097 }
9098 }
9099 {
9100 core___core__FlatBuffer___core__abstract_text__Buffer__enlarge(var, var_cap); /* Direct call flat#FlatBuffer#enlarge on <var:Text(FlatBuffer)>*/
9101 }
9102 RET_LABEL:;
9103 }
9104 /* method flat#FlatBufferCharView#append for (self: FlatBufferCharView, Collection[Char]) */
9105 void core__flat___core__flat__FlatBufferCharView___core__abstract_collection__Sequence__append(val* self, val* p0) {
9106 short int var /* : Bool */;
9107 int cltype;
9108 int idtype;
9109 const char* var_class_name;
9110 val* var_s /* var s: Collection[Char] */;
9111 long var1 /* : Int */;
9112 long var_s_length /* var s_length: Int */;
9113 val* var2 /* : Text */;
9114 val* var4 /* : Text */;
9115 long var5 /* : Int */;
9116 long var7 /* : Int */;
9117 long var8 /* : Int */;
9118 short int var9 /* : Bool */;
9119 short int var11 /* : Bool */;
9120 int cltype12;
9121 int idtype13;
9122 const char* var_class_name14;
9123 short int var15 /* : Bool */;
9124 val* var16 /* : Text */;
9125 val* var18 /* : Text */;
9126 long var19 /* : Int */;
9127 long var20 /* : Int */;
9128 short int var22 /* : Bool */;
9129 int cltype23;
9130 int idtype24;
9131 const char* var_class_name25;
9132 long var26 /* : Int */;
9133 val* var_ /* var : Collection[Char] */;
9134 val* var27 /* : Iterator[nullable Object] */;
9135 val* var_28 /* var : Iterator[Char] */;
9136 short int var29 /* : Bool */;
9137 val* var30 /* : nullable Object */;
9138 uint32_t var31 /* : Char */;
9139 uint32_t var_i /* var i: Char */;
9140 val* var32 /* : Text */;
9141 val* var34 /* : Text */;
9142 /* Covariant cast for argument 0 (s) <p0:Collection[Char]> isa Collection[Char] */
9143 /* <p0:Collection[Char]> isa Collection[Char] */
9144 var = 1; /* easy <p0:Collection[Char]> isa Collection[Char]*/
9145 if (unlikely(!var)) {
9146 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
9147 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[Char]", var_class_name);
9148 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 1085);
9149 fatal_exit(1);
9150 }
9151 var_s = p0;
9152 {
9153 var1 = ((long(*)(val* self))((((long)var_s&3)?class_info[((long)var_s&3)]:var_s->class)->vft[COLOR_core__abstract_collection__Collection__length]))(var_s); /* length on <var_s:Collection[Char]>*/
9154 }
9155 var_s_length = var1;
9156 {
9157 { /* Inline abstract_text#StringCharView#target (self) on <self:FlatBufferCharView> */
9158 var4 = self->attrs[COLOR_core__abstract_text__StringCharView___target].val; /* _target on <self:FlatBufferCharView> */
9159 if (unlikely(var4 == NULL)) {
9160 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
9161 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1138);
9162 fatal_exit(1);
9163 }
9164 var2 = var4;
9165 RET_LABEL3:(void)0;
9166 }
9167 }
9168 {
9169 { /* Inline flat#FlatBuffer#capacity (var2) on <var2:Text(FlatBuffer)> */
9170 var7 = var2->attrs[COLOR_core__flat__FlatBuffer___capacity].l; /* _capacity on <var2:Text(FlatBuffer)> */
9171 var5 = var7;
9172 RET_LABEL6:(void)0;
9173 }
9174 }
9175 {
9176 var8 = ((long(*)(val* self))((((long)var_s&3)?class_info[((long)var_s&3)]:var_s->class)->vft[COLOR_core__abstract_collection__Collection__length]))(var_s); /* length on <var_s:Collection[Char]>*/
9177 }
9178 {
9179 { /* Inline kernel#Int#< (var5,var8) on <var5:Int> */
9180 /* Covariant cast for argument 0 (i) <var8:Int> isa OTHER */
9181 /* <var8:Int> isa OTHER */
9182 var11 = 1; /* easy <var8:Int> isa OTHER*/
9183 if (unlikely(!var11)) {
9184 var_class_name14 = type_core__Int.name;
9185 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14);
9186 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
9187 fatal_exit(1);
9188 }
9189 var15 = var5 < var8;
9190 var9 = var15;
9191 goto RET_LABEL10;
9192 RET_LABEL10:(void)0;
9193 }
9194 }
9195 if (var9){
9196 {
9197 { /* Inline abstract_text#StringCharView#target (self) on <self:FlatBufferCharView> */
9198 var18 = self->attrs[COLOR_core__abstract_text__StringCharView___target].val; /* _target on <self:FlatBufferCharView> */
9199 if (unlikely(var18 == NULL)) {
9200 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
9201 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1138);
9202 fatal_exit(1);
9203 }
9204 var16 = var18;
9205 RET_LABEL17:(void)0;
9206 }
9207 }
9208 var19 = var16->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <var16:Text(FlatBuffer)> */
9209 {
9210 { /* Inline kernel#Int#+ (var_s_length,var19) on <var_s_length:Int> */
9211 /* Covariant cast for argument 0 (i) <var19:Int> isa OTHER */
9212 /* <var19:Int> isa OTHER */
9213 var22 = 1; /* easy <var19:Int> isa OTHER*/
9214 if (unlikely(!var22)) {
9215 var_class_name25 = type_core__Int.name;
9216 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25);
9217 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
9218 fatal_exit(1);
9219 }
9220 var26 = var_s_length + var19;
9221 var20 = var26;
9222 goto RET_LABEL21;
9223 RET_LABEL21:(void)0;
9224 }
9225 }
9226 {
9227 core__flat___core__flat__FlatBufferCharView___enlarge(self, var20); /* Direct call flat#FlatBufferCharView#enlarge on <self:FlatBufferCharView>*/
9228 }
9229 } else {
9230 }
9231 var_ = var_s;
9232 {
9233 var27 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var_); /* iterator on <var_:Collection[Char]>*/
9234 }
9235 var_28 = var27;
9236 for(;;) {
9237 {
9238 var29 = ((short int(*)(val* self))((((long)var_28&3)?class_info[((long)var_28&3)]:var_28->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_28); /* is_ok on <var_28:Iterator[Char]>*/
9239 }
9240 if (var29){
9241 } else {
9242 goto BREAK_label;
9243 }
9244 {
9245 var30 = ((val*(*)(val* self))((((long)var_28&3)?class_info[((long)var_28&3)]:var_28->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_28); /* item on <var_28:Iterator[Char]>*/
9246 }
9247 var31 = (uint32_t)((long)(var30)>>2);
9248 var_i = var31;
9249 {
9250 { /* Inline abstract_text#StringCharView#target (self) on <self:FlatBufferCharView> */
9251 var34 = self->attrs[COLOR_core__abstract_text__StringCharView___target].val; /* _target on <self:FlatBufferCharView> */
9252 if (unlikely(var34 == NULL)) {
9253 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
9254 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1138);
9255 fatal_exit(1);
9256 }
9257 var32 = var34;
9258 RET_LABEL33:(void)0;
9259 }
9260 }
9261 {
9262 core___core__FlatBuffer___core__abstract_text__Buffer__add(var32, var_i); /* Direct call flat#FlatBuffer#add on <var32:Text(FlatBuffer)>*/
9263 }
9264 {
9265 ((void(*)(val* self))((((long)var_28&3)?class_info[((long)var_28&3)]:var_28->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_28); /* next on <var_28:Iterator[Char]>*/
9266 }
9267 }
9268 BREAK_label: (void)0;
9269 {
9270 ((void(*)(val* self))((((long)var_28&3)?class_info[((long)var_28&3)]:var_28->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_28); /* finish on <var_28:Iterator[Char]>*/
9271 }
9272 RET_LABEL:;
9273 }
9274 /* method flat#FlatBufferCharView#iterator_from for (self: FlatBufferCharView, Int): IndexedIterator[Char] */
9275 val* core__flat___core__flat__FlatBufferCharView___core__abstract_collection__SequenceRead__iterator_from(val* self, long p0) {
9276 val* var /* : IndexedIterator[Char] */;
9277 long var_pos /* var pos: Int */;
9278 val* var1 /* : FlatBufferCharIterator */;
9279 val* var2 /* : Text */;
9280 val* var4 /* : Text */;
9281 var_pos = p0;
9282 var1 = NEW_core__flat__FlatBufferCharIterator(&type_core__flat__FlatBufferCharIterator);
9283 {
9284 { /* Inline abstract_text#StringCharView#target (self) on <self:FlatBufferCharView> */
9285 var4 = self->attrs[COLOR_core__abstract_text__StringCharView___target].val; /* _target on <self:FlatBufferCharView> */
9286 if (unlikely(var4 == NULL)) {
9287 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
9288 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1138);
9289 fatal_exit(1);
9290 }
9291 var2 = var4;
9292 RET_LABEL3:(void)0;
9293 }
9294 }
9295 {
9296 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_core__flat__FlatBufferCharIterator__target_61d]))(var1, var2); /* target= on <var1:FlatBufferCharIterator>*/
9297 }
9298 {
9299 ((void(*)(val* self, long p0))(var1->class->vft[COLOR_core__flat__FlatBufferCharIterator__curr_pos_61d]))(var1, var_pos); /* curr_pos= on <var1:FlatBufferCharIterator>*/
9300 }
9301 {
9302 ((void(*)(val* self))(var1->class->vft[COLOR_core__kernel__Object__init]))(var1); /* init on <var1:FlatBufferCharIterator>*/
9303 }
9304 var = var1;
9305 goto RET_LABEL;
9306 RET_LABEL:;
9307 return var;
9308 }
9309 /* method flat#FlatBufferCharView#reverse_iterator_from for (self: FlatBufferCharView, Int): IndexedIterator[Char] */
9310 val* core__flat___core__flat__FlatBufferCharView___core__abstract_collection__SequenceRead__reverse_iterator_from(val* self, long p0) {
9311 val* var /* : IndexedIterator[Char] */;
9312 long var_pos /* var pos: Int */;
9313 val* var1 /* : FlatBufferCharReverseIterator */;
9314 val* var2 /* : Text */;
9315 val* var4 /* : Text */;
9316 var_pos = p0;
9317 var1 = NEW_core__flat__FlatBufferCharReverseIterator(&type_core__flat__FlatBufferCharReverseIterator);
9318 {
9319 { /* Inline abstract_text#StringCharView#target (self) on <self:FlatBufferCharView> */
9320 var4 = self->attrs[COLOR_core__abstract_text__StringCharView___target].val; /* _target on <self:FlatBufferCharView> */
9321 if (unlikely(var4 == NULL)) {
9322 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
9323 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1138);
9324 fatal_exit(1);
9325 }
9326 var2 = var4;
9327 RET_LABEL3:(void)0;
9328 }
9329 }
9330 {
9331 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_core__flat__FlatBufferCharReverseIterator__target_61d]))(var1, var2); /* target= on <var1:FlatBufferCharReverseIterator>*/
9332 }
9333 {
9334 ((void(*)(val* self, long p0))(var1->class->vft[COLOR_core__flat__FlatBufferCharReverseIterator__curr_pos_61d]))(var1, var_pos); /* curr_pos= on <var1:FlatBufferCharReverseIterator>*/
9335 }
9336 {
9337 ((void(*)(val* self))(var1->class->vft[COLOR_core__kernel__Object__init]))(var1); /* init on <var1:FlatBufferCharReverseIterator>*/
9338 }
9339 var = var1;
9340 goto RET_LABEL;
9341 RET_LABEL:;
9342 return var;
9343 }
9344 /* method flat#FlatBufferCharIterator#target for (self: FlatBufferCharIterator): FlatBuffer */
9345 val* core__flat___core__flat__FlatBufferCharIterator___target(val* self) {
9346 val* var /* : FlatBuffer */;
9347 val* var1 /* : FlatBuffer */;
9348 var1 = self->attrs[COLOR_core__flat__FlatBufferCharIterator___target].val; /* _target on <self:FlatBufferCharIterator> */
9349 if (unlikely(var1 == NULL)) {
9350 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
9351 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 1101);
9352 fatal_exit(1);
9353 }
9354 var = var1;
9355 RET_LABEL:;
9356 return var;
9357 }
9358 /* method flat#FlatBufferCharIterator#target= for (self: FlatBufferCharIterator, FlatBuffer) */
9359 void core__flat___core__flat__FlatBufferCharIterator___target_61d(val* self, val* p0) {
9360 self->attrs[COLOR_core__flat__FlatBufferCharIterator___target].val = p0; /* _target on <self:FlatBufferCharIterator> */
9361 RET_LABEL:;
9362 }
9363 /* method flat#FlatBufferCharIterator#max for (self: FlatBufferCharIterator): Int */
9364 long core__flat___core__flat__FlatBufferCharIterator___max(val* self) {
9365 long var /* : Int */;
9366 long var1 /* : Int */;
9367 var1 = self->attrs[COLOR_core__flat__FlatBufferCharIterator___max].l; /* _max on <self:FlatBufferCharIterator> */
9368 var = var1;
9369 RET_LABEL:;
9370 return var;
9371 }
9372 /* method flat#FlatBufferCharIterator#max= for (self: FlatBufferCharIterator, Int) */
9373 void core__flat___core__flat__FlatBufferCharIterator___max_61d(val* self, long p0) {
9374 self->attrs[COLOR_core__flat__FlatBufferCharIterator___max].l = p0; /* _max on <self:FlatBufferCharIterator> */
9375 RET_LABEL:;
9376 }
9377 /* method flat#FlatBufferCharIterator#curr_pos for (self: FlatBufferCharIterator): Int */
9378 long core__flat___core__flat__FlatBufferCharIterator___curr_pos(val* self) {
9379 long var /* : Int */;
9380 long var1 /* : Int */;
9381 var1 = self->attrs[COLOR_core__flat__FlatBufferCharIterator___curr_pos].l; /* _curr_pos on <self:FlatBufferCharIterator> */
9382 var = var1;
9383 RET_LABEL:;
9384 return var;
9385 }
9386 /* method flat#FlatBufferCharIterator#curr_pos= for (self: FlatBufferCharIterator, Int) */
9387 void core__flat___core__flat__FlatBufferCharIterator___curr_pos_61d(val* self, long p0) {
9388 self->attrs[COLOR_core__flat__FlatBufferCharIterator___curr_pos].l = p0; /* _curr_pos on <self:FlatBufferCharIterator> */
9389 RET_LABEL:;
9390 }
9391 /* method flat#FlatBufferCharIterator#init for (self: FlatBufferCharIterator) */
9392 void core__flat___core__flat__FlatBufferCharIterator___core__kernel__Object__init(val* self) {
9393 val* var /* : FlatBuffer */;
9394 val* var2 /* : FlatBuffer */;
9395 long var3 /* : Int */;
9396 long var4 /* : Int */;
9397 short int var6 /* : Bool */;
9398 int cltype;
9399 int idtype;
9400 const char* var_class_name;
9401 long var7 /* : Int */;
9402 {
9403 ((void(*)(val* self))(self->class->vft[COLOR_core__flat___core__flat__FlatBufferCharIterator___core__kernel__Object__init]))(self); /* init on <self:FlatBufferCharIterator>*/
9404 }
9405 {
9406 { /* Inline flat#FlatBufferCharIterator#target (self) on <self:FlatBufferCharIterator> */
9407 var2 = self->attrs[COLOR_core__flat__FlatBufferCharIterator___target].val; /* _target on <self:FlatBufferCharIterator> */
9408 if (unlikely(var2 == NULL)) {
9409 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
9410 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 1101);
9411 fatal_exit(1);
9412 }
9413 var = var2;
9414 RET_LABEL1:(void)0;
9415 }
9416 }
9417 var3 = var->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <var:FlatBuffer> */
9418 {
9419 { /* Inline kernel#Int#- (var3,1l) on <var3:Int> */
9420 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
9421 /* <1l:Int> isa OTHER */
9422 var6 = 1; /* easy <1l:Int> isa OTHER*/
9423 if (unlikely(!var6)) {
9424 var_class_name = type_core__Int.name;
9425 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
9426 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
9427 fatal_exit(1);
9428 }
9429 var7 = var3 - 1l;
9430 var4 = var7;
9431 goto RET_LABEL5;
9432 RET_LABEL5:(void)0;
9433 }
9434 }
9435 {
9436 { /* Inline flat#FlatBufferCharIterator#max= (self,var4) on <self:FlatBufferCharIterator> */
9437 self->attrs[COLOR_core__flat__FlatBufferCharIterator___max].l = var4; /* _max on <self:FlatBufferCharIterator> */
9438 RET_LABEL8:(void)0;
9439 }
9440 }
9441 RET_LABEL:;
9442 }
9443 /* method flat#FlatBufferCharIterator#index for (self: FlatBufferCharIterator): Int */
9444 long core__flat___core__flat__FlatBufferCharIterator___core__abstract_collection__IndexedIterator__index(val* self) {
9445 long var /* : Int */;
9446 long var1 /* : Int */;
9447 long var3 /* : Int */;
9448 {
9449 { /* Inline flat#FlatBufferCharIterator#curr_pos (self) on <self:FlatBufferCharIterator> */
9450 var3 = self->attrs[COLOR_core__flat__FlatBufferCharIterator___curr_pos].l; /* _curr_pos on <self:FlatBufferCharIterator> */
9451 var1 = var3;
9452 RET_LABEL2:(void)0;
9453 }
9454 }
9455 var = var1;
9456 goto RET_LABEL;
9457 RET_LABEL:;
9458 return var;
9459 }
9460 /* method flat#FlatBufferCharIterator#is_ok for (self: FlatBufferCharIterator): Bool */
9461 short int core__flat___core__flat__FlatBufferCharIterator___core__abstract_collection__Iterator__is_ok(val* self) {
9462 short int var /* : Bool */;
9463 long var1 /* : Int */;
9464 long var3 /* : Int */;
9465 long var4 /* : Int */;
9466 long var6 /* : Int */;
9467 short int var7 /* : Bool */;
9468 short int var9 /* : Bool */;
9469 int cltype;
9470 int idtype;
9471 const char* var_class_name;
9472 short int var10 /* : Bool */;
9473 {
9474 { /* Inline flat#FlatBufferCharIterator#curr_pos (self) on <self:FlatBufferCharIterator> */
9475 var3 = self->attrs[COLOR_core__flat__FlatBufferCharIterator___curr_pos].l; /* _curr_pos on <self:FlatBufferCharIterator> */
9476 var1 = var3;
9477 RET_LABEL2:(void)0;
9478 }
9479 }
9480 {
9481 { /* Inline flat#FlatBufferCharIterator#max (self) on <self:FlatBufferCharIterator> */
9482 var6 = self->attrs[COLOR_core__flat__FlatBufferCharIterator___max].l; /* _max on <self:FlatBufferCharIterator> */
9483 var4 = var6;
9484 RET_LABEL5:(void)0;
9485 }
9486 }
9487 {
9488 { /* Inline kernel#Int#<= (var1,var4) on <var1:Int> */
9489 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
9490 /* <var4:Int> isa OTHER */
9491 var9 = 1; /* easy <var4:Int> isa OTHER*/
9492 if (unlikely(!var9)) {
9493 var_class_name = type_core__Int.name;
9494 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
9495 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
9496 fatal_exit(1);
9497 }
9498 var10 = var1 <= var4;
9499 var7 = var10;
9500 goto RET_LABEL8;
9501 RET_LABEL8:(void)0;
9502 }
9503 }
9504 var = var7;
9505 goto RET_LABEL;
9506 RET_LABEL:;
9507 return var;
9508 }
9509 /* method flat#FlatBufferCharIterator#item for (self: FlatBufferCharIterator): Char */
9510 uint32_t core__flat___core__flat__FlatBufferCharIterator___core__abstract_collection__Iterator__item(val* self) {
9511 uint32_t var /* : Char */;
9512 val* var1 /* : FlatBuffer */;
9513 val* var3 /* : FlatBuffer */;
9514 long var4 /* : Int */;
9515 long var6 /* : Int */;
9516 uint32_t var7 /* : Char */;
9517 {
9518 { /* Inline flat#FlatBufferCharIterator#target (self) on <self:FlatBufferCharIterator> */
9519 var3 = self->attrs[COLOR_core__flat__FlatBufferCharIterator___target].val; /* _target on <self:FlatBufferCharIterator> */
9520 if (unlikely(var3 == NULL)) {
9521 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
9522 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 1101);
9523 fatal_exit(1);
9524 }
9525 var1 = var3;
9526 RET_LABEL2:(void)0;
9527 }
9528 }
9529 {
9530 { /* Inline flat#FlatBufferCharIterator#curr_pos (self) on <self:FlatBufferCharIterator> */
9531 var6 = self->attrs[COLOR_core__flat__FlatBufferCharIterator___curr_pos].l; /* _curr_pos on <self:FlatBufferCharIterator> */
9532 var4 = var6;
9533 RET_LABEL5:(void)0;
9534 }
9535 }
9536 {
9537 var7 = core__flat___FlatText___core__abstract_text__Text___91d_93d(var1, var4);
9538 }
9539 var = var7;
9540 goto RET_LABEL;
9541 RET_LABEL:;
9542 return var;
9543 }
9544 /* method flat#FlatBufferCharIterator#item for (self: Iterator[nullable Object]): nullable Object */
9545 val* VIRTUAL_core__flat___core__flat__FlatBufferCharIterator___core__abstract_collection__Iterator__item(val* self) {
9546 val* var /* : nullable Object */;
9547 uint32_t var1 /* : Char */;
9548 val* var2 /* : nullable Object */;
9549 var1 = core__flat___core__flat__FlatBufferCharIterator___core__abstract_collection__Iterator__item(self);
9550 var2 = (val*)((long)(var1)<<2|2);
9551 var = var2;
9552 RET_LABEL:;
9553 return var;
9554 }
9555 /* method flat#FlatBufferCharIterator#next for (self: FlatBufferCharIterator) */
9556 void core__flat___core__flat__FlatBufferCharIterator___core__abstract_collection__Iterator__next(val* self) {
9557 val* var_ /* var : FlatBufferCharIterator */;
9558 long var /* : Int */;
9559 long var2 /* : Int */;
9560 long var3 /* : Int */;
9561 short int var5 /* : Bool */;
9562 int cltype;
9563 int idtype;
9564 const char* var_class_name;
9565 long var6 /* : Int */;
9566 var_ = self;
9567 {
9568 { /* Inline flat#FlatBufferCharIterator#curr_pos (var_) on <var_:FlatBufferCharIterator> */
9569 var2 = var_->attrs[COLOR_core__flat__FlatBufferCharIterator___curr_pos].l; /* _curr_pos on <var_:FlatBufferCharIterator> */
9570 var = var2;
9571 RET_LABEL1:(void)0;
9572 }
9573 }
9574 {
9575 { /* Inline kernel#Int#+ (var,1l) on <var:Int> */
9576 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
9577 /* <1l:Int> isa OTHER */
9578 var5 = 1; /* easy <1l:Int> isa OTHER*/
9579 if (unlikely(!var5)) {
9580 var_class_name = type_core__Int.name;
9581 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
9582 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
9583 fatal_exit(1);
9584 }
9585 var6 = var + 1l;
9586 var3 = var6;
9587 goto RET_LABEL4;
9588 RET_LABEL4:(void)0;
9589 }
9590 }
9591 {
9592 { /* Inline flat#FlatBufferCharIterator#curr_pos= (var_,var3) on <var_:FlatBufferCharIterator> */
9593 var_->attrs[COLOR_core__flat__FlatBufferCharIterator___curr_pos].l = var3; /* _curr_pos on <var_:FlatBufferCharIterator> */
9594 RET_LABEL7:(void)0;
9595 }
9596 }
9597 RET_LABEL:;
9598 }
9599 /* method flat#NativeString#to_s for (self: NativeString): String */
9600 val* core__flat___NativeString___core__abstract_text__Object__to_s(char* self) {
9601 val* var /* : String */;
9602 long var1 /* : Int */;
9603 val* var2 /* : FlatString */;
9604 {
9605 var1 = core___core__NativeString___cstring_length(self);
9606 }
9607 {
9608 var2 = core__flat___NativeString___to_s_with_length(self, var1);
9609 }
9610 var = var2;
9611 goto RET_LABEL;
9612 RET_LABEL:;
9613 return var;
9614 }
9615 /* method flat#NativeString#to_s for (self: Object): String */
9616 val* VIRTUAL_core__flat___NativeString___core__abstract_text__Object__to_s(val* self) {
9617 val* var /* : String */;
9618 val* var1 /* : String */;
9619 char* var2 /* : NativeString */;
9620 var2 = ((struct instance_core__NativeString*)self)->value; /* autounbox from Object to NativeString */;
9621 var1 = core__flat___NativeString___core__abstract_text__Object__to_s(var2);
9622 var = var1;
9623 RET_LABEL:;
9624 return var;
9625 }
9626 /* method flat#NativeString#to_s_with_length for (self: NativeString, Int): FlatString */
9627 val* core__flat___NativeString___to_s_with_length(char* self, long p0) {
9628 val* var /* : FlatString */;
9629 long var_length /* var length: Int */;
9630 short int var1 /* : Bool */;
9631 short int var3 /* : Bool */;
9632 int cltype;
9633 int idtype;
9634 const char* var_class_name;
9635 short int var4 /* : Bool */;
9636 val* var5 /* : FlatString */;
9637 var_length = p0;
9638 {
9639 { /* Inline kernel#Int#>= (var_length,0l) on <var_length:Int> */
9640 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
9641 /* <0l:Int> isa OTHER */
9642 var3 = 1; /* easy <0l:Int> isa OTHER*/
9643 if (unlikely(!var3)) {
9644 var_class_name = type_core__Int.name;
9645 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
9646 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
9647 fatal_exit(1);
9648 }
9649 var4 = var_length >= 0l;
9650 var1 = var4;
9651 goto RET_LABEL2;
9652 RET_LABEL2:(void)0;
9653 }
9654 }
9655 if (unlikely(!var1)) {
9656 PRINT_ERROR("Runtime error: %s", "Assert failed");
9657 PRINT_ERROR(" (%s:%d)\n", FILE_core__flat, 1128);
9658 fatal_exit(1);
9659 }
9660 {
9661 var5 = core__flat___NativeString___clean_utf8(self, var_length);
9662 }
9663 var = var5;
9664 goto RET_LABEL;
9665 RET_LABEL:;
9666 return var;
9667 }
9668 /* method flat#NativeString#to_s_full for (self: NativeString, Int, Int): String */
9669 val* core__flat___NativeString___to_s_full(char* self, long p0, long p1) {
9670 val* var /* : String */;
9671 long var_bytelen /* var bytelen: Int */;
9672 long var_unilen /* var unilen: Int */;
9673 val* var1 /* : FlatString */;
9674 var_bytelen = p0;
9675 var_unilen = p1;
9676 var1 = NEW_core__FlatString(&type_core__FlatString);
9677 {
9678 core___core__FlatString___full(var1, self, var_bytelen, 0l, var_unilen); /* Direct call flat#FlatString#full on <var1:FlatString>*/
9679 }
9680 var = var1;
9681 goto RET_LABEL;
9682 RET_LABEL:;
9683 return var;
9684 }
9685 /* method flat#NativeString#to_s_unsafe for (self: NativeString, nullable Int): String */
9686 val* core__flat___NativeString___to_s_unsafe(char* self, val* p0) {
9687 val* var /* : String */;
9688 val* var_len /* var len: nullable Int */;
9689 short int var1 /* : Bool */;
9690 short int var2 /* : Bool */;
9691 short int var4 /* : Bool */;
9692 long var5 /* : Int */;
9693 val* var6 /* : nullable Int */;
9694 val* var7 /* : FlatString */;
9695 long var8 /* : Int */;
9696 var_len = p0;
9697 if (var_len == NULL) {
9698 var1 = 1; /* is null */
9699 } else {
9700 var1 = 0; /* arg is null but recv is not */
9701 }
9702 if (0) {
9703 { /* Inline kernel#Int#== (var_len,((val*)NULL)) on <var_len:nullable Int> */
9704 var4 = 0; /* incompatible types Int vs. null; cannot be NULL */
9705 var2 = var4;
9706 goto RET_LABEL3;
9707 RET_LABEL3:(void)0;
9708 }
9709 var1 = var2;
9710 }
9711 if (var1){
9712 {
9713 var5 = core___core__NativeString___cstring_length(self);
9714 }
9715 var6 = (val*)(var5<<2|1);
9716 var_len = var6;
9717 } else {
9718 }
9719 var7 = NEW_core__FlatString(&type_core__FlatString);
9720 {
9721 var8 = (long)(var_len)>>2;
9722 core___core__FlatString___with_infos(var7, self, var8, 0l); /* Direct call flat#FlatString#with_infos on <var7:FlatString>*/
9723 }
9724 var = var7;
9725 goto RET_LABEL;
9726 RET_LABEL:;
9727 return var;
9728 }
9729 /* method flat#NativeString#to_s_with_copy for (self: NativeString): FlatString */
9730 val* core__flat___NativeString___to_s_with_copy(char* self) {
9731 val* var /* : FlatString */;
9732 long var1 /* : Int */;
9733 long var_length /* var length: Int */;
9734 val* var2 /* : FlatString */;
9735 val* var_r /* var r: FlatString */;
9736 char* var3 /* : NativeString */;
9737 char* var5 /* : NativeString */;
9738 short int var6 /* : Bool */;
9739 short int var8 /* : Bool */;
9740 short int var9 /* : Bool */;
9741 char* var10 /* : NativeString */;
9742 long var11 /* : Int */;
9743 short int var13 /* : Bool */;
9744 int cltype;
9745 int idtype;
9746 const char* var_class_name;
9747 long var14 /* : Int */;
9748 char* var15 /* : NativeString */;
9749 char* var17 /* : NativeString */;
9750 char* var_new_self /* var new_self: NativeString */;
9751 val* var19 /* : FlatString */;
9752 val* var_str /* var str: FlatString */;
9753 {
9754 var1 = core___core__NativeString___cstring_length(self);
9755 }
9756 var_length = var1;
9757 {
9758 var2 = core__flat___NativeString___clean_utf8(self, var_length);
9759 }
9760 var_r = var2;
9761 {
9762 { /* Inline abstract_text#FlatText#items (var_r) on <var_r:FlatString> */
9763 var5 = var_r->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var_r:FlatString> */
9764 var3 = var5;
9765 RET_LABEL4:(void)0;
9766 }
9767 }
9768 {
9769 { /* Inline native#NativeString#!= (var3,self) on <var3:NativeString> */
9770 var8 = var3 == self;
9771 var9 = !var8;
9772 var6 = var9;
9773 goto RET_LABEL7;
9774 RET_LABEL7:(void)0;
9775 }
9776 }
9777 if (var6){
9778 var = var_r;
9779 goto RET_LABEL;
9780 } else {
9781 }
9782 var10 = NULL/*special!*/;
9783 {
9784 { /* Inline kernel#Int#+ (var_length,1l) on <var_length:Int> */
9785 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
9786 /* <1l:Int> isa OTHER */
9787 var13 = 1; /* easy <1l:Int> isa OTHER*/
9788 if (unlikely(!var13)) {
9789 var_class_name = type_core__Int.name;
9790 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
9791 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
9792 fatal_exit(1);
9793 }
9794 var14 = var_length + 1l;
9795 var11 = var14;
9796 goto RET_LABEL12;
9797 RET_LABEL12:(void)0;
9798 }
9799 }
9800 {
9801 { /* Inline native#NativeString#new (var10,var11) on <var10:NativeString> */
9802 var17 = (char*)nit_alloc(var11);
9803 var15 = var17;
9804 goto RET_LABEL16;
9805 RET_LABEL16:(void)0;
9806 }
9807 }
9808 var_new_self = var15;
9809 {
9810 { /* Inline native#NativeString#copy_to (self,var_new_self,var_length,0l,0l) on <self:NativeString> */
9811 memmove(var_new_self+0l,self+0l,var_length);
9812 RET_LABEL18:(void)0;
9813 }
9814 }
9815 var19 = NEW_core__FlatString(&type_core__FlatString);
9816 {
9817 core___core__FlatString___with_infos(var19, var_new_self, var_length, 0l); /* Direct call flat#FlatString#with_infos on <var19:FlatString>*/
9818 }
9819 var_str = var19;
9820 {
9821 { /* Inline native#NativeString#[]= (var_new_self,var_length,((unsigned char)0x00)) on <var_new_self:NativeString> */
9822 var_new_self[var_length]=(unsigned char)((unsigned char)0x00);
9823 RET_LABEL20:(void)0;
9824 }
9825 }
9826 {
9827 core___core__FlatString___to_cstring_61d(var_str, var_new_self); /* Direct call flat#FlatString#to_cstring= on <var_str:FlatString>*/
9828 }
9829 var = var_str;
9830 goto RET_LABEL;
9831 RET_LABEL:;
9832 return var;
9833 }