README: Update libgc's URL
[nit.git] / c_src / core__ropes.sep.1.c
1 #include "core__ropes.sep.0.h"
2 /* method ropes#Concat#chars for (self: Concat): SequenceRead[Char] */
3 val* core__ropes___core__ropes__Concat___core__abstract_text__Text__chars(val* self) {
4 val* var /* : SequenceRead[Char] */;
5 short int var1 /* : Bool */;
6 val* var2 /* : SequenceRead[Char] */;
7 val* var3 /* : SequenceRead[Char] */;
8 val* var5 /* : RopeChars */;
9 var1 = self->attrs[COLOR_core__ropes__Concat___chars].val != NULL; /* _chars on <self:Concat> */
10 if(likely(var1)) {
11 var2 = self->attrs[COLOR_core__ropes__Concat___chars].val; /* _chars on <self:Concat> */
12 if (unlikely(var2 == NULL)) {
13 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
14 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 73);
15 fatal_exit(1);
16 }
17 } else {
18 {
19 var5 = NEW_core__ropes__RopeChars(&type_core__ropes__RopeChars);
20 {
21 ((void(*)(val* self, val* p0))(var5->class->vft[COLOR_core__abstract_text__StringCharView__target_61d]))(var5, self); /* target= on <var5:RopeChars>*/
22 }
23 {
24 ((void(*)(val* self))(var5->class->vft[COLOR_core__kernel__Object__init]))(var5); /* init on <var5:RopeChars>*/
25 }
26 var3 = var5;
27 goto RET_LABEL4;
28 RET_LABEL4:(void)0;
29 }
30 self->attrs[COLOR_core__ropes__Concat___chars].val = var3; /* _chars on <self:Concat> */
31 var2 = var3;
32 }
33 var = var2;
34 RET_LABEL:;
35 return var;
36 }
37 /* method ropes#Concat#bytes for (self: Concat): SequenceRead[Byte] */
38 val* core__ropes___core__ropes__Concat___core__abstract_text__Text__bytes(val* self) {
39 val* var /* : SequenceRead[Byte] */;
40 short int var1 /* : Bool */;
41 val* var2 /* : SequenceRead[Byte] */;
42 val* var3 /* : SequenceRead[Byte] */;
43 val* var5 /* : RopeBytes */;
44 var1 = self->attrs[COLOR_core__ropes__Concat___bytes].val != NULL; /* _bytes on <self:Concat> */
45 if(likely(var1)) {
46 var2 = self->attrs[COLOR_core__ropes__Concat___bytes].val; /* _bytes on <self:Concat> */
47 if (unlikely(var2 == NULL)) {
48 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bytes");
49 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 75);
50 fatal_exit(1);
51 }
52 } else {
53 {
54 var5 = NEW_core__ropes__RopeBytes(&type_core__ropes__RopeBytes);
55 {
56 ((void(*)(val* self, val* p0))(var5->class->vft[COLOR_core__abstract_text__StringByteView__target_61d]))(var5, self); /* target= on <var5:RopeBytes>*/
57 }
58 {
59 ((void(*)(val* self))(var5->class->vft[COLOR_core__kernel__Object__init]))(var5); /* init on <var5:RopeBytes>*/
60 }
61 var3 = var5;
62 goto RET_LABEL4;
63 RET_LABEL4:(void)0;
64 }
65 self->attrs[COLOR_core__ropes__Concat___bytes].val = var3; /* _bytes on <self:Concat> */
66 var2 = var3;
67 }
68 var = var2;
69 RET_LABEL:;
70 return var;
71 }
72 /* method ropes#Concat#length for (self: Concat): Int */
73 long core__ropes___core__ropes__Concat___core__abstract_text__Text__length(val* self) {
74 long var /* : Int */;
75 long var1 /* : Int */;
76 var1 = self->attrs[COLOR_core__ropes__Concat___length].l; /* _length on <self:Concat> */
77 var = var1;
78 RET_LABEL:;
79 return var;
80 }
81 /* method ropes#Concat#length= for (self: Concat, Int) */
82 void core__ropes___core__ropes__Concat___length_61d(val* self, long p0) {
83 self->attrs[COLOR_core__ropes__Concat___length].l = p0; /* _length on <self:Concat> */
84 RET_LABEL:;
85 }
86 /* method ropes#Concat#bytelen for (self: Concat): Int */
87 long core__ropes___core__ropes__Concat___core__abstract_text__Text__bytelen(val* self) {
88 long var /* : Int */;
89 long var1 /* : Int */;
90 var1 = self->attrs[COLOR_core__ropes__Concat___bytelen].l; /* _bytelen on <self:Concat> */
91 var = var1;
92 RET_LABEL:;
93 return var;
94 }
95 /* method ropes#Concat#substrings for (self: Concat): Iterator[FlatText] */
96 val* core__ropes___core__ropes__Concat___core__abstract_text__Text__substrings(val* self) {
97 val* var /* : Iterator[FlatText] */;
98 val* var1 /* : RopeSubstrings */;
99 var1 = NEW_core__ropes__RopeSubstrings(&type_core__ropes__RopeSubstrings);
100 {
101 core__ropes___core__ropes__RopeSubstrings___from(var1, self, 0l); /* Direct call ropes#RopeSubstrings#from on <var1:RopeSubstrings>*/
102 }
103 var = var1;
104 goto RET_LABEL;
105 RET_LABEL:;
106 return var;
107 }
108 /* method ropes#Concat#empty for (self: Concat): String */
109 val* core__ropes___core__ropes__Concat___core__abstract_text__Text__empty(val* self) {
110 val* var /* : String */;
111 static val* varonce;
112 val* var1 /* : String */;
113 char* var2 /* : NativeString */;
114 val* var3 /* : String */;
115 if (likely(varonce!=NULL)) {
116 var1 = varonce;
117 } else {
118 var2 = "";
119 var3 = core__flat___NativeString___to_s_full(var2, 0l, 0l);
120 var1 = var3;
121 varonce = var1;
122 }
123 var = var1;
124 goto RET_LABEL;
125 RET_LABEL:;
126 return var;
127 }
128 /* method ropes#Concat#to_cstring for (self: Concat): NativeString */
129 char* core__ropes___core__ropes__Concat___core__abstract_text__Text__to_cstring(val* self) {
130 char* var /* : NativeString */;
131 short int var1 /* : Bool */;
132 char* var2 /* : NativeString */;
133 char* var3 /* : NativeString */;
134 long var5 /* : Int */;
135 long var_len /* var len: Int */;
136 char* var6 /* : NativeString */;
137 long var7 /* : Int */;
138 short int var9 /* : Bool */;
139 int cltype;
140 int idtype;
141 const char* var_class_name;
142 long var10 /* : Int */;
143 char* var11 /* : NativeString */;
144 char* var13 /* : NativeString */;
145 char* var_ns /* var ns: NativeString */;
146 long var_off /* var off: Int */;
147 val* var15 /* : Iterator[FlatText] */;
148 val* var_ /* var : Iterator[FlatText] */;
149 val* var16 /* : Iterator[nullable Object] */;
150 val* var_17 /* var : Iterator[FlatText] */;
151 short int var18 /* : Bool */;
152 val* var19 /* : nullable Object */;
153 val* var_i /* var i: FlatText */;
154 long var20 /* : Int */;
155 long var_ilen /* var ilen: Int */;
156 short int var21 /* : Bool */;
157 int cltype22;
158 int idtype23;
159 const char* var_class_name24;
160 char* var25 /* : NativeString */;
161 short int var26 /* : Bool */;
162 int cltype27;
163 int idtype28;
164 const char* var_class_name29;
165 long var30 /* : Int */;
166 long var32 /* : Int */;
167 short int var34 /* : Bool */;
168 int cltype35;
169 int idtype36;
170 const char* var_class_name37;
171 long var38 /* : Int */;
172 var1 = self->attrs[COLOR_core__ropes__Concat__lazy_32d_to_cstring].s; /* lazy _to_cstring on <self:Concat> */
173 if(likely(var1)) {
174 var2 = self->attrs[COLOR_core__ropes__Concat___to_cstring].str; /* _to_cstring on <self:Concat> */
175 } else {
176 {
177 var5 = self->attrs[COLOR_core__ropes__Concat___bytelen].l; /* _bytelen on <self:Concat> */
178 var_len = var5;
179 var6 = NULL/*special!*/;
180 {
181 { /* Inline kernel#Int#+ (var_len,1l) on <var_len:Int> */
182 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
183 /* <1l:Int> isa OTHER */
184 var9 = 1; /* easy <1l:Int> isa OTHER*/
185 if (unlikely(!var9)) {
186 var_class_name = type_core__Int.name;
187 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
188 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
189 fatal_exit(1);
190 }
191 var10 = var_len + 1l;
192 var7 = var10;
193 goto RET_LABEL8;
194 RET_LABEL8:(void)0;
195 }
196 }
197 {
198 { /* Inline native#NativeString#new (var6,var7) on <var6:NativeString> */
199 var13 = (char*)nit_alloc(var7);
200 var11 = var13;
201 goto RET_LABEL12;
202 RET_LABEL12:(void)0;
203 }
204 }
205 var_ns = var11;
206 {
207 { /* Inline native#NativeString#[]= (var_ns,var_len,((unsigned char)0x00)) on <var_ns:NativeString> */
208 var_ns[var_len]=(unsigned char)((unsigned char)0x00);
209 RET_LABEL14:(void)0;
210 }
211 }
212 var_off = 0l;
213 {
214 var15 = core__ropes___core__ropes__Concat___core__abstract_text__Text__substrings(self);
215 }
216 var_ = var15;
217 {
218 var16 = ((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]>*/
219 }
220 var_17 = var16;
221 for(;;) {
222 {
223 var18 = ((short int(*)(val* self))((((long)var_17&3)?class_info[((long)var_17&3)]:var_17->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_17); /* is_ok on <var_17:Iterator[FlatText]>*/
224 }
225 if (var18){
226 } else {
227 goto BREAK_label;
228 }
229 {
230 var19 = ((val*(*)(val* self))((((long)var_17&3)?class_info[((long)var_17&3)]:var_17->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_17); /* item on <var_17:Iterator[FlatText]>*/
231 }
232 var_i = var19;
233 var20 = var_i->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <var_i:FlatText> */
234 var_ilen = var20;
235 /* <var_i:FlatText> isa FlatString */
236 cltype22 = type_core__FlatString.color;
237 idtype23 = type_core__FlatString.id;
238 if(cltype22 >= var_i->type->table_size) {
239 var21 = 0;
240 } else {
241 var21 = var_i->type->type_table[cltype22] == idtype23;
242 }
243 if (unlikely(!var21)) {
244 var_class_name24 = var_i == NULL ? "null" : var_i->type->name;
245 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "FlatString", var_class_name24);
246 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 100);
247 fatal_exit(1);
248 }
249 var25 = var_i->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var_i:FlatText(FlatString)> */
250 /* <var_i:FlatText> isa FlatString */
251 cltype27 = type_core__FlatString.color;
252 idtype28 = type_core__FlatString.id;
253 if(cltype27 >= var_i->type->table_size) {
254 var26 = 0;
255 } else {
256 var26 = var_i->type->type_table[cltype27] == idtype28;
257 }
258 if (unlikely(!var26)) {
259 var_class_name29 = var_i == NULL ? "null" : var_i->type->name;
260 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "FlatString", var_class_name29);
261 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 100);
262 fatal_exit(1);
263 }
264 var30 = var_i->attrs[COLOR_core__flat__FlatString___first_byte].l; /* _first_byte on <var_i:FlatText(FlatString)> */
265 {
266 { /* Inline native#NativeString#copy_to (var25,var_ns,var_ilen,var30,var_off) on <var25:NativeString> */
267 memmove(var_ns+var_off,var25+var30,var_ilen);
268 RET_LABEL31:(void)0;
269 }
270 }
271 {
272 { /* Inline kernel#Int#+ (var_off,var_ilen) on <var_off:Int> */
273 /* Covariant cast for argument 0 (i) <var_ilen:Int> isa OTHER */
274 /* <var_ilen:Int> isa OTHER */
275 var34 = 1; /* easy <var_ilen:Int> isa OTHER*/
276 if (unlikely(!var34)) {
277 var_class_name37 = type_core__Int.name;
278 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37);
279 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
280 fatal_exit(1);
281 }
282 var38 = var_off + var_ilen;
283 var32 = var38;
284 goto RET_LABEL33;
285 RET_LABEL33:(void)0;
286 }
287 }
288 var_off = var32;
289 {
290 ((void(*)(val* self))((((long)var_17&3)?class_info[((long)var_17&3)]:var_17->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_17); /* next on <var_17:Iterator[FlatText]>*/
291 }
292 }
293 BREAK_label: (void)0;
294 {
295 ((void(*)(val* self))((((long)var_17&3)?class_info[((long)var_17&3)]:var_17->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_17); /* finish on <var_17:Iterator[FlatText]>*/
296 }
297 var3 = var_ns;
298 goto RET_LABEL4;
299 RET_LABEL4:(void)0;
300 }
301 self->attrs[COLOR_core__ropes__Concat___to_cstring].str = var3; /* _to_cstring on <self:Concat> */
302 var2 = var3;
303 self->attrs[COLOR_core__ropes__Concat__lazy_32d_to_cstring].s = 1; /* lazy _to_cstring on <self:Concat> */
304 }
305 var = var2;
306 RET_LABEL:;
307 return var;
308 }
309 /* method ropes#Concat#left= for (self: Concat, String) */
310 void core__ropes___core__ropes__Concat___left_61d(val* self, val* p0) {
311 self->attrs[COLOR_core__ropes__Concat___left].val = p0; /* _left on <self:Concat> */
312 RET_LABEL:;
313 }
314 /* method ropes#Concat#right= for (self: Concat, String) */
315 void core__ropes___core__ropes__Concat___right_61d(val* self, val* p0) {
316 self->attrs[COLOR_core__ropes__Concat___right].val = p0; /* _right on <self:Concat> */
317 RET_LABEL:;
318 }
319 /* method ropes#Concat#init for (self: Concat) */
320 void core__ropes___core__ropes__Concat___core__kernel__Object__init(val* self) {
321 val* var /* : String */;
322 val* var_l /* var l: String */;
323 val* var1 /* : String */;
324 val* var_r /* var r: String */;
325 long var2 /* : Int */;
326 long var3 /* : Int */;
327 long var4 /* : Int */;
328 short int var6 /* : Bool */;
329 int cltype;
330 int idtype;
331 const char* var_class_name;
332 long var7 /* : Int */;
333 long var9 /* : Int */;
334 long var10 /* : Int */;
335 long var11 /* : Int */;
336 short int var13 /* : Bool */;
337 int cltype14;
338 int idtype15;
339 const char* var_class_name16;
340 long var17 /* : Int */;
341 {
342 ((void(*)(val* self))(self->class->vft[COLOR_core__ropes___core__ropes__Concat___core__kernel__Object__init]))(self); /* init on <self:Concat>*/
343 }
344 var = self->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <self:Concat> */
345 if (unlikely(var == NULL)) {
346 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
347 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 112);
348 fatal_exit(1);
349 }
350 var_l = var;
351 var1 = self->attrs[COLOR_core__ropes__Concat___right].val; /* _right on <self:Concat> */
352 if (unlikely(var1 == NULL)) {
353 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
354 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 113);
355 fatal_exit(1);
356 }
357 var_r = var1;
358 {
359 var2 = ((long(*)(val* self))(var_l->class->vft[COLOR_core__abstract_text__Text__length]))(var_l); /* length on <var_l:String>*/
360 }
361 {
362 var3 = ((long(*)(val* self))(var_r->class->vft[COLOR_core__abstract_text__Text__length]))(var_r); /* length on <var_r:String>*/
363 }
364 {
365 { /* Inline kernel#Int#+ (var2,var3) on <var2:Int> */
366 /* Covariant cast for argument 0 (i) <var3:Int> isa OTHER */
367 /* <var3:Int> isa OTHER */
368 var6 = 1; /* easy <var3:Int> isa OTHER*/
369 if (unlikely(!var6)) {
370 var_class_name = type_core__Int.name;
371 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
372 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
373 fatal_exit(1);
374 }
375 var7 = var2 + var3;
376 var4 = var7;
377 goto RET_LABEL5;
378 RET_LABEL5:(void)0;
379 }
380 }
381 {
382 { /* Inline ropes#Concat#length= (self,var4) on <self:Concat> */
383 self->attrs[COLOR_core__ropes__Concat___length].l = var4; /* _length on <self:Concat> */
384 RET_LABEL8:(void)0;
385 }
386 }
387 {
388 var9 = ((long(*)(val* self))(var_l->class->vft[COLOR_core__abstract_text__Text__bytelen]))(var_l); /* bytelen on <var_l:String>*/
389 }
390 {
391 var10 = ((long(*)(val* self))(var_r->class->vft[COLOR_core__abstract_text__Text__bytelen]))(var_r); /* bytelen on <var_r:String>*/
392 }
393 {
394 { /* Inline kernel#Int#+ (var9,var10) on <var9:Int> */
395 /* Covariant cast for argument 0 (i) <var10:Int> isa OTHER */
396 /* <var10:Int> isa OTHER */
397 var13 = 1; /* easy <var10:Int> isa OTHER*/
398 if (unlikely(!var13)) {
399 var_class_name16 = type_core__Int.name;
400 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16);
401 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
402 fatal_exit(1);
403 }
404 var17 = var9 + var10;
405 var11 = var17;
406 goto RET_LABEL12;
407 RET_LABEL12:(void)0;
408 }
409 }
410 self->attrs[COLOR_core__ropes__Concat___bytelen].l = var11; /* _bytelen on <self:Concat> */
411 RET_LABEL:;
412 }
413 /* method ropes#Concat#is_empty for (self: Concat): Bool */
414 short int core__ropes___core__ropes__Concat___core__abstract_text__Text__is_empty(val* self) {
415 short int var /* : Bool */;
416 long var1 /* : Int */;
417 short int var2 /* : Bool */;
418 short int var4 /* : Bool */;
419 var1 = self->attrs[COLOR_core__ropes__Concat___bytelen].l; /* _bytelen on <self:Concat> */
420 {
421 { /* Inline kernel#Int#== (var1,0l) on <var1:Int> */
422 var4 = var1 == 0l;
423 var2 = var4;
424 goto RET_LABEL3;
425 RET_LABEL3:(void)0;
426 }
427 }
428 var = var2;
429 goto RET_LABEL;
430 RET_LABEL:;
431 return var;
432 }
433 /* method ropes#Concat#* for (self: Concat, Int): String */
434 val* core__ropes___core__ropes__Concat___core__abstract_text__String___42d(val* self, long p0) {
435 val* var /* : String */;
436 long var_i /* var i: Int */;
437 val* var_x /* var x: String */;
438 long var_j /* var j: Int */;
439 long var_ /* var : Int */;
440 short int var1 /* : Bool */;
441 short int var3 /* : Bool */;
442 int cltype;
443 int idtype;
444 const char* var_class_name;
445 short int var4 /* : Bool */;
446 val* var5 /* : String */;
447 long var6 /* : Int */;
448 var_i = p0;
449 var_x = self;
450 var_j = 1l;
451 var_ = var_i;
452 for(;;) {
453 {
454 { /* Inline kernel#Int#< (var_j,var_) on <var_j:Int> */
455 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
456 /* <var_:Int> isa OTHER */
457 var3 = 1; /* easy <var_:Int> isa OTHER*/
458 if (unlikely(!var3)) {
459 var_class_name = type_core__Int.name;
460 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
461 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
462 fatal_exit(1);
463 }
464 var4 = var_j < var_;
465 var1 = var4;
466 goto RET_LABEL2;
467 RET_LABEL2:(void)0;
468 }
469 }
470 if (var1){
471 } else {
472 goto BREAK_label;
473 }
474 {
475 var5 = ((val*(*)(val* self, val* p0))(var_x->class->vft[COLOR_core__abstract_text__String___43d]))(var_x, self); /* + on <var_x:String>*/
476 }
477 var_x = var5;
478 {
479 var6 = core___core__Int___Discrete__successor(var_j, 1l);
480 }
481 var_j = var6;
482 }
483 BREAK_label: (void)0;
484 var = var_x;
485 goto RET_LABEL;
486 RET_LABEL:;
487 return var;
488 }
489 /* method ropes#Concat#[] for (self: Concat, Int): Char */
490 uint32_t core__ropes___core__ropes__Concat___core__abstract_text__Text___91d_93d(val* self, long p0) {
491 uint32_t var /* : Char */;
492 long var_i /* var i: Int */;
493 short int var1 /* : Bool */;
494 short int var2 /* : Bool */;
495 short int var4 /* : Bool */;
496 int cltype;
497 int idtype;
498 const char* var_class_name;
499 short int var5 /* : Bool */;
500 short int var_ /* var : Bool */;
501 long var6 /* : Int */;
502 short int var7 /* : Bool */;
503 short int var9 /* : Bool */;
504 int cltype10;
505 int idtype11;
506 const char* var_class_name12;
507 short int var13 /* : Bool */;
508 long var14 /* : Int */;
509 long var_flps /* var flps: Int */;
510 short int var15 /* : Bool */;
511 short int var16 /* : Bool */;
512 long var17 /* : Int */;
513 long var19 /* : Int */;
514 short int var20 /* : Bool */;
515 short int var22 /* : Bool */;
516 short int var23 /* : Bool */;
517 short int var_24 /* var : Bool */;
518 short int var25 /* : Bool */;
519 short int var27 /* : Bool */;
520 int cltype28;
521 int idtype29;
522 const char* var_class_name30;
523 short int var31 /* : Bool */;
524 short int var_32 /* var : Bool */;
525 long var33 /* : Int */;
526 short int var34 /* : Bool */;
527 short int var36 /* : Bool */;
528 int cltype37;
529 int idtype38;
530 const char* var_class_name39;
531 short int var40 /* : Bool */;
532 val* var41 /* : FlatString */;
533 long var42 /* : Int */;
534 short int var44 /* : Bool */;
535 int cltype45;
536 int idtype46;
537 const char* var_class_name47;
538 long var48 /* : Int */;
539 uint32_t var49 /* : Char */;
540 val* var50 /* : FlatString */;
541 val* var_lf /* var lf: FlatString */;
542 long var51 /* : Int */;
543 long var52 /* : Int */;
544 short int var54 /* : Bool */;
545 int cltype55;
546 int idtype56;
547 const char* var_class_name57;
548 long var58 /* : Int */;
549 uint32_t var59 /* : Char */;
550 var_i = p0;
551 {
552 { /* Inline kernel#Int#>= (var_i,0l) on <var_i:Int> */
553 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
554 /* <0l:Int> isa OTHER */
555 var4 = 1; /* easy <0l:Int> isa OTHER*/
556 if (unlikely(!var4)) {
557 var_class_name = type_core__Int.name;
558 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
559 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
560 fatal_exit(1);
561 }
562 var5 = var_i >= 0l;
563 var2 = var5;
564 goto RET_LABEL3;
565 RET_LABEL3:(void)0;
566 }
567 }
568 var_ = var2;
569 if (var2){
570 var6 = self->attrs[COLOR_core__ropes__Concat___length].l; /* _length on <self:Concat> */
571 {
572 { /* Inline kernel#Int#<= (var_i,var6) on <var_i:Int> */
573 /* Covariant cast for argument 0 (i) <var6:Int> isa OTHER */
574 /* <var6:Int> isa OTHER */
575 var9 = 1; /* easy <var6:Int> isa OTHER*/
576 if (unlikely(!var9)) {
577 var_class_name12 = type_core__Int.name;
578 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name12);
579 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
580 fatal_exit(1);
581 }
582 var13 = var_i <= var6;
583 var7 = var13;
584 goto RET_LABEL8;
585 RET_LABEL8:(void)0;
586 }
587 }
588 var1 = var7;
589 } else {
590 var1 = var_;
591 }
592 if (unlikely(!var1)) {
593 PRINT_ERROR("Runtime error: %s", "Assert failed");
594 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 134);
595 fatal_exit(1);
596 }
597 var14 = self->attrs[COLOR_core__ropes__Concat___flat_last_pos_start].l; /* _flat_last_pos_start on <self:Concat> */
598 var_flps = var14;
599 {
600 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
601 var19 = -1l;
602 var17 = var19;
603 goto RET_LABEL18;
604 RET_LABEL18:(void)0;
605 }
606 }
607 {
608 { /* Inline kernel#Int#!= (var_flps,var17) on <var_flps:Int> */
609 var22 = var_flps == var17;
610 var23 = !var22;
611 var20 = var23;
612 goto RET_LABEL21;
613 RET_LABEL21:(void)0;
614 }
615 }
616 var_24 = var20;
617 if (var20){
618 {
619 { /* Inline kernel#Int#>= (var_i,var_flps) on <var_i:Int> */
620 /* Covariant cast for argument 0 (i) <var_flps:Int> isa OTHER */
621 /* <var_flps:Int> isa OTHER */
622 var27 = 1; /* easy <var_flps:Int> isa OTHER*/
623 if (unlikely(!var27)) {
624 var_class_name30 = type_core__Int.name;
625 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30);
626 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
627 fatal_exit(1);
628 }
629 var31 = var_i >= var_flps;
630 var25 = var31;
631 goto RET_LABEL26;
632 RET_LABEL26:(void)0;
633 }
634 }
635 var16 = var25;
636 } else {
637 var16 = var_24;
638 }
639 var_32 = var16;
640 if (var16){
641 var33 = self->attrs[COLOR_core__ropes__Concat___flat_last_pos_end].l; /* _flat_last_pos_end on <self:Concat> */
642 {
643 { /* Inline kernel#Int#<= (var_i,var33) on <var_i:Int> */
644 /* Covariant cast for argument 0 (i) <var33:Int> isa OTHER */
645 /* <var33:Int> isa OTHER */
646 var36 = 1; /* easy <var33:Int> isa OTHER*/
647 if (unlikely(!var36)) {
648 var_class_name39 = type_core__Int.name;
649 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name39);
650 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
651 fatal_exit(1);
652 }
653 var40 = var_i <= var33;
654 var34 = var40;
655 goto RET_LABEL35;
656 RET_LABEL35:(void)0;
657 }
658 }
659 var15 = var34;
660 } else {
661 var15 = var_32;
662 }
663 if (var15){
664 var41 = self->attrs[COLOR_core__ropes__Concat___flat_cache].val; /* _flat_cache on <self:Concat> */
665 if (unlikely(var41 == NULL)) {
666 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flat_cache");
667 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 137);
668 fatal_exit(1);
669 }
670 {
671 { /* Inline kernel#Int#- (var_i,var_flps) on <var_i:Int> */
672 /* Covariant cast for argument 0 (i) <var_flps:Int> isa OTHER */
673 /* <var_flps:Int> isa OTHER */
674 var44 = 1; /* easy <var_flps:Int> isa OTHER*/
675 if (unlikely(!var44)) {
676 var_class_name47 = type_core__Int.name;
677 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name47);
678 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
679 fatal_exit(1);
680 }
681 var48 = var_i - var_flps;
682 var42 = var48;
683 goto RET_LABEL43;
684 RET_LABEL43:(void)0;
685 }
686 }
687 {
688 var49 = core__flat___FlatText___fetch_char_at(var41, var42);
689 }
690 var = var49;
691 goto RET_LABEL;
692 } else {
693 }
694 {
695 var50 = core__ropes___core__ropes__Concat___get_leaf_at(self, var_i);
696 }
697 var_lf = var50;
698 var51 = self->attrs[COLOR_core__ropes__Concat___flat_last_pos_start].l; /* _flat_last_pos_start on <self:Concat> */
699 {
700 { /* Inline kernel#Int#- (var_i,var51) on <var_i:Int> */
701 /* Covariant cast for argument 0 (i) <var51:Int> isa OTHER */
702 /* <var51:Int> isa OTHER */
703 var54 = 1; /* easy <var51:Int> isa OTHER*/
704 if (unlikely(!var54)) {
705 var_class_name57 = type_core__Int.name;
706 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name57);
707 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
708 fatal_exit(1);
709 }
710 var58 = var_i - var51;
711 var52 = var58;
712 goto RET_LABEL53;
713 RET_LABEL53:(void)0;
714 }
715 }
716 {
717 var59 = core__flat___FlatText___fetch_char_at(var_lf, var52);
718 }
719 var = var59;
720 goto RET_LABEL;
721 RET_LABEL:;
722 return var;
723 }
724 /* method ropes#Concat#get_leaf_at for (self: Concat, Int): FlatString */
725 val* core__ropes___core__ropes__Concat___get_leaf_at(val* self, long p0) {
726 val* var /* : FlatString */;
727 long var_pos /* var pos: Int */;
728 long var1 /* : Int */;
729 long var_flps /* var flps: Int */;
730 short int var2 /* : Bool */;
731 short int var3 /* : Bool */;
732 long var4 /* : Int */;
733 long var6 /* : Int */;
734 short int var7 /* : Bool */;
735 short int var9 /* : Bool */;
736 short int var10 /* : Bool */;
737 short int var_ /* var : Bool */;
738 short int var11 /* : Bool */;
739 short int var13 /* : Bool */;
740 int cltype;
741 int idtype;
742 const char* var_class_name;
743 short int var14 /* : Bool */;
744 short int var_15 /* var : Bool */;
745 long var16 /* : Int */;
746 short int var17 /* : Bool */;
747 short int var19 /* : Bool */;
748 int cltype20;
749 int idtype21;
750 const char* var_class_name22;
751 short int var23 /* : Bool */;
752 val* var24 /* : FlatString */;
753 val* var_s /* var s: String */;
754 long var_st /* var st: Int */;
755 short int var25 /* : Bool */;
756 int cltype26;
757 int idtype27;
758 short int var28 /* : Bool */;
759 int cltype29;
760 int idtype30;
761 const char* var_class_name31;
762 val* var32 /* : String */;
763 val* var_lft /* var lft: String */;
764 long var33 /* : Int */;
765 long var_llen /* var llen: Int */;
766 short int var34 /* : Bool */;
767 short int var36 /* : Bool */;
768 int cltype37;
769 int idtype38;
770 const char* var_class_name39;
771 short int var40 /* : Bool */;
772 val* var41 /* : String */;
773 long var42 /* : Int */;
774 short int var44 /* : Bool */;
775 int cltype45;
776 int idtype46;
777 const char* var_class_name47;
778 long var48 /* : Int */;
779 long var49 /* : Int */;
780 short int var51 /* : Bool */;
781 int cltype52;
782 int idtype53;
783 const char* var_class_name54;
784 long var55 /* : Int */;
785 long var56 /* : Int */;
786 short int var58 /* : Bool */;
787 int cltype59;
788 int idtype60;
789 const char* var_class_name61;
790 long var62 /* : Int */;
791 long var63 /* : Int */;
792 long var65 /* : Int */;
793 long var66 /* : Int */;
794 short int var68 /* : Bool */;
795 int cltype69;
796 int idtype70;
797 const char* var_class_name71;
798 long var72 /* : Int */;
799 long var73 /* : Int */;
800 short int var75 /* : Bool */;
801 int cltype76;
802 int idtype77;
803 const char* var_class_name78;
804 long var79 /* : Int */;
805 var_pos = p0;
806 var1 = self->attrs[COLOR_core__ropes__Concat___flat_last_pos_start].l; /* _flat_last_pos_start on <self:Concat> */
807 var_flps = var1;
808 {
809 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
810 var6 = -1l;
811 var4 = var6;
812 goto RET_LABEL5;
813 RET_LABEL5:(void)0;
814 }
815 }
816 {
817 { /* Inline kernel#Int#!= (var_flps,var4) on <var_flps:Int> */
818 var9 = var_flps == var4;
819 var10 = !var9;
820 var7 = var10;
821 goto RET_LABEL8;
822 RET_LABEL8:(void)0;
823 }
824 }
825 var_ = var7;
826 if (var7){
827 {
828 { /* Inline kernel#Int#>= (var_pos,var_flps) on <var_pos:Int> */
829 /* Covariant cast for argument 0 (i) <var_flps:Int> isa OTHER */
830 /* <var_flps:Int> isa OTHER */
831 var13 = 1; /* easy <var_flps:Int> isa OTHER*/
832 if (unlikely(!var13)) {
833 var_class_name = type_core__Int.name;
834 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
835 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
836 fatal_exit(1);
837 }
838 var14 = var_pos >= var_flps;
839 var11 = var14;
840 goto RET_LABEL12;
841 RET_LABEL12:(void)0;
842 }
843 }
844 var3 = var11;
845 } else {
846 var3 = var_;
847 }
848 var_15 = var3;
849 if (var3){
850 var16 = self->attrs[COLOR_core__ropes__Concat___flat_last_pos_end].l; /* _flat_last_pos_end on <self:Concat> */
851 {
852 { /* Inline kernel#Int#<= (var_pos,var16) on <var_pos:Int> */
853 /* Covariant cast for argument 0 (i) <var16:Int> isa OTHER */
854 /* <var16:Int> isa OTHER */
855 var19 = 1; /* easy <var16:Int> isa OTHER*/
856 if (unlikely(!var19)) {
857 var_class_name22 = type_core__Int.name;
858 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22);
859 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
860 fatal_exit(1);
861 }
862 var23 = var_pos <= var16;
863 var17 = var23;
864 goto RET_LABEL18;
865 RET_LABEL18:(void)0;
866 }
867 }
868 var2 = var17;
869 } else {
870 var2 = var_15;
871 }
872 if (var2){
873 var24 = self->attrs[COLOR_core__ropes__Concat___flat_cache].val; /* _flat_cache on <self:Concat> */
874 if (unlikely(var24 == NULL)) {
875 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flat_cache");
876 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 146);
877 fatal_exit(1);
878 }
879 var = var24;
880 goto RET_LABEL;
881 } else {
882 }
883 var_s = self;
884 var_st = var_pos;
885 for(;;) {
886 /* <var_s:String> isa FlatString */
887 cltype26 = type_core__FlatString.color;
888 idtype27 = type_core__FlatString.id;
889 if(cltype26 >= var_s->type->table_size) {
890 var25 = 0;
891 } else {
892 var25 = var_s->type->type_table[cltype26] == idtype27;
893 }
894 if (var25){
895 goto BREAK_label;
896 } else {
897 }
898 /* <var_s:String> isa Concat */
899 cltype29 = type_core__ropes__Concat.color;
900 idtype30 = type_core__ropes__Concat.id;
901 if(cltype29 >= var_s->type->table_size) {
902 var28 = 0;
903 } else {
904 var28 = var_s->type->type_table[cltype29] == idtype30;
905 }
906 if (unlikely(!var28)) {
907 var_class_name31 = var_s == NULL ? "null" : var_s->type->name;
908 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Concat", var_class_name31);
909 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 152);
910 fatal_exit(1);
911 }
912 var_s = var_s;
913 var32 = var_s->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <var_s:String(Concat)> */
914 if (unlikely(var32 == NULL)) {
915 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
916 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 153);
917 fatal_exit(1);
918 }
919 var_lft = var32;
920 {
921 var33 = ((long(*)(val* self))(var_lft->class->vft[COLOR_core__abstract_text__Text__length]))(var_lft); /* length on <var_lft:String>*/
922 }
923 var_llen = var33;
924 {
925 { /* Inline kernel#Int#>= (var_pos,var_llen) on <var_pos:Int> */
926 /* Covariant cast for argument 0 (i) <var_llen:Int> isa OTHER */
927 /* <var_llen:Int> isa OTHER */
928 var36 = 1; /* easy <var_llen:Int> isa OTHER*/
929 if (unlikely(!var36)) {
930 var_class_name39 = type_core__Int.name;
931 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name39);
932 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
933 fatal_exit(1);
934 }
935 var40 = var_pos >= var_llen;
936 var34 = var40;
937 goto RET_LABEL35;
938 RET_LABEL35:(void)0;
939 }
940 }
941 if (var34){
942 var41 = var_s->attrs[COLOR_core__ropes__Concat___right].val; /* _right on <var_s:String(Concat)> */
943 if (unlikely(var41 == NULL)) {
944 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
945 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 156);
946 fatal_exit(1);
947 }
948 var_s = var41;
949 {
950 { /* Inline kernel#Int#- (var_pos,var_llen) on <var_pos:Int> */
951 /* Covariant cast for argument 0 (i) <var_llen:Int> isa OTHER */
952 /* <var_llen:Int> isa OTHER */
953 var44 = 1; /* easy <var_llen:Int> isa OTHER*/
954 if (unlikely(!var44)) {
955 var_class_name47 = type_core__Int.name;
956 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name47);
957 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
958 fatal_exit(1);
959 }
960 var48 = var_pos - var_llen;
961 var42 = var48;
962 goto RET_LABEL43;
963 RET_LABEL43:(void)0;
964 }
965 }
966 var_pos = var42;
967 } else {
968 var_s = var_lft;
969 }
970 }
971 BREAK_label: (void)0;
972 {
973 { /* Inline kernel#Int#- (var_st,var_pos) on <var_st:Int> */
974 /* Covariant cast for argument 0 (i) <var_pos:Int> isa OTHER */
975 /* <var_pos:Int> isa OTHER */
976 var51 = 1; /* easy <var_pos:Int> isa OTHER*/
977 if (unlikely(!var51)) {
978 var_class_name54 = type_core__Int.name;
979 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name54);
980 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
981 fatal_exit(1);
982 }
983 var55 = var_st - var_pos;
984 var49 = var55;
985 goto RET_LABEL50;
986 RET_LABEL50:(void)0;
987 }
988 }
989 self->attrs[COLOR_core__ropes__Concat___flat_last_pos_start].l = var49; /* _flat_last_pos_start on <self:Concat> */
990 {
991 { /* Inline kernel#Int#- (var_st,var_pos) on <var_st:Int> */
992 /* Covariant cast for argument 0 (i) <var_pos:Int> isa OTHER */
993 /* <var_pos:Int> isa OTHER */
994 var58 = 1; /* easy <var_pos:Int> isa OTHER*/
995 if (unlikely(!var58)) {
996 var_class_name61 = type_core__Int.name;
997 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name61);
998 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
999 fatal_exit(1);
1000 }
1001 var62 = var_st - var_pos;
1002 var56 = var62;
1003 goto RET_LABEL57;
1004 RET_LABEL57:(void)0;
1005 }
1006 }
1007 {
1008 { /* Inline abstract_text#FlatText#length (var_s) on <var_s:String(FlatString)> */
1009 var65 = var_s->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <var_s:String(FlatString)> */
1010 var63 = var65;
1011 RET_LABEL64:(void)0;
1012 }
1013 }
1014 {
1015 { /* Inline kernel#Int#+ (var56,var63) on <var56:Int> */
1016 /* Covariant cast for argument 0 (i) <var63:Int> isa OTHER */
1017 /* <var63:Int> isa OTHER */
1018 var68 = 1; /* easy <var63:Int> isa OTHER*/
1019 if (unlikely(!var68)) {
1020 var_class_name71 = type_core__Int.name;
1021 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name71);
1022 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1023 fatal_exit(1);
1024 }
1025 var72 = var56 + var63;
1026 var66 = var72;
1027 goto RET_LABEL67;
1028 RET_LABEL67:(void)0;
1029 }
1030 }
1031 {
1032 { /* Inline kernel#Int#- (var66,1l) on <var66:Int> */
1033 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1034 /* <1l:Int> isa OTHER */
1035 var75 = 1; /* easy <1l:Int> isa OTHER*/
1036 if (unlikely(!var75)) {
1037 var_class_name78 = type_core__Int.name;
1038 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name78);
1039 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
1040 fatal_exit(1);
1041 }
1042 var79 = var66 - 1l;
1043 var73 = var79;
1044 goto RET_LABEL74;
1045 RET_LABEL74:(void)0;
1046 }
1047 }
1048 self->attrs[COLOR_core__ropes__Concat___flat_last_pos_end].l = var73; /* _flat_last_pos_end on <self:Concat> */
1049 self->attrs[COLOR_core__ropes__Concat___flat_cache].val = var_s; /* _flat_cache on <self:Concat> */
1050 var = var_s;
1051 goto RET_LABEL;
1052 RET_LABEL:;
1053 return var;
1054 }
1055 /* method ropes#Concat#substring for (self: Concat, Int, Int): String */
1056 val* core__ropes___core__ropes__Concat___core__abstract_text__Text__substring(val* self, long p0, long p1) {
1057 val* var /* : String */;
1058 long var_from /* var from: Int */;
1059 long var_count /* var count: Int */;
1060 short int var1 /* : Bool */;
1061 short int var3 /* : Bool */;
1062 int cltype;
1063 int idtype;
1064 const char* var_class_name;
1065 short int var4 /* : Bool */;
1066 long var5 /* : Int */;
1067 short int var7 /* : Bool */;
1068 int cltype8;
1069 int idtype9;
1070 const char* var_class_name10;
1071 long var11 /* : Int */;
1072 short int var12 /* : Bool */;
1073 short int var14 /* : Bool */;
1074 int cltype15;
1075 int idtype16;
1076 const char* var_class_name17;
1077 short int var18 /* : Bool */;
1078 static val* varonce;
1079 val* var19 /* : String */;
1080 char* var20 /* : NativeString */;
1081 val* var21 /* : String */;
1082 long var22 /* : Int */;
1083 long var24 /* : Int */;
1084 long var_ln /* var ln: Int */;
1085 long var25 /* : Int */;
1086 short int var27 /* : Bool */;
1087 int cltype28;
1088 int idtype29;
1089 const char* var_class_name30;
1090 long var31 /* : Int */;
1091 short int var32 /* : Bool */;
1092 short int var34 /* : Bool */;
1093 int cltype35;
1094 int idtype36;
1095 const char* var_class_name37;
1096 short int var38 /* : Bool */;
1097 long var39 /* : Int */;
1098 short int var41 /* : Bool */;
1099 int cltype42;
1100 int idtype43;
1101 const char* var_class_name44;
1102 long var45 /* : Int */;
1103 short int var46 /* : Bool */;
1104 short int var48 /* : Bool */;
1105 int cltype49;
1106 int idtype50;
1107 const char* var_class_name51;
1108 short int var52 /* : Bool */;
1109 static val* varonce53;
1110 val* var54 /* : String */;
1111 char* var55 /* : NativeString */;
1112 val* var56 /* : String */;
1113 long var57 /* : Int */;
1114 short int var59 /* : Bool */;
1115 int cltype60;
1116 int idtype61;
1117 const char* var_class_name62;
1118 long var63 /* : Int */;
1119 long var64 /* : Int */;
1120 short int var66 /* : Bool */;
1121 int cltype67;
1122 int idtype68;
1123 const char* var_class_name69;
1124 long var70 /* : Int */;
1125 long var_end_index /* var end_index: Int */;
1126 long var71 /* : Int */;
1127 long var_flps /* var flps: Int */;
1128 short int var72 /* : Bool */;
1129 short int var73 /* : Bool */;
1130 long var74 /* : Int */;
1131 long var76 /* : Int */;
1132 short int var77 /* : Bool */;
1133 short int var79 /* : Bool */;
1134 short int var80 /* : Bool */;
1135 short int var_ /* var : Bool */;
1136 short int var81 /* : Bool */;
1137 short int var83 /* : Bool */;
1138 int cltype84;
1139 int idtype85;
1140 const char* var_class_name86;
1141 short int var87 /* : Bool */;
1142 short int var_88 /* var : Bool */;
1143 long var89 /* : Int */;
1144 short int var90 /* : Bool */;
1145 short int var92 /* : Bool */;
1146 int cltype93;
1147 int idtype94;
1148 const char* var_class_name95;
1149 short int var96 /* : Bool */;
1150 val* var97 /* : FlatString */;
1151 long var98 /* : Int */;
1152 short int var100 /* : Bool */;
1153 int cltype101;
1154 int idtype102;
1155 const char* var_class_name103;
1156 long var104 /* : Int */;
1157 long var105 /* : Int */;
1158 short int var107 /* : Bool */;
1159 int cltype108;
1160 int idtype109;
1161 const char* var_class_name110;
1162 long var111 /* : Int */;
1163 val* var112 /* : String */;
1164 val* var113 /* : String */;
1165 val* var_lft /* var lft: String */;
1166 long var114 /* : Int */;
1167 long var_llen /* var llen: Int */;
1168 short int var115 /* : Bool */;
1169 short int var117 /* : Bool */;
1170 int cltype118;
1171 int idtype119;
1172 const char* var_class_name120;
1173 short int var121 /* : Bool */;
1174 long var122 /* : Int */;
1175 short int var124 /* : Bool */;
1176 int cltype125;
1177 int idtype126;
1178 const char* var_class_name127;
1179 long var128 /* : Int */;
1180 short int var129 /* : Bool */;
1181 short int var131 /* : Bool */;
1182 int cltype132;
1183 int idtype133;
1184 const char* var_class_name134;
1185 short int var135 /* : Bool */;
1186 val* var136 /* : Text */;
1187 long var137 /* : Int */;
1188 short int var139 /* : Bool */;
1189 int cltype140;
1190 int idtype141;
1191 const char* var_class_name142;
1192 long var143 /* : Int */;
1193 long var_lsublen /* var lsublen: Int */;
1194 val* var144 /* : Text */;
1195 val* var145 /* : String */;
1196 long var146 /* : Int */;
1197 short int var148 /* : Bool */;
1198 int cltype149;
1199 int idtype150;
1200 const char* var_class_name151;
1201 long var152 /* : Int */;
1202 val* var153 /* : Text */;
1203 val* var154 /* : String */;
1204 val* var155 /* : String */;
1205 long var156 /* : Int */;
1206 short int var158 /* : Bool */;
1207 int cltype159;
1208 int idtype160;
1209 const char* var_class_name161;
1210 long var162 /* : Int */;
1211 val* var163 /* : Text */;
1212 var_from = p0;
1213 var_count = p1;
1214 {
1215 { /* Inline kernel#Int#< (var_from,0l) on <var_from:Int> */
1216 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1217 /* <0l:Int> isa OTHER */
1218 var3 = 1; /* easy <0l:Int> isa OTHER*/
1219 if (unlikely(!var3)) {
1220 var_class_name = type_core__Int.name;
1221 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1222 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1223 fatal_exit(1);
1224 }
1225 var4 = var_from < 0l;
1226 var1 = var4;
1227 goto RET_LABEL2;
1228 RET_LABEL2:(void)0;
1229 }
1230 }
1231 if (var1){
1232 {
1233 { /* Inline kernel#Int#+ (var_count,var_from) on <var_count:Int> */
1234 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
1235 /* <var_from:Int> isa OTHER */
1236 var7 = 1; /* easy <var_from:Int> isa OTHER*/
1237 if (unlikely(!var7)) {
1238 var_class_name10 = type_core__Int.name;
1239 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name10);
1240 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1241 fatal_exit(1);
1242 }
1243 var11 = var_count + var_from;
1244 var5 = var11;
1245 goto RET_LABEL6;
1246 RET_LABEL6:(void)0;
1247 }
1248 }
1249 var_count = var5;
1250 {
1251 { /* Inline kernel#Int#< (var_count,0l) on <var_count:Int> */
1252 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1253 /* <0l:Int> isa OTHER */
1254 var14 = 1; /* easy <0l:Int> isa OTHER*/
1255 if (unlikely(!var14)) {
1256 var_class_name17 = type_core__Int.name;
1257 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
1258 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1259 fatal_exit(1);
1260 }
1261 var18 = var_count < 0l;
1262 var12 = var18;
1263 goto RET_LABEL13;
1264 RET_LABEL13:(void)0;
1265 }
1266 }
1267 if (var12){
1268 if (likely(varonce!=NULL)) {
1269 var19 = varonce;
1270 } else {
1271 var20 = "";
1272 var21 = core__flat___NativeString___to_s_full(var20, 0l, 0l);
1273 var19 = var21;
1274 varonce = var19;
1275 }
1276 var = var19;
1277 goto RET_LABEL;
1278 } else {
1279 }
1280 var_from = 0l;
1281 } else {
1282 }
1283 {
1284 { /* Inline ropes#Concat#length (self) on <self:Concat> */
1285 var24 = self->attrs[COLOR_core__ropes__Concat___length].l; /* _length on <self:Concat> */
1286 var22 = var24;
1287 RET_LABEL23:(void)0;
1288 }
1289 }
1290 var_ln = var22;
1291 {
1292 { /* Inline kernel#Int#+ (var_count,var_from) on <var_count:Int> */
1293 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
1294 /* <var_from:Int> isa OTHER */
1295 var27 = 1; /* easy <var_from:Int> isa OTHER*/
1296 if (unlikely(!var27)) {
1297 var_class_name30 = type_core__Int.name;
1298 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30);
1299 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1300 fatal_exit(1);
1301 }
1302 var31 = var_count + var_from;
1303 var25 = var31;
1304 goto RET_LABEL26;
1305 RET_LABEL26:(void)0;
1306 }
1307 }
1308 {
1309 { /* Inline kernel#Int#> (var25,var_ln) on <var25:Int> */
1310 /* Covariant cast for argument 0 (i) <var_ln:Int> isa OTHER */
1311 /* <var_ln:Int> isa OTHER */
1312 var34 = 1; /* easy <var_ln:Int> isa OTHER*/
1313 if (unlikely(!var34)) {
1314 var_class_name37 = type_core__Int.name;
1315 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37);
1316 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
1317 fatal_exit(1);
1318 }
1319 var38 = var25 > var_ln;
1320 var32 = var38;
1321 goto RET_LABEL33;
1322 RET_LABEL33:(void)0;
1323 }
1324 }
1325 if (var32){
1326 {
1327 { /* Inline kernel#Int#- (var_ln,var_from) on <var_ln:Int> */
1328 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
1329 /* <var_from:Int> isa OTHER */
1330 var41 = 1; /* easy <var_from:Int> isa OTHER*/
1331 if (unlikely(!var41)) {
1332 var_class_name44 = type_core__Int.name;
1333 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name44);
1334 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
1335 fatal_exit(1);
1336 }
1337 var45 = var_ln - var_from;
1338 var39 = var45;
1339 goto RET_LABEL40;
1340 RET_LABEL40:(void)0;
1341 }
1342 }
1343 var_count = var39;
1344 } else {
1345 }
1346 {
1347 { /* Inline kernel#Int#<= (var_count,0l) on <var_count:Int> */
1348 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1349 /* <0l:Int> isa OTHER */
1350 var48 = 1; /* easy <0l:Int> isa OTHER*/
1351 if (unlikely(!var48)) {
1352 var_class_name51 = type_core__Int.name;
1353 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name51);
1354 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
1355 fatal_exit(1);
1356 }
1357 var52 = var_count <= 0l;
1358 var46 = var52;
1359 goto RET_LABEL47;
1360 RET_LABEL47:(void)0;
1361 }
1362 }
1363 if (var46){
1364 if (likely(varonce53!=NULL)) {
1365 var54 = varonce53;
1366 } else {
1367 var55 = "";
1368 var56 = core__flat___NativeString___to_s_full(var55, 0l, 0l);
1369 var54 = var56;
1370 varonce53 = var54;
1371 }
1372 var = var54;
1373 goto RET_LABEL;
1374 } else {
1375 }
1376 {
1377 { /* Inline kernel#Int#+ (var_from,var_count) on <var_from:Int> */
1378 /* Covariant cast for argument 0 (i) <var_count:Int> isa OTHER */
1379 /* <var_count:Int> isa OTHER */
1380 var59 = 1; /* easy <var_count:Int> isa OTHER*/
1381 if (unlikely(!var59)) {
1382 var_class_name62 = type_core__Int.name;
1383 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name62);
1384 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1385 fatal_exit(1);
1386 }
1387 var63 = var_from + var_count;
1388 var57 = var63;
1389 goto RET_LABEL58;
1390 RET_LABEL58:(void)0;
1391 }
1392 }
1393 {
1394 { /* Inline kernel#Int#- (var57,1l) on <var57:Int> */
1395 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1396 /* <1l:Int> isa OTHER */
1397 var66 = 1; /* easy <1l:Int> isa OTHER*/
1398 if (unlikely(!var66)) {
1399 var_class_name69 = type_core__Int.name;
1400 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name69);
1401 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
1402 fatal_exit(1);
1403 }
1404 var70 = var57 - 1l;
1405 var64 = var70;
1406 goto RET_LABEL65;
1407 RET_LABEL65:(void)0;
1408 }
1409 }
1410 var_end_index = var64;
1411 var71 = self->attrs[COLOR_core__ropes__Concat___flat_last_pos_start].l; /* _flat_last_pos_start on <self:Concat> */
1412 var_flps = var71;
1413 {
1414 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
1415 var76 = -1l;
1416 var74 = var76;
1417 goto RET_LABEL75;
1418 RET_LABEL75:(void)0;
1419 }
1420 }
1421 {
1422 { /* Inline kernel#Int#!= (var_flps,var74) on <var_flps:Int> */
1423 var79 = var_flps == var74;
1424 var80 = !var79;
1425 var77 = var80;
1426 goto RET_LABEL78;
1427 RET_LABEL78:(void)0;
1428 }
1429 }
1430 var_ = var77;
1431 if (var77){
1432 {
1433 { /* Inline kernel#Int#>= (var_from,var_flps) on <var_from:Int> */
1434 /* Covariant cast for argument 0 (i) <var_flps:Int> isa OTHER */
1435 /* <var_flps:Int> isa OTHER */
1436 var83 = 1; /* easy <var_flps:Int> isa OTHER*/
1437 if (unlikely(!var83)) {
1438 var_class_name86 = type_core__Int.name;
1439 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name86);
1440 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
1441 fatal_exit(1);
1442 }
1443 var87 = var_from >= var_flps;
1444 var81 = var87;
1445 goto RET_LABEL82;
1446 RET_LABEL82:(void)0;
1447 }
1448 }
1449 var73 = var81;
1450 } else {
1451 var73 = var_;
1452 }
1453 var_88 = var73;
1454 if (var73){
1455 var89 = self->attrs[COLOR_core__ropes__Concat___flat_last_pos_end].l; /* _flat_last_pos_end on <self:Concat> */
1456 {
1457 { /* Inline kernel#Int#<= (var_end_index,var89) on <var_end_index:Int> */
1458 /* Covariant cast for argument 0 (i) <var89:Int> isa OTHER */
1459 /* <var89:Int> isa OTHER */
1460 var92 = 1; /* easy <var89:Int> isa OTHER*/
1461 if (unlikely(!var92)) {
1462 var_class_name95 = type_core__Int.name;
1463 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name95);
1464 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
1465 fatal_exit(1);
1466 }
1467 var96 = var_end_index <= var89;
1468 var90 = var96;
1469 goto RET_LABEL91;
1470 RET_LABEL91:(void)0;
1471 }
1472 }
1473 var72 = var90;
1474 } else {
1475 var72 = var_88;
1476 }
1477 if (var72){
1478 var97 = self->attrs[COLOR_core__ropes__Concat___flat_cache].val; /* _flat_cache on <self:Concat> */
1479 if (unlikely(var97 == NULL)) {
1480 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flat_cache");
1481 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 182);
1482 fatal_exit(1);
1483 }
1484 {
1485 { /* Inline kernel#Int#- (var_from,var_flps) on <var_from:Int> */
1486 /* Covariant cast for argument 0 (i) <var_flps:Int> isa OTHER */
1487 /* <var_flps:Int> isa OTHER */
1488 var100 = 1; /* easy <var_flps:Int> isa OTHER*/
1489 if (unlikely(!var100)) {
1490 var_class_name103 = type_core__Int.name;
1491 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name103);
1492 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
1493 fatal_exit(1);
1494 }
1495 var104 = var_from - var_flps;
1496 var98 = var104;
1497 goto RET_LABEL99;
1498 RET_LABEL99:(void)0;
1499 }
1500 }
1501 {
1502 { /* Inline kernel#Int#- (var_end_index,var_flps) on <var_end_index:Int> */
1503 /* Covariant cast for argument 0 (i) <var_flps:Int> isa OTHER */
1504 /* <var_flps:Int> isa OTHER */
1505 var107 = 1; /* easy <var_flps:Int> isa OTHER*/
1506 if (unlikely(!var107)) {
1507 var_class_name110 = type_core__Int.name;
1508 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name110);
1509 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
1510 fatal_exit(1);
1511 }
1512 var111 = var_end_index - var_flps;
1513 var105 = var111;
1514 goto RET_LABEL106;
1515 RET_LABEL106:(void)0;
1516 }
1517 }
1518 {
1519 var112 = core___core__FlatString___substring_impl(var97, var98, var_count, var105);
1520 }
1521 var = var112;
1522 goto RET_LABEL;
1523 } else {
1524 }
1525 var113 = self->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <self:Concat> */
1526 if (unlikely(var113 == NULL)) {
1527 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
1528 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 185);
1529 fatal_exit(1);
1530 }
1531 var_lft = var113;
1532 {
1533 var114 = ((long(*)(val* self))(var_lft->class->vft[COLOR_core__abstract_text__Text__length]))(var_lft); /* length on <var_lft:String>*/
1534 }
1535 var_llen = var114;
1536 {
1537 { /* Inline kernel#Int#< (var_from,var_llen) on <var_from:Int> */
1538 /* Covariant cast for argument 0 (i) <var_llen:Int> isa OTHER */
1539 /* <var_llen:Int> isa OTHER */
1540 var117 = 1; /* easy <var_llen:Int> isa OTHER*/
1541 if (unlikely(!var117)) {
1542 var_class_name120 = type_core__Int.name;
1543 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name120);
1544 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1545 fatal_exit(1);
1546 }
1547 var121 = var_from < var_llen;
1548 var115 = var121;
1549 goto RET_LABEL116;
1550 RET_LABEL116:(void)0;
1551 }
1552 }
1553 if (var115){
1554 {
1555 { /* Inline kernel#Int#+ (var_from,var_count) on <var_from:Int> */
1556 /* Covariant cast for argument 0 (i) <var_count:Int> isa OTHER */
1557 /* <var_count:Int> isa OTHER */
1558 var124 = 1; /* easy <var_count:Int> isa OTHER*/
1559 if (unlikely(!var124)) {
1560 var_class_name127 = type_core__Int.name;
1561 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name127);
1562 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1563 fatal_exit(1);
1564 }
1565 var128 = var_from + var_count;
1566 var122 = var128;
1567 goto RET_LABEL123;
1568 RET_LABEL123:(void)0;
1569 }
1570 }
1571 {
1572 { /* Inline kernel#Int#< (var122,var_llen) on <var122:Int> */
1573 /* Covariant cast for argument 0 (i) <var_llen:Int> isa OTHER */
1574 /* <var_llen:Int> isa OTHER */
1575 var131 = 1; /* easy <var_llen:Int> isa OTHER*/
1576 if (unlikely(!var131)) {
1577 var_class_name134 = type_core__Int.name;
1578 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name134);
1579 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1580 fatal_exit(1);
1581 }
1582 var135 = var122 < var_llen;
1583 var129 = var135;
1584 goto RET_LABEL130;
1585 RET_LABEL130:(void)0;
1586 }
1587 }
1588 if (var129){
1589 {
1590 var136 = ((val*(*)(val* self, long p0, long p1))(var_lft->class->vft[COLOR_core__abstract_text__Text__substring]))(var_lft, var_from, var_count); /* substring on <var_lft:String>*/
1591 }
1592 var = var136;
1593 goto RET_LABEL;
1594 } else {
1595 }
1596 {
1597 { /* Inline kernel#Int#- (var_llen,var_from) on <var_llen:Int> */
1598 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
1599 /* <var_from:Int> isa OTHER */
1600 var139 = 1; /* easy <var_from:Int> isa OTHER*/
1601 if (unlikely(!var139)) {
1602 var_class_name142 = type_core__Int.name;
1603 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name142);
1604 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
1605 fatal_exit(1);
1606 }
1607 var143 = var_llen - var_from;
1608 var137 = var143;
1609 goto RET_LABEL138;
1610 RET_LABEL138:(void)0;
1611 }
1612 }
1613 var_lsublen = var137;
1614 {
1615 var144 = ((val*(*)(val* self, long p0))(var_lft->class->vft[COLOR_core__abstract_text__Text__substring_from]))(var_lft, var_from); /* substring_from on <var_lft:String>*/
1616 }
1617 var145 = self->attrs[COLOR_core__ropes__Concat___right].val; /* _right on <self:Concat> */
1618 if (unlikely(var145 == NULL)) {
1619 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
1620 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 190);
1621 fatal_exit(1);
1622 }
1623 {
1624 { /* Inline kernel#Int#- (var_count,var_lsublen) on <var_count:Int> */
1625 /* Covariant cast for argument 0 (i) <var_lsublen:Int> isa OTHER */
1626 /* <var_lsublen:Int> isa OTHER */
1627 var148 = 1; /* easy <var_lsublen:Int> isa OTHER*/
1628 if (unlikely(!var148)) {
1629 var_class_name151 = type_core__Int.name;
1630 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name151);
1631 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
1632 fatal_exit(1);
1633 }
1634 var152 = var_count - var_lsublen;
1635 var146 = var152;
1636 goto RET_LABEL147;
1637 RET_LABEL147:(void)0;
1638 }
1639 }
1640 {
1641 var153 = ((val*(*)(val* self, long p0, long p1))(var145->class->vft[COLOR_core__abstract_text__Text__substring]))(var145, 0l, var146); /* substring on <var145:String>*/
1642 }
1643 {
1644 var154 = ((val*(*)(val* self, val* p0))(var144->class->vft[COLOR_core__abstract_text__String___43d]))(var144, var153); /* + on <var144:Text(String)>*/
1645 }
1646 var = var154;
1647 goto RET_LABEL;
1648 } else {
1649 var155 = self->attrs[COLOR_core__ropes__Concat___right].val; /* _right on <self:Concat> */
1650 if (unlikely(var155 == NULL)) {
1651 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
1652 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 192);
1653 fatal_exit(1);
1654 }
1655 {
1656 { /* Inline kernel#Int#- (var_from,var_llen) on <var_from:Int> */
1657 /* Covariant cast for argument 0 (i) <var_llen:Int> isa OTHER */
1658 /* <var_llen:Int> isa OTHER */
1659 var158 = 1; /* easy <var_llen:Int> isa OTHER*/
1660 if (unlikely(!var158)) {
1661 var_class_name161 = type_core__Int.name;
1662 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name161);
1663 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
1664 fatal_exit(1);
1665 }
1666 var162 = var_from - var_llen;
1667 var156 = var162;
1668 goto RET_LABEL157;
1669 RET_LABEL157:(void)0;
1670 }
1671 }
1672 {
1673 var163 = ((val*(*)(val* self, long p0, long p1))(var155->class->vft[COLOR_core__abstract_text__Text__substring]))(var155, var156, var_count); /* substring on <var155:String>*/
1674 }
1675 var = var163;
1676 goto RET_LABEL;
1677 }
1678 RET_LABEL:;
1679 return var;
1680 }
1681 /* method ropes#Concat#to_upper for (self: Concat): String */
1682 val* core__ropes___core__ropes__Concat___core__abstract_text__String__to_upper(val* self) {
1683 val* var /* : String */;
1684 val* var1 /* : Concat */;
1685 val* var2 /* : String */;
1686 val* var3 /* : String */;
1687 val* var4 /* : String */;
1688 val* var5 /* : String */;
1689 var1 = NEW_core__ropes__Concat(&type_core__ropes__Concat);
1690 var2 = self->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <self:Concat> */
1691 if (unlikely(var2 == NULL)) {
1692 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
1693 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 206);
1694 fatal_exit(1);
1695 }
1696 {
1697 var3 = ((val*(*)(val* self))(var2->class->vft[COLOR_core__abstract_text__String__to_upper]))(var2); /* to_upper on <var2:String>*/
1698 }
1699 var4 = self->attrs[COLOR_core__ropes__Concat___right].val; /* _right on <self:Concat> */
1700 if (unlikely(var4 == NULL)) {
1701 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
1702 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 206);
1703 fatal_exit(1);
1704 }
1705 {
1706 var5 = ((val*(*)(val* self))(var4->class->vft[COLOR_core__abstract_text__String__to_upper]))(var4); /* to_upper on <var4:String>*/
1707 }
1708 {
1709 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_core__ropes__Concat__left_61d]))(var1, var3); /* left= on <var1:Concat>*/
1710 }
1711 {
1712 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_core__ropes__Concat__right_61d]))(var1, var5); /* right= on <var1:Concat>*/
1713 }
1714 {
1715 ((void(*)(val* self))(var1->class->vft[COLOR_core__kernel__Object__init]))(var1); /* init on <var1:Concat>*/
1716 }
1717 var = var1;
1718 goto RET_LABEL;
1719 RET_LABEL:;
1720 return var;
1721 }
1722 /* method ropes#Concat#to_lower for (self: Concat): String */
1723 val* core__ropes___core__ropes__Concat___core__abstract_text__String__to_lower(val* self) {
1724 val* var /* : String */;
1725 val* var1 /* : Concat */;
1726 val* var2 /* : String */;
1727 val* var3 /* : String */;
1728 val* var4 /* : String */;
1729 val* var5 /* : String */;
1730 var1 = NEW_core__ropes__Concat(&type_core__ropes__Concat);
1731 var2 = self->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <self:Concat> */
1732 if (unlikely(var2 == NULL)) {
1733 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
1734 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 208);
1735 fatal_exit(1);
1736 }
1737 {
1738 var3 = ((val*(*)(val* self))(var2->class->vft[COLOR_core__abstract_text__String__to_lower]))(var2); /* to_lower on <var2:String>*/
1739 }
1740 var4 = self->attrs[COLOR_core__ropes__Concat___right].val; /* _right on <self:Concat> */
1741 if (unlikely(var4 == NULL)) {
1742 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
1743 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 208);
1744 fatal_exit(1);
1745 }
1746 {
1747 var5 = ((val*(*)(val* self))(var4->class->vft[COLOR_core__abstract_text__String__to_lower]))(var4); /* to_lower on <var4:String>*/
1748 }
1749 {
1750 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_core__ropes__Concat__left_61d]))(var1, var3); /* left= on <var1:Concat>*/
1751 }
1752 {
1753 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_core__ropes__Concat__right_61d]))(var1, var5); /* right= on <var1:Concat>*/
1754 }
1755 {
1756 ((void(*)(val* self))(var1->class->vft[COLOR_core__kernel__Object__init]))(var1); /* init on <var1:Concat>*/
1757 }
1758 var = var1;
1759 goto RET_LABEL;
1760 RET_LABEL:;
1761 return var;
1762 }
1763 /* method ropes#Concat#+ for (self: Concat, Text): String */
1764 val* core__ropes___core__ropes__Concat___core__abstract_text__String___43d(val* self, val* p0) {
1765 val* var /* : String */;
1766 val* var_o /* var o: Text */;
1767 val* var1 /* : String */;
1768 val* var_s /* var s: String */;
1769 long var2 /* : Int */;
1770 long var_slen /* var slen: Int */;
1771 short int var3 /* : Bool */;
1772 int cltype;
1773 int idtype;
1774 val* var4 /* : Concat */;
1775 val* var5 /* : String */;
1776 val* var_r /* var r: String */;
1777 long var6 /* : Int */;
1778 long var_rlen /* var rlen: Int */;
1779 long var7 /* : Int */;
1780 short int var9 /* : Bool */;
1781 int cltype10;
1782 int idtype11;
1783 const char* var_class_name;
1784 long var12 /* : Int */;
1785 val* var13 /* : Sys */;
1786 long var14 /* : Int */;
1787 short int var15 /* : Bool */;
1788 short int var17 /* : Bool */;
1789 int cltype18;
1790 int idtype19;
1791 const char* var_class_name20;
1792 short int var21 /* : Bool */;
1793 val* var22 /* : Concat */;
1794 val* var23 /* : Concat */;
1795 val* var24 /* : String */;
1796 val* var25 /* : String */;
1797 var_o = p0;
1798 {
1799 var1 = ((val*(*)(val* self))(var_o->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_o); /* to_s on <var_o:Text>*/
1800 }
1801 var_s = var1;
1802 {
1803 var2 = ((long(*)(val* self))(var_s->class->vft[COLOR_core__abstract_text__Text__bytelen]))(var_s); /* bytelen on <var_s:String>*/
1804 }
1805 var_slen = var2;
1806 /* <var_s:String> isa Concat */
1807 cltype = type_core__ropes__Concat.color;
1808 idtype = type_core__ropes__Concat.id;
1809 if(cltype >= var_s->type->table_size) {
1810 var3 = 0;
1811 } else {
1812 var3 = var_s->type->type_table[cltype] == idtype;
1813 }
1814 if (var3){
1815 var4 = NEW_core__ropes__Concat(&type_core__ropes__Concat);
1816 {
1817 ((void(*)(val* self, val* p0))(var4->class->vft[COLOR_core__ropes__Concat__left_61d]))(var4, self); /* left= on <var4:Concat>*/
1818 }
1819 {
1820 ((void(*)(val* self, val* p0))(var4->class->vft[COLOR_core__ropes__Concat__right_61d]))(var4, var_s); /* right= on <var4:Concat>*/
1821 }
1822 {
1823 ((void(*)(val* self))(var4->class->vft[COLOR_core__kernel__Object__init]))(var4); /* init on <var4:Concat>*/
1824 }
1825 var = var4;
1826 goto RET_LABEL;
1827 } else {
1828 var5 = self->attrs[COLOR_core__ropes__Concat___right].val; /* _right on <self:Concat> */
1829 if (unlikely(var5 == NULL)) {
1830 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
1831 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 216);
1832 fatal_exit(1);
1833 }
1834 var_r = var5;
1835 {
1836 var6 = ((long(*)(val* self))(var_r->class->vft[COLOR_core__abstract_text__Text__bytelen]))(var_r); /* bytelen on <var_r:String>*/
1837 }
1838 var_rlen = var6;
1839 {
1840 { /* Inline kernel#Int#+ (var_rlen,var_slen) on <var_rlen:Int> */
1841 /* Covariant cast for argument 0 (i) <var_slen:Int> isa OTHER */
1842 /* <var_slen:Int> isa OTHER */
1843 var9 = 1; /* easy <var_slen:Int> isa OTHER*/
1844 if (unlikely(!var9)) {
1845 var_class_name = type_core__Int.name;
1846 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1847 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1848 fatal_exit(1);
1849 }
1850 var12 = var_rlen + var_slen;
1851 var7 = var12;
1852 goto RET_LABEL8;
1853 RET_LABEL8:(void)0;
1854 }
1855 }
1856 var13 = glob_sys;
1857 {
1858 var14 = core__ropes___Sys___maxlen(var13);
1859 }
1860 {
1861 { /* Inline kernel#Int#> (var7,var14) on <var7:Int> */
1862 /* Covariant cast for argument 0 (i) <var14:Int> isa OTHER */
1863 /* <var14:Int> isa OTHER */
1864 var17 = 1; /* easy <var14:Int> isa OTHER*/
1865 if (unlikely(!var17)) {
1866 var_class_name20 = type_core__Int.name;
1867 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
1868 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
1869 fatal_exit(1);
1870 }
1871 var21 = var7 > var14;
1872 var15 = var21;
1873 goto RET_LABEL16;
1874 RET_LABEL16:(void)0;
1875 }
1876 }
1877 if (var15){
1878 var22 = NEW_core__ropes__Concat(&type_core__ropes__Concat);
1879 {
1880 ((void(*)(val* self, val* p0))(var22->class->vft[COLOR_core__ropes__Concat__left_61d]))(var22, self); /* left= on <var22:Concat>*/
1881 }
1882 {
1883 ((void(*)(val* self, val* p0))(var22->class->vft[COLOR_core__ropes__Concat__right_61d]))(var22, var_s); /* right= on <var22:Concat>*/
1884 }
1885 {
1886 ((void(*)(val* self))(var22->class->vft[COLOR_core__kernel__Object__init]))(var22); /* init on <var22:Concat>*/
1887 }
1888 var = var22;
1889 goto RET_LABEL;
1890 } else {
1891 }
1892 var23 = NEW_core__ropes__Concat(&type_core__ropes__Concat);
1893 var24 = self->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <self:Concat> */
1894 if (unlikely(var24 == NULL)) {
1895 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
1896 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 219);
1897 fatal_exit(1);
1898 }
1899 {
1900 var25 = ((val*(*)(val* self, val* p0))(var_r->class->vft[COLOR_core__abstract_text__String___43d]))(var_r, var_s); /* + on <var_r:String>*/
1901 }
1902 {
1903 ((void(*)(val* self, val* p0))(var23->class->vft[COLOR_core__ropes__Concat__left_61d]))(var23, var24); /* left= on <var23:Concat>*/
1904 }
1905 {
1906 ((void(*)(val* self, val* p0))(var23->class->vft[COLOR_core__ropes__Concat__right_61d]))(var23, var25); /* right= on <var23:Concat>*/
1907 }
1908 {
1909 ((void(*)(val* self))(var23->class->vft[COLOR_core__kernel__Object__init]))(var23); /* init on <var23:Concat>*/
1910 }
1911 var = var23;
1912 goto RET_LABEL;
1913 }
1914 RET_LABEL:;
1915 return var;
1916 }
1917 /* method ropes#Concat#balance for (self: Concat): String */
1918 val* core__ropes___core__ropes__Concat___balance(val* self) {
1919 val* var /* : String */;
1920 val* var1 /* : Array[String] */;
1921 val* var_children /* var children: Array[String] */;
1922 val* var2 /* : RopeCharIteratorPiece */;
1923 val* var_iter /* var iter: nullable RopeCharIteratorPiece */;
1924 short int var3 /* : Bool */;
1925 short int var4 /* : Bool */;
1926 val* var_other /* var other: nullable Object */;
1927 short int var6 /* : Bool */;
1928 short int var8 /* : Bool */;
1929 val* var9 /* : String */;
1930 val* var11 /* : String */;
1931 val* var_rnod /* var rnod: String */;
1932 short int var12 /* : Bool */;
1933 int cltype;
1934 int idtype;
1935 short int var13 /* : Bool */;
1936 val* var14 /* : nullable RopeCharIteratorPiece */;
1937 val* var16 /* : nullable RopeCharIteratorPiece */;
1938 short int var18 /* : Bool */;
1939 short int var20 /* : Bool */;
1940 short int var21 /* : Bool */;
1941 val* var23 /* : RopeCharIteratorPiece */;
1942 val* var24 /* : String */;
1943 short int var25 /* : Bool */;
1944 short int var27 /* : Bool */;
1945 short int var28 /* : Bool */;
1946 val* var30 /* : RopeCharIteratorPiece */;
1947 val* var31 /* : String */;
1948 val* var32 /* : nullable RopeCharIteratorPiece */;
1949 val* var34 /* : nullable RopeCharIteratorPiece */;
1950 long var35 /* : Int */;
1951 long var37 /* : Int */;
1952 val* var38 /* : String */;
1953 var1 = NEW_core__Array(&type_core__Array__core__String);
1954 {
1955 core___core__Array___core__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[String]>*/
1956 }
1957 var_children = var1;
1958 var2 = NEW_core__ropes__RopeCharIteratorPiece(&type_core__ropes__RopeCharIteratorPiece);
1959 {
1960 ((void(*)(val* self, val* p0))(var2->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__node_61d]))(var2, self); /* node= on <var2:RopeCharIteratorPiece>*/
1961 }
1962 {
1963 ((void(*)(val* self, short int p0))(var2->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__ldone_61d]))(var2, 0); /* ldone= on <var2:RopeCharIteratorPiece>*/
1964 }
1965 {
1966 ((void(*)(val* self, short int p0))(var2->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__rdone_61d]))(var2, 0); /* rdone= on <var2:RopeCharIteratorPiece>*/
1967 }
1968 {
1969 ((void(*)(val* self, val* p0))(var2->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__prev_61d]))(var2, ((val*)NULL)); /* prev= on <var2:RopeCharIteratorPiece>*/
1970 }
1971 {
1972 ((void(*)(val* self))(var2->class->vft[COLOR_core__kernel__Object__init]))(var2); /* init on <var2:RopeCharIteratorPiece>*/
1973 }
1974 var_iter = var2;
1975 for(;;) {
1976 if (var_iter == NULL) {
1977 var3 = 1; /* is null */
1978 } else {
1979 var3 = 0; /* arg is null but recv is not */
1980 }
1981 if (0) {
1982 { /* Inline kernel#Object#== (var_iter,((val*)NULL)) on <var_iter:nullable RopeCharIteratorPiece> */
1983 var_other = ((val*)NULL);
1984 {
1985 { /* Inline kernel#Object#is_same_instance (var_iter,var_other) on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
1986 var8 = var_iter == var_other;
1987 var6 = var8;
1988 goto RET_LABEL7;
1989 RET_LABEL7:(void)0;
1990 }
1991 }
1992 var4 = var6;
1993 goto RET_LABEL5;
1994 RET_LABEL5:(void)0;
1995 }
1996 var3 = var4;
1997 }
1998 if (var3){
1999 goto BREAK_label;
2000 } else {
2001 }
2002 {
2003 { /* Inline ropes#RopeCharIteratorPiece#node (var_iter) on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
2004 var11 = var_iter->attrs[COLOR_core__ropes__RopeCharIteratorPiece___node].val; /* _node on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
2005 if (unlikely(var11 == NULL)) {
2006 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _node");
2007 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 612);
2008 fatal_exit(1);
2009 }
2010 var9 = var11;
2011 RET_LABEL10:(void)0;
2012 }
2013 }
2014 var_rnod = var9;
2015 /* <var_rnod:String> isa Concat */
2016 cltype = type_core__ropes__Concat.color;
2017 idtype = type_core__ropes__Concat.id;
2018 if(cltype >= var_rnod->type->table_size) {
2019 var12 = 0;
2020 } else {
2021 var12 = var_rnod->type->type_table[cltype] == idtype;
2022 }
2023 var13 = !var12;
2024 if (var13){
2025 {
2026 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_children, var_rnod); /* Direct call array#AbstractArray#push on <var_children:Array[String]>*/
2027 }
2028 {
2029 { /* Inline ropes#RopeCharIteratorPiece#prev (var_iter) on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
2030 var16 = var_iter->attrs[COLOR_core__ropes__RopeCharIteratorPiece___prev].val; /* _prev on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
2031 var14 = var16;
2032 RET_LABEL15:(void)0;
2033 }
2034 }
2035 var_iter = var14;
2036 goto BREAK_label17;
2037 } else {
2038 }
2039 {
2040 { /* Inline ropes#RopeCharIteratorPiece#ldone (var_iter) on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
2041 var20 = var_iter->attrs[COLOR_core__ropes__RopeCharIteratorPiece___ldone].s; /* _ldone on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
2042 var18 = var20;
2043 RET_LABEL19:(void)0;
2044 }
2045 }
2046 var21 = !var18;
2047 if (var21){
2048 {
2049 { /* Inline ropes#RopeCharIteratorPiece#ldone= (var_iter,1) on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
2050 var_iter->attrs[COLOR_core__ropes__RopeCharIteratorPiece___ldone].s = 1; /* _ldone on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
2051 RET_LABEL22:(void)0;
2052 }
2053 }
2054 var23 = NEW_core__ropes__RopeCharIteratorPiece(&type_core__ropes__RopeCharIteratorPiece);
2055 var24 = var_rnod->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <var_rnod:String(Concat)> */
2056 if (unlikely(var24 == NULL)) {
2057 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
2058 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 258);
2059 fatal_exit(1);
2060 }
2061 {
2062 ((void(*)(val* self, val* p0))(var23->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__node_61d]))(var23, var24); /* node= on <var23:RopeCharIteratorPiece>*/
2063 }
2064 {
2065 ((void(*)(val* self, short int p0))(var23->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__ldone_61d]))(var23, 0); /* ldone= on <var23:RopeCharIteratorPiece>*/
2066 }
2067 {
2068 ((void(*)(val* self, short int p0))(var23->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__rdone_61d]))(var23, 0); /* rdone= on <var23:RopeCharIteratorPiece>*/
2069 }
2070 {
2071 ((void(*)(val* self, val* p0))(var23->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__prev_61d]))(var23, var_iter); /* prev= on <var23:RopeCharIteratorPiece>*/
2072 }
2073 {
2074 ((void(*)(val* self))(var23->class->vft[COLOR_core__kernel__Object__init]))(var23); /* init on <var23:RopeCharIteratorPiece>*/
2075 }
2076 var_iter = var23;
2077 } else {
2078 {
2079 { /* Inline ropes#RopeCharIteratorPiece#rdone (var_iter) on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
2080 var27 = var_iter->attrs[COLOR_core__ropes__RopeCharIteratorPiece___rdone].s; /* _rdone on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
2081 var25 = var27;
2082 RET_LABEL26:(void)0;
2083 }
2084 }
2085 var28 = !var25;
2086 if (var28){
2087 {
2088 { /* Inline ropes#RopeCharIteratorPiece#rdone= (var_iter,1) on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
2089 var_iter->attrs[COLOR_core__ropes__RopeCharIteratorPiece___rdone].s = 1; /* _rdone on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
2090 RET_LABEL29:(void)0;
2091 }
2092 }
2093 var30 = NEW_core__ropes__RopeCharIteratorPiece(&type_core__ropes__RopeCharIteratorPiece);
2094 var31 = var_rnod->attrs[COLOR_core__ropes__Concat___right].val; /* _right on <var_rnod:String(Concat)> */
2095 if (unlikely(var31 == NULL)) {
2096 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
2097 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 261);
2098 fatal_exit(1);
2099 }
2100 {
2101 ((void(*)(val* self, val* p0))(var30->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__node_61d]))(var30, var31); /* node= on <var30:RopeCharIteratorPiece>*/
2102 }
2103 {
2104 ((void(*)(val* self, short int p0))(var30->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__ldone_61d]))(var30, 0); /* ldone= on <var30:RopeCharIteratorPiece>*/
2105 }
2106 {
2107 ((void(*)(val* self, short int p0))(var30->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__rdone_61d]))(var30, 0); /* rdone= on <var30:RopeCharIteratorPiece>*/
2108 }
2109 {
2110 ((void(*)(val* self, val* p0))(var30->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__prev_61d]))(var30, var_iter); /* prev= on <var30:RopeCharIteratorPiece>*/
2111 }
2112 {
2113 ((void(*)(val* self))(var30->class->vft[COLOR_core__kernel__Object__init]))(var30); /* init on <var30:RopeCharIteratorPiece>*/
2114 }
2115 var_iter = var30;
2116 } else {
2117 {
2118 { /* Inline ropes#RopeCharIteratorPiece#prev (var_iter) on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
2119 var34 = var_iter->attrs[COLOR_core__ropes__RopeCharIteratorPiece___prev].val; /* _prev on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
2120 var32 = var34;
2121 RET_LABEL33:(void)0;
2122 }
2123 }
2124 var_iter = var32;
2125 }
2126 }
2127 BREAK_label17: (void)0;
2128 }
2129 BREAK_label: (void)0;
2130 {
2131 { /* Inline array#AbstractArrayRead#length (var_children) on <var_children:Array[String]> */
2132 var37 = var_children->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_children:Array[String]> */
2133 var35 = var37;
2134 RET_LABEL36:(void)0;
2135 }
2136 }
2137 {
2138 var38 = core__ropes___core__ropes__Concat___recurse_balance(self, var_children, var35);
2139 }
2140 var = var38;
2141 goto RET_LABEL;
2142 RET_LABEL:;
2143 return var;
2144 }
2145 /* method ropes#Concat#recurse_balance for (self: Concat, Array[String], Int): String */
2146 val* core__ropes___core__ropes__Concat___recurse_balance(val* self, val* p0, long p1) {
2147 val* var /* : String */;
2148 val* var_nodes /* var nodes: Array[String] */;
2149 long var_len /* var len: Int */;
2150 long var_finpos /* var finpos: Int */;
2151 long var_stpos /* var stpos: Int */;
2152 short int var1 /* : Bool */;
2153 short int var3 /* : Bool */;
2154 int cltype;
2155 int idtype;
2156 const char* var_class_name;
2157 short int var4 /* : Bool */;
2158 long var5 /* : Int */;
2159 short int var7 /* : Bool */;
2160 int cltype8;
2161 int idtype9;
2162 const char* var_class_name10;
2163 long var11 /* : Int */;
2164 short int var12 /* : Bool */;
2165 short int var14 /* : Bool */;
2166 int cltype15;
2167 int idtype16;
2168 const char* var_class_name17;
2169 short int var18 /* : Bool */;
2170 val* var19 /* : Concat */;
2171 val* var20 /* : nullable Object */;
2172 long var21 /* : Int */;
2173 short int var23 /* : Bool */;
2174 int cltype24;
2175 int idtype25;
2176 const char* var_class_name26;
2177 long var27 /* : Int */;
2178 val* var28 /* : nullable Object */;
2179 long var29 /* : Int */;
2180 short int var31 /* : Bool */;
2181 int cltype32;
2182 int idtype33;
2183 const char* var_class_name34;
2184 long var35 /* : Int */;
2185 val* var36 /* : nullable Object */;
2186 long var37 /* : Int */;
2187 short int var39 /* : Bool */;
2188 int cltype40;
2189 int idtype41;
2190 const char* var_class_name42;
2191 long var43 /* : Int */;
2192 long var44 /* : Int */;
2193 short int var46 /* : Bool */;
2194 int cltype47;
2195 int idtype48;
2196 const char* var_class_name49;
2197 long var50 /* : Int */;
2198 short int var51 /* : Bool */;
2199 short int var53 /* : Bool */;
2200 val* var54 /* : nullable Object */;
2201 val* var55 /* : String */;
2202 var_nodes = p0;
2203 var_len = p1;
2204 var_finpos = 0l;
2205 var_stpos = 0l;
2206 for(;;) {
2207 {
2208 { /* Inline kernel#Int#< (var_stpos,var_len) on <var_stpos:Int> */
2209 /* Covariant cast for argument 0 (i) <var_len:Int> isa OTHER */
2210 /* <var_len:Int> isa OTHER */
2211 var3 = 1; /* easy <var_len:Int> isa OTHER*/
2212 if (unlikely(!var3)) {
2213 var_class_name = type_core__Int.name;
2214 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2215 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2216 fatal_exit(1);
2217 }
2218 var4 = var_stpos < var_len;
2219 var1 = var4;
2220 goto RET_LABEL2;
2221 RET_LABEL2:(void)0;
2222 }
2223 }
2224 if (var1){
2225 {
2226 { /* Inline kernel#Int#- (var_len,var_stpos) on <var_len:Int> */
2227 /* Covariant cast for argument 0 (i) <var_stpos:Int> isa OTHER */
2228 /* <var_stpos:Int> isa OTHER */
2229 var7 = 1; /* easy <var_stpos:Int> isa OTHER*/
2230 if (unlikely(!var7)) {
2231 var_class_name10 = type_core__Int.name;
2232 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name10);
2233 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
2234 fatal_exit(1);
2235 }
2236 var11 = var_len - var_stpos;
2237 var5 = var11;
2238 goto RET_LABEL6;
2239 RET_LABEL6:(void)0;
2240 }
2241 }
2242 {
2243 { /* Inline kernel#Int#> (var5,1l) on <var5:Int> */
2244 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2245 /* <1l:Int> isa OTHER */
2246 var14 = 1; /* easy <1l:Int> isa OTHER*/
2247 if (unlikely(!var14)) {
2248 var_class_name17 = type_core__Int.name;
2249 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
2250 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
2251 fatal_exit(1);
2252 }
2253 var18 = var5 > 1l;
2254 var12 = var18;
2255 goto RET_LABEL13;
2256 RET_LABEL13:(void)0;
2257 }
2258 }
2259 if (var12){
2260 var19 = NEW_core__ropes__Concat(&type_core__ropes__Concat);
2261 {
2262 var20 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_nodes, var_stpos);
2263 }
2264 {
2265 { /* Inline kernel#Int#+ (var_stpos,1l) on <var_stpos:Int> */
2266 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2267 /* <1l:Int> isa OTHER */
2268 var23 = 1; /* easy <1l:Int> isa OTHER*/
2269 if (unlikely(!var23)) {
2270 var_class_name26 = type_core__Int.name;
2271 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name26);
2272 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2273 fatal_exit(1);
2274 }
2275 var27 = var_stpos + 1l;
2276 var21 = var27;
2277 goto RET_LABEL22;
2278 RET_LABEL22:(void)0;
2279 }
2280 }
2281 {
2282 var28 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_nodes, var21);
2283 }
2284 {
2285 ((void(*)(val* self, val* p0))(var19->class->vft[COLOR_core__ropes__Concat__left_61d]))(var19, var20); /* left= on <var19:Concat>*/
2286 }
2287 {
2288 ((void(*)(val* self, val* p0))(var19->class->vft[COLOR_core__ropes__Concat__right_61d]))(var19, var28); /* right= on <var19:Concat>*/
2289 }
2290 {
2291 ((void(*)(val* self))(var19->class->vft[COLOR_core__kernel__Object__init]))(var19); /* init on <var19:Concat>*/
2292 }
2293 {
2294 core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_nodes, var_finpos, var19); /* Direct call array#Array#[]= on <var_nodes:Array[String]>*/
2295 }
2296 {
2297 { /* Inline kernel#Int#+ (var_stpos,2l) on <var_stpos:Int> */
2298 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
2299 /* <2l:Int> isa OTHER */
2300 var31 = 1; /* easy <2l:Int> isa OTHER*/
2301 if (unlikely(!var31)) {
2302 var_class_name34 = type_core__Int.name;
2303 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
2304 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2305 fatal_exit(1);
2306 }
2307 var35 = var_stpos + 2l;
2308 var29 = var35;
2309 goto RET_LABEL30;
2310 RET_LABEL30:(void)0;
2311 }
2312 }
2313 var_stpos = var29;
2314 } else {
2315 {
2316 var36 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_nodes, var_stpos);
2317 }
2318 {
2319 core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_nodes, var_finpos, var36); /* Direct call array#Array#[]= on <var_nodes:Array[String]>*/
2320 }
2321 {
2322 { /* Inline kernel#Int#+ (var_stpos,1l) on <var_stpos:Int> */
2323 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2324 /* <1l:Int> isa OTHER */
2325 var39 = 1; /* easy <1l:Int> isa OTHER*/
2326 if (unlikely(!var39)) {
2327 var_class_name42 = type_core__Int.name;
2328 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name42);
2329 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2330 fatal_exit(1);
2331 }
2332 var43 = var_stpos + 1l;
2333 var37 = var43;
2334 goto RET_LABEL38;
2335 RET_LABEL38:(void)0;
2336 }
2337 }
2338 var_stpos = var37;
2339 }
2340 {
2341 { /* Inline kernel#Int#+ (var_finpos,1l) on <var_finpos:Int> */
2342 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2343 /* <1l:Int> isa OTHER */
2344 var46 = 1; /* easy <1l:Int> isa OTHER*/
2345 if (unlikely(!var46)) {
2346 var_class_name49 = type_core__Int.name;
2347 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name49);
2348 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2349 fatal_exit(1);
2350 }
2351 var50 = var_finpos + 1l;
2352 var44 = var50;
2353 goto RET_LABEL45;
2354 RET_LABEL45:(void)0;
2355 }
2356 }
2357 var_finpos = var44;
2358 } else {
2359 goto BREAK_label;
2360 }
2361 }
2362 BREAK_label: (void)0;
2363 {
2364 { /* Inline kernel#Int#== (var_finpos,1l) on <var_finpos:Int> */
2365 var53 = var_finpos == 1l;
2366 var51 = var53;
2367 goto RET_LABEL52;
2368 RET_LABEL52:(void)0;
2369 }
2370 }
2371 if (var51){
2372 {
2373 var54 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_nodes, 0l);
2374 }
2375 var = var54;
2376 goto RET_LABEL;
2377 } else {
2378 }
2379 {
2380 var55 = core__ropes___core__ropes__Concat___recurse_balance(self, var_nodes, var_finpos);
2381 }
2382 var = var55;
2383 goto RET_LABEL;
2384 RET_LABEL:;
2385 return var;
2386 }
2387 /* method ropes#RopeBuffer#chars for (self: RopeBuffer): Sequence[Char] */
2388 val* core___core__RopeBuffer___core__abstract_text__Text__chars(val* self) {
2389 val* var /* : Sequence[Char] */;
2390 short int var1 /* : Bool */;
2391 val* var2 /* : Sequence[Char] */;
2392 val* var3 /* : Sequence[Char] */;
2393 val* var5 /* : RopeBufferChars */;
2394 var1 = self->attrs[COLOR_core__ropes__RopeBuffer___chars].val != NULL; /* _chars on <self:RopeBuffer> */
2395 if(likely(var1)) {
2396 var2 = self->attrs[COLOR_core__ropes__RopeBuffer___chars].val; /* _chars on <self:RopeBuffer> */
2397 if (unlikely(var2 == NULL)) {
2398 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
2399 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 306);
2400 fatal_exit(1);
2401 }
2402 } else {
2403 {
2404 var5 = NEW_core__RopeBufferChars(&type_core__RopeBufferChars);
2405 {
2406 ((void(*)(val* self, val* p0))(var5->class->vft[COLOR_core__abstract_text__StringCharView__target_61d]))(var5, self); /* target= on <var5:RopeBufferChars>*/
2407 }
2408 {
2409 ((void(*)(val* self))(var5->class->vft[COLOR_core__kernel__Object__init]))(var5); /* init on <var5:RopeBufferChars>*/
2410 }
2411 var3 = var5;
2412 goto RET_LABEL4;
2413 RET_LABEL4:(void)0;
2414 }
2415 self->attrs[COLOR_core__ropes__RopeBuffer___chars].val = var3; /* _chars on <self:RopeBuffer> */
2416 var2 = var3;
2417 }
2418 var = var2;
2419 RET_LABEL:;
2420 return var;
2421 }
2422 /* method ropes#RopeBuffer#bytes for (self: RopeBuffer): SequenceRead[Byte] */
2423 val* core___core__RopeBuffer___core__abstract_text__Text__bytes(val* self) {
2424 val* var /* : SequenceRead[Byte] */;
2425 short int var1 /* : Bool */;
2426 val* var2 /* : SequenceRead[Byte] */;
2427 val* var3 /* : SequenceRead[Byte] */;
2428 val* var5 /* : RopeBufferBytes */;
2429 var1 = self->attrs[COLOR_core__ropes__RopeBuffer___bytes].val != NULL; /* _bytes on <self:RopeBuffer> */
2430 if(likely(var1)) {
2431 var2 = self->attrs[COLOR_core__ropes__RopeBuffer___bytes].val; /* _bytes on <self:RopeBuffer> */
2432 if (unlikely(var2 == NULL)) {
2433 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bytes");
2434 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 308);
2435 fatal_exit(1);
2436 }
2437 } else {
2438 {
2439 var5 = NEW_core__RopeBufferBytes(&type_core__RopeBufferBytes);
2440 {
2441 ((void(*)(val* self, val* p0))(var5->class->vft[COLOR_core__abstract_text__StringByteView__target_61d]))(var5, self); /* target= on <var5:RopeBufferBytes>*/
2442 }
2443 {
2444 ((void(*)(val* self))(var5->class->vft[COLOR_core__kernel__Object__init]))(var5); /* init on <var5:RopeBufferBytes>*/
2445 }
2446 var3 = var5;
2447 goto RET_LABEL4;
2448 RET_LABEL4:(void)0;
2449 }
2450 self->attrs[COLOR_core__ropes__RopeBuffer___bytes].val = var3; /* _bytes on <self:RopeBuffer> */
2451 var2 = var3;
2452 }
2453 var = var2;
2454 RET_LABEL:;
2455 return var;
2456 }
2457 /* method ropes#RopeBuffer#str for (self: RopeBuffer): String */
2458 val* core___core__RopeBuffer___str(val* self) {
2459 val* var /* : String */;
2460 val* var1 /* : String */;
2461 var1 = self->attrs[COLOR_core__ropes__RopeBuffer___str].val; /* _str on <self:RopeBuffer> */
2462 if (unlikely(var1 == NULL)) {
2463 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
2464 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 310);
2465 fatal_exit(1);
2466 }
2467 var = var1;
2468 RET_LABEL:;
2469 return var;
2470 }
2471 /* method ropes#RopeBuffer#str= for (self: RopeBuffer, String) */
2472 void core___core__RopeBuffer___str_61d(val* self, val* p0) {
2473 self->attrs[COLOR_core__ropes__RopeBuffer___str].val = p0; /* _str on <self:RopeBuffer> */
2474 RET_LABEL:;
2475 }
2476 /* method ropes#RopeBuffer#ns for (self: RopeBuffer): NativeString */
2477 char* core___core__RopeBuffer___ns(val* self) {
2478 char* var /* : NativeString */;
2479 char* var1 /* : NativeString */;
2480 var1 = self->attrs[COLOR_core__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
2481 var = var1;
2482 RET_LABEL:;
2483 return var;
2484 }
2485 /* method ropes#RopeBuffer#ns= for (self: RopeBuffer, NativeString) */
2486 void core___core__RopeBuffer___ns_61d(val* self, char* p0) {
2487 self->attrs[COLOR_core__ropes__RopeBuffer___ns].str = p0; /* _ns on <self:RopeBuffer> */
2488 RET_LABEL:;
2489 }
2490 /* method ropes#RopeBuffer#rpos for (self: RopeBuffer): Int */
2491 long core___core__RopeBuffer___rpos(val* self) {
2492 long var /* : Int */;
2493 long var1 /* : Int */;
2494 var1 = self->attrs[COLOR_core__ropes__RopeBuffer___rpos].l; /* _rpos on <self:RopeBuffer> */
2495 var = var1;
2496 RET_LABEL:;
2497 return var;
2498 }
2499 /* method ropes#RopeBuffer#rpos= for (self: RopeBuffer, Int) */
2500 void core___core__RopeBuffer___rpos_61d(val* self, long p0) {
2501 self->attrs[COLOR_core__ropes__RopeBuffer___rpos].l = p0; /* _rpos on <self:RopeBuffer> */
2502 RET_LABEL:;
2503 }
2504 /* method ropes#RopeBuffer#dumped for (self: RopeBuffer): Int */
2505 long core___core__RopeBuffer___dumped(val* self) {
2506 long var /* : Int */;
2507 long var1 /* : Int */;
2508 var1 = self->attrs[COLOR_core__ropes__RopeBuffer___dumped].l; /* _dumped on <self:RopeBuffer> */
2509 var = var1;
2510 RET_LABEL:;
2511 return var;
2512 }
2513 /* method ropes#RopeBuffer#dumped= for (self: RopeBuffer, Int) */
2514 void core___core__RopeBuffer___dumped_61d(val* self, long p0) {
2515 self->attrs[COLOR_core__ropes__RopeBuffer___dumped].l = p0; /* _dumped on <self:RopeBuffer> */
2516 RET_LABEL:;
2517 }
2518 /* method ropes#RopeBuffer#length for (self: RopeBuffer): Int */
2519 long core___core__RopeBuffer___core__abstract_text__Text__length(val* self) {
2520 long var /* : Int */;
2521 long var1 /* : Int */;
2522 long var3 /* : Int */;
2523 long var_st /* var st: Int */;
2524 val* var4 /* : String */;
2525 val* var6 /* : String */;
2526 long var7 /* : Int */;
2527 long var_len /* var len: Int */;
2528 long var8 /* : Int */;
2529 long var10 /* : Int */;
2530 short int var11 /* : Bool */;
2531 short int var13 /* : Bool */;
2532 int cltype;
2533 int idtype;
2534 const char* var_class_name;
2535 short int var14 /* : Bool */;
2536 char* var15 /* : NativeString */;
2537 char* var17 /* : NativeString */;
2538 unsigned char var18 /* : Byte */;
2539 unsigned char var20 /* : Byte */;
2540 long var21 /* : Int */;
2541 long var22 /* : Int */;
2542 short int var24 /* : Bool */;
2543 int cltype25;
2544 int idtype26;
2545 const char* var_class_name27;
2546 long var28 /* : Int */;
2547 long var29 /* : Int */;
2548 short int var31 /* : Bool */;
2549 int cltype32;
2550 int idtype33;
2551 const char* var_class_name34;
2552 long var35 /* : Int */;
2553 {
2554 { /* Inline ropes#RopeBuffer#dumped (self) on <self:RopeBuffer> */
2555 var3 = self->attrs[COLOR_core__ropes__RopeBuffer___dumped].l; /* _dumped on <self:RopeBuffer> */
2556 var1 = var3;
2557 RET_LABEL2:(void)0;
2558 }
2559 }
2560 var_st = var1;
2561 {
2562 { /* Inline ropes#RopeBuffer#str (self) on <self:RopeBuffer> */
2563 var6 = self->attrs[COLOR_core__ropes__RopeBuffer___str].val; /* _str on <self:RopeBuffer> */
2564 if (unlikely(var6 == NULL)) {
2565 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
2566 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 310);
2567 fatal_exit(1);
2568 }
2569 var4 = var6;
2570 RET_LABEL5:(void)0;
2571 }
2572 }
2573 {
2574 var7 = ((long(*)(val* self))(var4->class->vft[COLOR_core__abstract_text__Text__length]))(var4); /* length on <var4:String>*/
2575 }
2576 var_len = var7;
2577 for(;;) {
2578 {
2579 { /* Inline ropes#RopeBuffer#rpos (self) on <self:RopeBuffer> */
2580 var10 = self->attrs[COLOR_core__ropes__RopeBuffer___rpos].l; /* _rpos on <self:RopeBuffer> */
2581 var8 = var10;
2582 RET_LABEL9:(void)0;
2583 }
2584 }
2585 {
2586 { /* Inline kernel#Int#< (var_st,var8) on <var_st:Int> */
2587 /* Covariant cast for argument 0 (i) <var8:Int> isa OTHER */
2588 /* <var8:Int> isa OTHER */
2589 var13 = 1; /* easy <var8:Int> isa OTHER*/
2590 if (unlikely(!var13)) {
2591 var_class_name = type_core__Int.name;
2592 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2593 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2594 fatal_exit(1);
2595 }
2596 var14 = var_st < var8;
2597 var11 = var14;
2598 goto RET_LABEL12;
2599 RET_LABEL12:(void)0;
2600 }
2601 }
2602 if (var11){
2603 {
2604 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
2605 var17 = self->attrs[COLOR_core__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
2606 var15 = var17;
2607 RET_LABEL16:(void)0;
2608 }
2609 }
2610 {
2611 { /* Inline native#NativeString#[] (var15,var_st) on <var15:NativeString> */
2612 var20 = (unsigned char)((int)var15[var_st]);
2613 var18 = var20;
2614 goto RET_LABEL19;
2615 RET_LABEL19:(void)0;
2616 }
2617 }
2618 {
2619 var21 = core__native___Byte___u8len(var18);
2620 }
2621 {
2622 { /* Inline kernel#Int#+ (var_st,var21) on <var_st:Int> */
2623 /* Covariant cast for argument 0 (i) <var21:Int> isa OTHER */
2624 /* <var21:Int> isa OTHER */
2625 var24 = 1; /* easy <var21:Int> isa OTHER*/
2626 if (unlikely(!var24)) {
2627 var_class_name27 = type_core__Int.name;
2628 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
2629 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2630 fatal_exit(1);
2631 }
2632 var28 = var_st + var21;
2633 var22 = var28;
2634 goto RET_LABEL23;
2635 RET_LABEL23:(void)0;
2636 }
2637 }
2638 var_st = var22;
2639 {
2640 { /* Inline kernel#Int#+ (var_len,1l) on <var_len:Int> */
2641 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2642 /* <1l:Int> isa OTHER */
2643 var31 = 1; /* easy <1l:Int> isa OTHER*/
2644 if (unlikely(!var31)) {
2645 var_class_name34 = type_core__Int.name;
2646 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
2647 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2648 fatal_exit(1);
2649 }
2650 var35 = var_len + 1l;
2651 var29 = var35;
2652 goto RET_LABEL30;
2653 RET_LABEL30:(void)0;
2654 }
2655 }
2656 var_len = var29;
2657 } else {
2658 goto BREAK_label;
2659 }
2660 }
2661 BREAK_label: (void)0;
2662 var = var_len;
2663 goto RET_LABEL;
2664 RET_LABEL:;
2665 return var;
2666 }
2667 /* method ropes#RopeBuffer#bytelen for (self: RopeBuffer): Int */
2668 long core___core__RopeBuffer___core__abstract_text__Text__bytelen(val* self) {
2669 long var /* : Int */;
2670 long var1 /* : Int */;
2671 var1 = self->attrs[COLOR_core__ropes__RopeBuffer___bytelen].l; /* _bytelen on <self:RopeBuffer> */
2672 var = var1;
2673 RET_LABEL:;
2674 return var;
2675 }
2676 /* method ropes#RopeBuffer#buf_size for (self: RopeBuffer): Int */
2677 long core___core__RopeBuffer___buf_size(val* self) {
2678 long var /* : Int */;
2679 long var1 /* : Int */;
2680 var1 = self->attrs[COLOR_core__ropes__RopeBuffer___buf_size].l; /* _buf_size on <self:RopeBuffer> */
2681 var = var1;
2682 RET_LABEL:;
2683 return var;
2684 }
2685 /* method ropes#RopeBuffer#buf_size= for (self: RopeBuffer, Int) */
2686 void core___core__RopeBuffer___buf_size_61d(val* self, long p0) {
2687 self->attrs[COLOR_core__ropes__RopeBuffer___buf_size].l = p0; /* _buf_size on <self:RopeBuffer> */
2688 RET_LABEL:;
2689 }
2690 /* method ropes#RopeBuffer#substrings for (self: RopeBuffer): Iterator[FlatText] */
2691 val* core___core__RopeBuffer___core__abstract_text__Text__substrings(val* self) {
2692 val* var /* : Iterator[FlatText] */;
2693 val* var1 /* : RopeBufSubstringIterator */;
2694 var1 = NEW_core__ropes__RopeBufSubstringIterator(&type_core__ropes__RopeBufSubstringIterator);
2695 {
2696 core__ropes___core__ropes__RopeBufSubstringIterator___from(var1, self); /* Direct call ropes#RopeBufSubstringIterator#from on <var1:RopeBufSubstringIterator>*/
2697 }
2698 var = var1;
2699 goto RET_LABEL;
2700 RET_LABEL:;
2701 return var;
2702 }
2703 /* method ropes#RopeBuffer#init for (self: RopeBuffer) */
2704 void core___core__RopeBuffer___core__kernel__Object__init(val* self) {
2705 char* var /* : NativeString */;
2706 val* var1 /* : Sys */;
2707 long var2 /* : Int */;
2708 char* var3 /* : NativeString */;
2709 char* var5 /* : NativeString */;
2710 val* var7 /* : Sys */;
2711 long var8 /* : Int */;
2712 {
2713 ((void(*)(val* self))(self->class->vft[COLOR_core___core__RopeBuffer___core__kernel__Object__init]))(self); /* init on <self:RopeBuffer>*/
2714 }
2715 var = NULL/*special!*/;
2716 var1 = glob_sys;
2717 {
2718 var2 = core__ropes___Sys___maxlen(var1);
2719 }
2720 {
2721 { /* Inline native#NativeString#new (var,var2) on <var:NativeString> */
2722 var5 = (char*)nit_alloc(var2);
2723 var3 = var5;
2724 goto RET_LABEL4;
2725 RET_LABEL4:(void)0;
2726 }
2727 }
2728 {
2729 { /* Inline ropes#RopeBuffer#ns= (self,var3) on <self:RopeBuffer> */
2730 self->attrs[COLOR_core__ropes__RopeBuffer___ns].str = var3; /* _ns on <self:RopeBuffer> */
2731 RET_LABEL6:(void)0;
2732 }
2733 }
2734 var7 = glob_sys;
2735 {
2736 var8 = core__ropes___Sys___maxlen(var7);
2737 }
2738 {
2739 { /* Inline ropes#RopeBuffer#buf_size= (self,var8) on <self:RopeBuffer> */
2740 self->attrs[COLOR_core__ropes__RopeBuffer___buf_size].l = var8; /* _buf_size on <self:RopeBuffer> */
2741 RET_LABEL9:(void)0;
2742 }
2743 }
2744 {
2745 { /* Inline ropes#RopeBuffer#dumped= (self,0l) on <self:RopeBuffer> */
2746 self->attrs[COLOR_core__ropes__RopeBuffer___dumped].l = 0l; /* _dumped on <self:RopeBuffer> */
2747 RET_LABEL10:(void)0;
2748 }
2749 }
2750 RET_LABEL:;
2751 }
2752 /* method ropes#RopeBuffer#from for (self: RopeBuffer, String) */
2753 void core___core__RopeBuffer___from(val* self, val* p0) {
2754 val* var_str /* var str: String */;
2755 char* var /* : NativeString */;
2756 val* var2 /* : Sys */;
2757 long var3 /* : Int */;
2758 char* var4 /* : NativeString */;
2759 char* var6 /* : NativeString */;
2760 val* var8 /* : Sys */;
2761 long var9 /* : Int */;
2762 long var11 /* : Int */;
2763 {
2764 core___core__RopeBuffer___core__kernel__Object__init(self); /* Direct call ropes#RopeBuffer#init on <self:RopeBuffer>*/
2765 }
2766 var_str = p0;
2767 {
2768 { /* Inline ropes#RopeBuffer#str= (self,var_str) on <self:RopeBuffer> */
2769 self->attrs[COLOR_core__ropes__RopeBuffer___str].val = var_str; /* _str on <self:RopeBuffer> */
2770 RET_LABEL1:(void)0;
2771 }
2772 }
2773 var = NULL/*special!*/;
2774 var2 = glob_sys;
2775 {
2776 var3 = core__ropes___Sys___maxlen(var2);
2777 }
2778 {
2779 { /* Inline native#NativeString#new (var,var3) on <var:NativeString> */
2780 var6 = (char*)nit_alloc(var3);
2781 var4 = var6;
2782 goto RET_LABEL5;
2783 RET_LABEL5:(void)0;
2784 }
2785 }
2786 {
2787 { /* Inline ropes#RopeBuffer#ns= (self,var4) on <self:RopeBuffer> */
2788 self->attrs[COLOR_core__ropes__RopeBuffer___ns].str = var4; /* _ns on <self:RopeBuffer> */
2789 RET_LABEL7:(void)0;
2790 }
2791 }
2792 var8 = glob_sys;
2793 {
2794 var9 = core__ropes___Sys___maxlen(var8);
2795 }
2796 {
2797 { /* Inline ropes#RopeBuffer#buf_size= (self,var9) on <self:RopeBuffer> */
2798 self->attrs[COLOR_core__ropes__RopeBuffer___buf_size].l = var9; /* _buf_size on <self:RopeBuffer> */
2799 RET_LABEL10:(void)0;
2800 }
2801 }
2802 {
2803 var11 = ((long(*)(val* self))(var_str->class->vft[COLOR_core__abstract_text__Text__length]))(var_str); /* length on <var_str:String>*/
2804 }
2805 self->attrs[COLOR_core__ropes__RopeBuffer___bytelen].l = var11; /* _bytelen on <self:RopeBuffer> */
2806 {
2807 { /* Inline ropes#RopeBuffer#dumped= (self,0l) on <self:RopeBuffer> */
2808 self->attrs[COLOR_core__ropes__RopeBuffer___dumped].l = 0l; /* _dumped on <self:RopeBuffer> */
2809 RET_LABEL12:(void)0;
2810 }
2811 }
2812 RET_LABEL:;
2813 }
2814 /* method ropes#RopeBuffer#[] for (self: RopeBuffer, Int): Char */
2815 uint32_t core___core__RopeBuffer___core__abstract_text__Text___91d_93d(val* self, long p0) {
2816 uint32_t var /* : Char */;
2817 long var_i /* var i: Int */;
2818 val* var1 /* : String */;
2819 val* var3 /* : String */;
2820 long var4 /* : Int */;
2821 short int var5 /* : Bool */;
2822 short int var7 /* : Bool */;
2823 int cltype;
2824 int idtype;
2825 const char* var_class_name;
2826 short int var8 /* : Bool */;
2827 val* var9 /* : String */;
2828 val* var11 /* : String */;
2829 uint32_t var12 /* : Char */;
2830 char* var13 /* : NativeString */;
2831 char* var15 /* : NativeString */;
2832 val* var16 /* : String */;
2833 val* var18 /* : String */;
2834 long var19 /* : Int */;
2835 long var20 /* : Int */;
2836 short int var22 /* : Bool */;
2837 int cltype23;
2838 int idtype24;
2839 const char* var_class_name25;
2840 long var26 /* : Int */;
2841 long var27 /* : Int */;
2842 long var29 /* : Int */;
2843 long var30 /* : Int */;
2844 long var_index /* var index: Int */;
2845 char* var31 /* : NativeString */;
2846 char* var33 /* : NativeString */;
2847 uint32_t var34 /* : Char */;
2848 var_i = p0;
2849 {
2850 { /* Inline ropes#RopeBuffer#str (self) on <self:RopeBuffer> */
2851 var3 = self->attrs[COLOR_core__ropes__RopeBuffer___str].val; /* _str on <self:RopeBuffer> */
2852 if (unlikely(var3 == NULL)) {
2853 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
2854 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 310);
2855 fatal_exit(1);
2856 }
2857 var1 = var3;
2858 RET_LABEL2:(void)0;
2859 }
2860 }
2861 {
2862 var4 = ((long(*)(val* self))(var1->class->vft[COLOR_core__abstract_text__Text__length]))(var1); /* length on <var1:String>*/
2863 }
2864 {
2865 { /* Inline kernel#Int#< (var_i,var4) on <var_i:Int> */
2866 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
2867 /* <var4:Int> isa OTHER */
2868 var7 = 1; /* easy <var4:Int> isa OTHER*/
2869 if (unlikely(!var7)) {
2870 var_class_name = type_core__Int.name;
2871 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2872 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2873 fatal_exit(1);
2874 }
2875 var8 = var_i < var4;
2876 var5 = var8;
2877 goto RET_LABEL6;
2878 RET_LABEL6:(void)0;
2879 }
2880 }
2881 if (var5){
2882 {
2883 { /* Inline ropes#RopeBuffer#str (self) on <self:RopeBuffer> */
2884 var11 = self->attrs[COLOR_core__ropes__RopeBuffer___str].val; /* _str on <self:RopeBuffer> */
2885 if (unlikely(var11 == NULL)) {
2886 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
2887 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 310);
2888 fatal_exit(1);
2889 }
2890 var9 = var11;
2891 RET_LABEL10:(void)0;
2892 }
2893 }
2894 {
2895 var12 = ((uint32_t(*)(val* self, long p0))(var9->class->vft[COLOR_core__abstract_text__Text___91d_93d]))(var9, var_i); /* [] on <var9:String>*/
2896 }
2897 var = var12;
2898 goto RET_LABEL;
2899 } else {
2900 {
2901 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
2902 var15 = self->attrs[COLOR_core__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
2903 var13 = var15;
2904 RET_LABEL14:(void)0;
2905 }
2906 }
2907 {
2908 { /* Inline ropes#RopeBuffer#str (self) on <self:RopeBuffer> */
2909 var18 = self->attrs[COLOR_core__ropes__RopeBuffer___str].val; /* _str on <self:RopeBuffer> */
2910 if (unlikely(var18 == NULL)) {
2911 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
2912 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 310);
2913 fatal_exit(1);
2914 }
2915 var16 = var18;
2916 RET_LABEL17:(void)0;
2917 }
2918 }
2919 {
2920 var19 = ((long(*)(val* self))(var16->class->vft[COLOR_core__abstract_text__Text__length]))(var16); /* length on <var16:String>*/
2921 }
2922 {
2923 { /* Inline kernel#Int#- (var_i,var19) on <var_i:Int> */
2924 /* Covariant cast for argument 0 (i) <var19:Int> isa OTHER */
2925 /* <var19:Int> isa OTHER */
2926 var22 = 1; /* easy <var19:Int> isa OTHER*/
2927 if (unlikely(!var22)) {
2928 var_class_name25 = type_core__Int.name;
2929 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25);
2930 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
2931 fatal_exit(1);
2932 }
2933 var26 = var_i - var19;
2934 var20 = var26;
2935 goto RET_LABEL21;
2936 RET_LABEL21:(void)0;
2937 }
2938 }
2939 {
2940 { /* Inline ropes#RopeBuffer#dumped (self) on <self:RopeBuffer> */
2941 var29 = self->attrs[COLOR_core__ropes__RopeBuffer___dumped].l; /* _dumped on <self:RopeBuffer> */
2942 var27 = var29;
2943 RET_LABEL28:(void)0;
2944 }
2945 }
2946 {
2947 var30 = core___core__NativeString___char_to_byte_index_cached(var13, var20, 0l, var27);
2948 }
2949 var_index = var30;
2950 {
2951 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
2952 var33 = self->attrs[COLOR_core__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
2953 var31 = var33;
2954 RET_LABEL32:(void)0;
2955 }
2956 }
2957 {
2958 var34 = core___core__NativeString___char_at(var31, var_index);
2959 }
2960 var = var34;
2961 goto RET_LABEL;
2962 }
2963 RET_LABEL:;
2964 return var;
2965 }
2966 /* method ropes#RopeBuffer#[]= for (self: RopeBuffer, Int, Char) */
2967 void core___core__RopeBuffer___core__abstract_text__Buffer___91d_93d_61d(val* self, long p0, uint32_t p1) {
2968 long var_i /* var i: Int */;
2969 uint32_t var_c /* var c: Char */;
2970 short int var /* : Bool */;
2971 short int var1 /* : Bool */;
2972 short int var3 /* : Bool */;
2973 int cltype;
2974 int idtype;
2975 const char* var_class_name;
2976 short int var4 /* : Bool */;
2977 short int var_ /* var : Bool */;
2978 long var5 /* : Int */;
2979 short int var6 /* : Bool */;
2980 short int var8 /* : Bool */;
2981 int cltype9;
2982 int idtype10;
2983 const char* var_class_name11;
2984 short int var12 /* : Bool */;
2985 long var13 /* : Int */;
2986 short int var14 /* : Bool */;
2987 short int var16 /* : Bool */;
2988 val* var17 /* : String */;
2989 val* var19 /* : String */;
2990 long var20 /* : Int */;
2991 short int var21 /* : Bool */;
2992 short int var23 /* : Bool */;
2993 int cltype24;
2994 int idtype25;
2995 const char* var_class_name26;
2996 short int var27 /* : Bool */;
2997 val* var_28 /* var : RopeBuffer */;
2998 long var29 /* : Int */;
2999 long var30 /* : Int */;
3000 val* var31 /* : String */;
3001 val* var33 /* : String */;
3002 uint32_t var34 /* : Char */;
3003 long var35 /* : Int */;
3004 long var36 /* : Int */;
3005 short int var38 /* : Bool */;
3006 int cltype39;
3007 int idtype40;
3008 const char* var_class_name41;
3009 long var42 /* : Int */;
3010 long var43 /* : Int */;
3011 short int var45 /* : Bool */;
3012 int cltype46;
3013 int idtype47;
3014 const char* var_class_name48;
3015 long var49 /* : Int */;
3016 val* var50 /* : String */;
3017 val* var52 /* : String */;
3018 val* var_s /* var s: String */;
3019 val* var53 /* : Text */;
3020 val* var_l /* var l: String */;
3021 long var54 /* : Int */;
3022 short int var56 /* : Bool */;
3023 int cltype57;
3024 int idtype58;
3025 const char* var_class_name59;
3026 long var60 /* : Int */;
3027 val* var61 /* : Text */;
3028 val* var_r /* var r: String */;
3029 val* var62 /* : String */;
3030 val* var63 /* : String */;
3031 val* var64 /* : String */;
3032 val* var66 /* : String */;
3033 val* var68 /* : String */;
3034 long var69 /* : Int */;
3035 long var70 /* : Int */;
3036 short int var72 /* : Bool */;
3037 int cltype73;
3038 int idtype74;
3039 const char* var_class_name75;
3040 long var76 /* : Int */;
3041 long var_reali /* var reali: Int */;
3042 char* var77 /* : NativeString */;
3043 char* var79 /* : NativeString */;
3044 long var80 /* : Int */;
3045 long var82 /* : Int */;
3046 long var83 /* : Int */;
3047 long var_index /* var index: Int */;
3048 char* var84 /* : NativeString */;
3049 char* var86 /* : NativeString */;
3050 long var87 /* : Int */;
3051 short int var89 /* : Bool */;
3052 int cltype90;
3053 int idtype91;
3054 const char* var_class_name92;
3055 long var93 /* : Int */;
3056 long var94 /* : Int */;
3057 long var_st_nxt /* var st_nxt: Int */;
3058 char* var95 /* : NativeString */;
3059 char* var97 /* : NativeString */;
3060 uint32_t var98 /* : Char */;
3061 uint32_t var_loc_c /* var loc_c: Char */;
3062 long var99 /* : Int */;
3063 long var100 /* : Int */;
3064 short int var101 /* : Bool */;
3065 short int var103 /* : Bool */;
3066 short int var104 /* : Bool */;
3067 long var105 /* : Int */;
3068 long var106 /* : Int */;
3069 long var107 /* : Int */;
3070 short int var109 /* : Bool */;
3071 int cltype110;
3072 int idtype111;
3073 const char* var_class_name112;
3074 long var113 /* : Int */;
3075 long var_delta /* var delta: Int */;
3076 long var114 /* : Int */;
3077 long var116 /* : Int */;
3078 long var117 /* : Int */;
3079 long var119 /* : Int */;
3080 long var120 /* : Int */;
3081 short int var122 /* : Bool */;
3082 int cltype123;
3083 int idtype124;
3084 const char* var_class_name125;
3085 long var126 /* : Int */;
3086 long var_remsp /* var remsp: Int */;
3087 short int var127 /* : Bool */;
3088 short int var129 /* : Bool */;
3089 int cltype130;
3090 int idtype131;
3091 const char* var_class_name132;
3092 short int var133 /* : Bool */;
3093 val* var_134 /* var : RopeBuffer */;
3094 long var135 /* : Int */;
3095 long var137 /* : Int */;
3096 long var138 /* : Int */;
3097 short int var140 /* : Bool */;
3098 int cltype141;
3099 int idtype142;
3100 const char* var_class_name143;
3101 long var144 /* : Int */;
3102 char* var146 /* : NativeString */;
3103 long var147 /* : Int */;
3104 long var149 /* : Int */;
3105 char* var150 /* : NativeString */;
3106 char* var152 /* : NativeString */;
3107 char* var_nns /* var nns: NativeString */;
3108 char* var153 /* : NativeString */;
3109 char* var155 /* : NativeString */;
3110 long var156 /* : Int */;
3111 long var158 /* : Int */;
3112 long var159 /* : Int */;
3113 short int var161 /* : Bool */;
3114 int cltype162;
3115 int idtype163;
3116 const char* var_class_name164;
3117 long var165 /* : Int */;
3118 long var166 /* : Int */;
3119 long var168 /* : Int */;
3120 char* var170 /* : NativeString */;
3121 char* var172 /* : NativeString */;
3122 long var173 /* : Int */;
3123 long var175 /* : Int */;
3124 long var176 /* : Int */;
3125 short int var178 /* : Bool */;
3126 int cltype179;
3127 int idtype180;
3128 const char* var_class_name181;
3129 long var182 /* : Int */;
3130 long var183 /* : Int */;
3131 long var184 /* : Int */;
3132 short int var186 /* : Bool */;
3133 int cltype187;
3134 int idtype188;
3135 const char* var_class_name189;
3136 long var190 /* : Int */;
3137 long var191 /* : Int */;
3138 long var192 /* : Int */;
3139 short int var194 /* : Bool */;
3140 int cltype195;
3141 int idtype196;
3142 const char* var_class_name197;
3143 long var198 /* : Int */;
3144 long var199 /* : Int */;
3145 long var201 /* : Int */;
3146 long var202 /* : Int */;
3147 short int var204 /* : Bool */;
3148 int cltype205;
3149 int idtype206;
3150 const char* var_class_name207;
3151 long var208 /* : Int */;
3152 long var209 /* : Int */;
3153 short int var211 /* : Bool */;
3154 int cltype212;
3155 int idtype213;
3156 const char* var_class_name214;
3157 long var215 /* : Int */;
3158 long var218 /* : Int */;
3159 long var220 /* : Int */;
3160 long var221 /* : Int */;
3161 short int var223 /* : Bool */;
3162 int cltype224;
3163 int idtype225;
3164 const char* var_class_name226;
3165 long var227 /* : Int */;
3166 char* var228 /* : NativeString */;
3167 char* var230 /* : NativeString */;
3168 char* var231 /* : NativeString */;
3169 char* var233 /* : NativeString */;
3170 long var234 /* : Int */;
3171 long var236 /* : Int */;
3172 long var237 /* : Int */;
3173 short int var239 /* : Bool */;
3174 int cltype240;
3175 int idtype241;
3176 const char* var_class_name242;
3177 long var243 /* : Int */;
3178 long var244 /* : Int */;
3179 short int var246 /* : Bool */;
3180 int cltype247;
3181 int idtype248;
3182 const char* var_class_name249;
3183 long var250 /* : Int */;
3184 val* var_252 /* var : RopeBuffer */;
3185 long var253 /* : Int */;
3186 long var254 /* : Int */;
3187 short int var256 /* : Bool */;
3188 int cltype257;
3189 int idtype258;
3190 const char* var_class_name259;
3191 long var260 /* : Int */;
3192 val* var_261 /* var : RopeBuffer */;
3193 long var262 /* : Int */;
3194 long var264 /* : Int */;
3195 long var265 /* : Int */;
3196 short int var267 /* : Bool */;
3197 int cltype268;
3198 int idtype269;
3199 const char* var_class_name270;
3200 long var271 /* : Int */;
3201 char* var273 /* : NativeString */;
3202 char* var275 /* : NativeString */;
3203 var_i = p0;
3204 var_c = p1;
3205 {
3206 { /* Inline kernel#Int#>= (var_i,0l) on <var_i:Int> */
3207 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
3208 /* <0l:Int> isa OTHER */
3209 var3 = 1; /* easy <0l:Int> isa OTHER*/
3210 if (unlikely(!var3)) {
3211 var_class_name = type_core__Int.name;
3212 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3213 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
3214 fatal_exit(1);
3215 }
3216 var4 = var_i >= 0l;
3217 var1 = var4;
3218 goto RET_LABEL2;
3219 RET_LABEL2:(void)0;
3220 }
3221 }
3222 var_ = var1;
3223 if (var1){
3224 {
3225 var5 = core___core__RopeBuffer___core__abstract_text__Text__length(self);
3226 }
3227 {
3228 { /* Inline kernel#Int#<= (var_i,var5) on <var_i:Int> */
3229 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
3230 /* <var5:Int> isa OTHER */
3231 var8 = 1; /* easy <var5:Int> isa OTHER*/
3232 if (unlikely(!var8)) {
3233 var_class_name11 = type_core__Int.name;
3234 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
3235 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
3236 fatal_exit(1);
3237 }
3238 var12 = var_i <= var5;
3239 var6 = var12;
3240 goto RET_LABEL7;
3241 RET_LABEL7:(void)0;
3242 }
3243 }
3244 var = var6;
3245 } else {
3246 var = var_;
3247 }
3248 if (unlikely(!var)) {
3249 PRINT_ERROR("Runtime error: %s", "Assert failed");
3250 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 391);
3251 fatal_exit(1);
3252 }
3253 {
3254 var13 = core___core__RopeBuffer___core__abstract_text__Text__length(self);
3255 }
3256 {
3257 { /* Inline kernel#Int#== (var_i,var13) on <var_i:Int> */
3258 var16 = var_i == var13;
3259 var14 = var16;
3260 goto RET_LABEL15;
3261 RET_LABEL15:(void)0;
3262 }
3263 }
3264 if (var14){
3265 {
3266 core___core__RopeBuffer___core__abstract_text__Buffer__add(self, var_c); /* Direct call ropes#RopeBuffer#add on <self:RopeBuffer>*/
3267 }
3268 } else {
3269 }
3270 {
3271 { /* Inline ropes#RopeBuffer#str (self) on <self:RopeBuffer> */
3272 var19 = self->attrs[COLOR_core__ropes__RopeBuffer___str].val; /* _str on <self:RopeBuffer> */
3273 if (unlikely(var19 == NULL)) {
3274 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
3275 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 310);
3276 fatal_exit(1);
3277 }
3278 var17 = var19;
3279 RET_LABEL18:(void)0;
3280 }
3281 }
3282 {
3283 var20 = ((long(*)(val* self))(var17->class->vft[COLOR_core__abstract_text__Text__length]))(var17); /* length on <var17:String>*/
3284 }
3285 {
3286 { /* Inline kernel#Int#< (var_i,var20) on <var_i:Int> */
3287 /* Covariant cast for argument 0 (i) <var20:Int> isa OTHER */
3288 /* <var20:Int> isa OTHER */
3289 var23 = 1; /* easy <var20:Int> isa OTHER*/
3290 if (unlikely(!var23)) {
3291 var_class_name26 = type_core__Int.name;
3292 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name26);
3293 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3294 fatal_exit(1);
3295 }
3296 var27 = var_i < var20;
3297 var21 = var27;
3298 goto RET_LABEL22;
3299 RET_LABEL22:(void)0;
3300 }
3301 }
3302 if (var21){
3303 var_28 = self;
3304 var29 = var_28->attrs[COLOR_core__ropes__RopeBuffer___bytelen].l; /* _bytelen on <var_28:RopeBuffer> */
3305 {
3306 var30 = core__abstract_text___Char___u8char_len(var_c);
3307 }
3308 {
3309 { /* Inline ropes#RopeBuffer#str (self) on <self:RopeBuffer> */
3310 var33 = self->attrs[COLOR_core__ropes__RopeBuffer___str].val; /* _str on <self:RopeBuffer> */
3311 if (unlikely(var33 == NULL)) {
3312 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
3313 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 310);
3314 fatal_exit(1);
3315 }
3316 var31 = var33;
3317 RET_LABEL32:(void)0;
3318 }
3319 }
3320 {
3321 var34 = ((uint32_t(*)(val* self, long p0))(var31->class->vft[COLOR_core__abstract_text__Text___91d_93d]))(var31, var_i); /* [] on <var31:String>*/
3322 }
3323 {
3324 var35 = core__abstract_text___Char___u8char_len(var34);
3325 }
3326 {
3327 { /* Inline kernel#Int#- (var30,var35) on <var30:Int> */
3328 /* Covariant cast for argument 0 (i) <var35:Int> isa OTHER */
3329 /* <var35:Int> isa OTHER */
3330 var38 = 1; /* easy <var35:Int> isa OTHER*/
3331 if (unlikely(!var38)) {
3332 var_class_name41 = type_core__Int.name;
3333 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41);
3334 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
3335 fatal_exit(1);
3336 }
3337 var42 = var30 - var35;
3338 var36 = var42;
3339 goto RET_LABEL37;
3340 RET_LABEL37:(void)0;
3341 }
3342 }
3343 {
3344 { /* Inline kernel#Int#+ (var29,var36) on <var29:Int> */
3345 /* Covariant cast for argument 0 (i) <var36:Int> isa OTHER */
3346 /* <var36:Int> isa OTHER */
3347 var45 = 1; /* easy <var36:Int> isa OTHER*/
3348 if (unlikely(!var45)) {
3349 var_class_name48 = type_core__Int.name;
3350 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48);
3351 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3352 fatal_exit(1);
3353 }
3354 var49 = var29 + var36;
3355 var43 = var49;
3356 goto RET_LABEL44;
3357 RET_LABEL44:(void)0;
3358 }
3359 }
3360 var_28->attrs[COLOR_core__ropes__RopeBuffer___bytelen].l = var43; /* _bytelen on <var_28:RopeBuffer> */
3361 {
3362 { /* Inline ropes#RopeBuffer#str (self) on <self:RopeBuffer> */
3363 var52 = self->attrs[COLOR_core__ropes__RopeBuffer___str].val; /* _str on <self:RopeBuffer> */
3364 if (unlikely(var52 == NULL)) {
3365 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
3366 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 310);
3367 fatal_exit(1);
3368 }
3369 var50 = var52;
3370 RET_LABEL51:(void)0;
3371 }
3372 }
3373 var_s = var50;
3374 {
3375 var53 = ((val*(*)(val* self, long p0, long p1))(var_s->class->vft[COLOR_core__abstract_text__Text__substring]))(var_s, 0l, var_i); /* substring on <var_s:String>*/
3376 }
3377 var_l = var53;
3378 {
3379 { /* Inline kernel#Int#+ (var_i,1l) on <var_i:Int> */
3380 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3381 /* <1l:Int> isa OTHER */
3382 var56 = 1; /* easy <1l:Int> isa OTHER*/
3383 if (unlikely(!var56)) {
3384 var_class_name59 = type_core__Int.name;
3385 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name59);
3386 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3387 fatal_exit(1);
3388 }
3389 var60 = var_i + 1l;
3390 var54 = var60;
3391 goto RET_LABEL55;
3392 RET_LABEL55:(void)0;
3393 }
3394 }
3395 {
3396 var61 = ((val*(*)(val* self, long p0))(var_s->class->vft[COLOR_core__abstract_text__Text__substring_from]))(var_s, var54); /* substring_from on <var_s:String>*/
3397 }
3398 var_r = var61;
3399 {
3400 var62 = core__abstract_text___Char___Object__to_s(var_c);
3401 }
3402 {
3403 var63 = ((val*(*)(val* self, val* p0))(var_l->class->vft[COLOR_core__abstract_text__String___43d]))(var_l, var62); /* + on <var_l:String>*/
3404 }
3405 {
3406 var64 = ((val*(*)(val* self, val* p0))(var63->class->vft[COLOR_core__abstract_text__String___43d]))(var63, var_r); /* + on <var63:String>*/
3407 }
3408 {
3409 { /* Inline ropes#RopeBuffer#str= (self,var64) on <self:RopeBuffer> */
3410 self->attrs[COLOR_core__ropes__RopeBuffer___str].val = var64; /* _str on <self:RopeBuffer> */
3411 RET_LABEL65:(void)0;
3412 }
3413 }
3414 } else {
3415 {
3416 { /* Inline ropes#RopeBuffer#str (self) on <self:RopeBuffer> */
3417 var68 = self->attrs[COLOR_core__ropes__RopeBuffer___str].val; /* _str on <self:RopeBuffer> */
3418 if (unlikely(var68 == NULL)) {
3419 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
3420 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 310);
3421 fatal_exit(1);
3422 }
3423 var66 = var68;
3424 RET_LABEL67:(void)0;
3425 }
3426 }
3427 {
3428 var69 = ((long(*)(val* self))(var66->class->vft[COLOR_core__abstract_text__Text__length]))(var66); /* length on <var66:String>*/
3429 }
3430 {
3431 { /* Inline kernel#Int#- (var_i,var69) on <var_i:Int> */
3432 /* Covariant cast for argument 0 (i) <var69:Int> isa OTHER */
3433 /* <var69:Int> isa OTHER */
3434 var72 = 1; /* easy <var69:Int> isa OTHER*/
3435 if (unlikely(!var72)) {
3436 var_class_name75 = type_core__Int.name;
3437 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name75);
3438 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
3439 fatal_exit(1);
3440 }
3441 var76 = var_i - var69;
3442 var70 = var76;
3443 goto RET_LABEL71;
3444 RET_LABEL71:(void)0;
3445 }
3446 }
3447 var_reali = var70;
3448 {
3449 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
3450 var79 = self->attrs[COLOR_core__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
3451 var77 = var79;
3452 RET_LABEL78:(void)0;
3453 }
3454 }
3455 {
3456 { /* Inline ropes#RopeBuffer#dumped (self) on <self:RopeBuffer> */
3457 var82 = self->attrs[COLOR_core__ropes__RopeBuffer___dumped].l; /* _dumped on <self:RopeBuffer> */
3458 var80 = var82;
3459 RET_LABEL81:(void)0;
3460 }
3461 }
3462 {
3463 var83 = core___core__NativeString___char_to_byte_index_cached(var77, var_reali, 0l, var80);
3464 }
3465 var_index = var83;
3466 {
3467 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
3468 var86 = self->attrs[COLOR_core__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
3469 var84 = var86;
3470 RET_LABEL85:(void)0;
3471 }
3472 }
3473 {
3474 { /* Inline kernel#Int#+ (var_reali,1l) on <var_reali:Int> */
3475 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3476 /* <1l:Int> isa OTHER */
3477 var89 = 1; /* easy <1l:Int> isa OTHER*/
3478 if (unlikely(!var89)) {
3479 var_class_name92 = type_core__Int.name;
3480 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name92);
3481 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3482 fatal_exit(1);
3483 }
3484 var93 = var_reali + 1l;
3485 var87 = var93;
3486 goto RET_LABEL88;
3487 RET_LABEL88:(void)0;
3488 }
3489 }
3490 {
3491 var94 = core___core__NativeString___char_to_byte_index_cached(var84, var87, var_reali, var_index);
3492 }
3493 var_st_nxt = var94;
3494 {
3495 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
3496 var97 = self->attrs[COLOR_core__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
3497 var95 = var97;
3498 RET_LABEL96:(void)0;
3499 }
3500 }
3501 {
3502 var98 = core___core__NativeString___char_at(var95, var_index);
3503 }
3504 var_loc_c = var98;
3505 {
3506 var99 = core__abstract_text___Char___u8char_len(var_loc_c);
3507 }
3508 {
3509 var100 = core__abstract_text___Char___u8char_len(var_c);
3510 }
3511 {
3512 { /* Inline kernel#Int#!= (var99,var100) on <var99:Int> */
3513 var103 = var99 == var100;
3514 var104 = !var103;
3515 var101 = var104;
3516 goto RET_LABEL102;
3517 RET_LABEL102:(void)0;
3518 }
3519 }
3520 if (var101){
3521 {
3522 var105 = core__abstract_text___Char___u8char_len(var_c);
3523 }
3524 {
3525 var106 = core__abstract_text___Char___u8char_len(var_loc_c);
3526 }
3527 {
3528 { /* Inline kernel#Int#- (var105,var106) on <var105:Int> */
3529 /* Covariant cast for argument 0 (i) <var106:Int> isa OTHER */
3530 /* <var106:Int> isa OTHER */
3531 var109 = 1; /* easy <var106:Int> isa OTHER*/
3532 if (unlikely(!var109)) {
3533 var_class_name112 = type_core__Int.name;
3534 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name112);
3535 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
3536 fatal_exit(1);
3537 }
3538 var113 = var105 - var106;
3539 var107 = var113;
3540 goto RET_LABEL108;
3541 RET_LABEL108:(void)0;
3542 }
3543 }
3544 var_delta = var107;
3545 {
3546 { /* Inline ropes#RopeBuffer#buf_size (self) on <self:RopeBuffer> */
3547 var116 = self->attrs[COLOR_core__ropes__RopeBuffer___buf_size].l; /* _buf_size on <self:RopeBuffer> */
3548 var114 = var116;
3549 RET_LABEL115:(void)0;
3550 }
3551 }
3552 {
3553 { /* Inline ropes#RopeBuffer#rpos (self) on <self:RopeBuffer> */
3554 var119 = self->attrs[COLOR_core__ropes__RopeBuffer___rpos].l; /* _rpos on <self:RopeBuffer> */
3555 var117 = var119;
3556 RET_LABEL118:(void)0;
3557 }
3558 }
3559 {
3560 { /* Inline kernel#Int#- (var114,var117) on <var114:Int> */
3561 /* Covariant cast for argument 0 (i) <var117:Int> isa OTHER */
3562 /* <var117:Int> isa OTHER */
3563 var122 = 1; /* easy <var117:Int> isa OTHER*/
3564 if (unlikely(!var122)) {
3565 var_class_name125 = type_core__Int.name;
3566 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name125);
3567 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
3568 fatal_exit(1);
3569 }
3570 var126 = var114 - var117;
3571 var120 = var126;
3572 goto RET_LABEL121;
3573 RET_LABEL121:(void)0;
3574 }
3575 }
3576 var_remsp = var120;
3577 {
3578 { /* Inline kernel#Int#< (var_remsp,var_delta) on <var_remsp:Int> */
3579 /* Covariant cast for argument 0 (i) <var_delta:Int> isa OTHER */
3580 /* <var_delta:Int> isa OTHER */
3581 var129 = 1; /* easy <var_delta:Int> isa OTHER*/
3582 if (unlikely(!var129)) {
3583 var_class_name132 = type_core__Int.name;
3584 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name132);
3585 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3586 fatal_exit(1);
3587 }
3588 var133 = var_remsp < var_delta;
3589 var127 = var133;
3590 goto RET_LABEL128;
3591 RET_LABEL128:(void)0;
3592 }
3593 }
3594 if (var127){
3595 var_134 = self;
3596 {
3597 { /* Inline ropes#RopeBuffer#buf_size (var_134) on <var_134:RopeBuffer> */
3598 var137 = var_134->attrs[COLOR_core__ropes__RopeBuffer___buf_size].l; /* _buf_size on <var_134:RopeBuffer> */
3599 var135 = var137;
3600 RET_LABEL136:(void)0;
3601 }
3602 }
3603 {
3604 { /* Inline kernel#Int#* (var135,2l) on <var135:Int> */
3605 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
3606 /* <2l:Int> isa OTHER */
3607 var140 = 1; /* easy <2l:Int> isa OTHER*/
3608 if (unlikely(!var140)) {
3609 var_class_name143 = type_core__Int.name;
3610 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name143);
3611 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 735);
3612 fatal_exit(1);
3613 }
3614 var144 = var135 * 2l;
3615 var138 = var144;
3616 goto RET_LABEL139;
3617 RET_LABEL139:(void)0;
3618 }
3619 }
3620 {
3621 { /* Inline ropes#RopeBuffer#buf_size= (var_134,var138) on <var_134:RopeBuffer> */
3622 var_134->attrs[COLOR_core__ropes__RopeBuffer___buf_size].l = var138; /* _buf_size on <var_134:RopeBuffer> */
3623 RET_LABEL145:(void)0;
3624 }
3625 }
3626 var146 = NULL/*special!*/;
3627 {
3628 { /* Inline ropes#RopeBuffer#buf_size (self) on <self:RopeBuffer> */
3629 var149 = self->attrs[COLOR_core__ropes__RopeBuffer___buf_size].l; /* _buf_size on <self:RopeBuffer> */
3630 var147 = var149;
3631 RET_LABEL148:(void)0;
3632 }
3633 }
3634 {
3635 { /* Inline native#NativeString#new (var146,var147) on <var146:NativeString> */
3636 var152 = (char*)nit_alloc(var147);
3637 var150 = var152;
3638 goto RET_LABEL151;
3639 RET_LABEL151:(void)0;
3640 }
3641 }
3642 var_nns = var150;
3643 {
3644 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
3645 var155 = self->attrs[COLOR_core__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
3646 var153 = var155;
3647 RET_LABEL154:(void)0;
3648 }
3649 }
3650 {
3651 { /* Inline ropes#RopeBuffer#dumped (self) on <self:RopeBuffer> */
3652 var158 = self->attrs[COLOR_core__ropes__RopeBuffer___dumped].l; /* _dumped on <self:RopeBuffer> */
3653 var156 = var158;
3654 RET_LABEL157:(void)0;
3655 }
3656 }
3657 {
3658 { /* Inline kernel#Int#- (var_index,var156) on <var_index:Int> */
3659 /* Covariant cast for argument 0 (i) <var156:Int> isa OTHER */
3660 /* <var156:Int> isa OTHER */
3661 var161 = 1; /* easy <var156:Int> isa OTHER*/
3662 if (unlikely(!var161)) {
3663 var_class_name164 = type_core__Int.name;
3664 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name164);
3665 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
3666 fatal_exit(1);
3667 }
3668 var165 = var_index - var156;
3669 var159 = var165;
3670 goto RET_LABEL160;
3671 RET_LABEL160:(void)0;
3672 }
3673 }
3674 {
3675 { /* Inline ropes#RopeBuffer#dumped (self) on <self:RopeBuffer> */
3676 var168 = self->attrs[COLOR_core__ropes__RopeBuffer___dumped].l; /* _dumped on <self:RopeBuffer> */
3677 var166 = var168;
3678 RET_LABEL167:(void)0;
3679 }
3680 }
3681 {
3682 { /* Inline native#NativeString#copy_to (var153,var_nns,var159,var166,0l) on <var153:NativeString> */
3683 memmove(var_nns+0l,var153+var166,var159);
3684 RET_LABEL169:(void)0;
3685 }
3686 }
3687 {
3688 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
3689 var172 = self->attrs[COLOR_core__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
3690 var170 = var172;
3691 RET_LABEL171:(void)0;
3692 }
3693 }
3694 {
3695 { /* Inline ropes#RopeBuffer#rpos (self) on <self:RopeBuffer> */
3696 var175 = self->attrs[COLOR_core__ropes__RopeBuffer___rpos].l; /* _rpos on <self:RopeBuffer> */
3697 var173 = var175;
3698 RET_LABEL174:(void)0;
3699 }
3700 }
3701 {
3702 { /* Inline kernel#Int#- (var173,var_index) on <var173:Int> */
3703 /* Covariant cast for argument 0 (i) <var_index:Int> isa OTHER */
3704 /* <var_index:Int> isa OTHER */
3705 var178 = 1; /* easy <var_index:Int> isa OTHER*/
3706 if (unlikely(!var178)) {
3707 var_class_name181 = type_core__Int.name;
3708 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name181);
3709 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
3710 fatal_exit(1);
3711 }
3712 var182 = var173 - var_index;
3713 var176 = var182;
3714 goto RET_LABEL177;
3715 RET_LABEL177:(void)0;
3716 }
3717 }
3718 {
3719 var183 = core__abstract_text___Char___u8char_len(var_loc_c);
3720 }
3721 {
3722 { /* Inline kernel#Int#- (var176,var183) on <var176:Int> */
3723 /* Covariant cast for argument 0 (i) <var183:Int> isa OTHER */
3724 /* <var183:Int> isa OTHER */
3725 var186 = 1; /* easy <var183:Int> isa OTHER*/
3726 if (unlikely(!var186)) {
3727 var_class_name189 = type_core__Int.name;
3728 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name189);
3729 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
3730 fatal_exit(1);
3731 }
3732 var190 = var176 - var183;
3733 var184 = var190;
3734 goto RET_LABEL185;
3735 RET_LABEL185:(void)0;
3736 }
3737 }
3738 {
3739 var191 = core__abstract_text___Char___u8char_len(var_loc_c);
3740 }
3741 {
3742 { /* Inline kernel#Int#+ (var_index,var191) on <var_index:Int> */
3743 /* Covariant cast for argument 0 (i) <var191:Int> isa OTHER */
3744 /* <var191:Int> isa OTHER */
3745 var194 = 1; /* easy <var191:Int> isa OTHER*/
3746 if (unlikely(!var194)) {
3747 var_class_name197 = type_core__Int.name;
3748 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name197);
3749 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3750 fatal_exit(1);
3751 }
3752 var198 = var_index + var191;
3753 var192 = var198;
3754 goto RET_LABEL193;
3755 RET_LABEL193:(void)0;
3756 }
3757 }
3758 {
3759 { /* Inline ropes#RopeBuffer#dumped (self) on <self:RopeBuffer> */
3760 var201 = self->attrs[COLOR_core__ropes__RopeBuffer___dumped].l; /* _dumped on <self:RopeBuffer> */
3761 var199 = var201;
3762 RET_LABEL200:(void)0;
3763 }
3764 }
3765 {
3766 { /* Inline kernel#Int#- (var_index,var199) on <var_index:Int> */
3767 /* Covariant cast for argument 0 (i) <var199:Int> isa OTHER */
3768 /* <var199:Int> isa OTHER */
3769 var204 = 1; /* easy <var199:Int> isa OTHER*/
3770 if (unlikely(!var204)) {
3771 var_class_name207 = type_core__Int.name;
3772 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name207);
3773 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
3774 fatal_exit(1);
3775 }
3776 var208 = var_index - var199;
3777 var202 = var208;
3778 goto RET_LABEL203;
3779 RET_LABEL203:(void)0;
3780 }
3781 }
3782 {
3783 { /* Inline kernel#Int#+ (var202,var_delta) on <var202:Int> */
3784 /* Covariant cast for argument 0 (i) <var_delta:Int> isa OTHER */
3785 /* <var_delta:Int> isa OTHER */
3786 var211 = 1; /* easy <var_delta:Int> isa OTHER*/
3787 if (unlikely(!var211)) {
3788 var_class_name214 = type_core__Int.name;
3789 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name214);
3790 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3791 fatal_exit(1);
3792 }
3793 var215 = var202 + var_delta;
3794 var209 = var215;
3795 goto RET_LABEL210;
3796 RET_LABEL210:(void)0;
3797 }
3798 }
3799 {
3800 { /* Inline native#NativeString#copy_to (var170,var_nns,var184,var192,var209) on <var170:NativeString> */
3801 memmove(var_nns+var209,var170+var192,var184);
3802 RET_LABEL216:(void)0;
3803 }
3804 }
3805 {
3806 { /* Inline ropes#RopeBuffer#ns= (self,var_nns) on <self:RopeBuffer> */
3807 self->attrs[COLOR_core__ropes__RopeBuffer___ns].str = var_nns; /* _ns on <self:RopeBuffer> */
3808 RET_LABEL217:(void)0;
3809 }
3810 }
3811 {
3812 { /* Inline ropes#RopeBuffer#dumped (self) on <self:RopeBuffer> */
3813 var220 = self->attrs[COLOR_core__ropes__RopeBuffer___dumped].l; /* _dumped on <self:RopeBuffer> */
3814 var218 = var220;
3815 RET_LABEL219:(void)0;
3816 }
3817 }
3818 {
3819 { /* Inline kernel#Int#- (var_index,var218) on <var_index:Int> */
3820 /* Covariant cast for argument 0 (i) <var218:Int> isa OTHER */
3821 /* <var218:Int> isa OTHER */
3822 var223 = 1; /* easy <var218:Int> isa OTHER*/
3823 if (unlikely(!var223)) {
3824 var_class_name226 = type_core__Int.name;
3825 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name226);
3826 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
3827 fatal_exit(1);
3828 }
3829 var227 = var_index - var218;
3830 var221 = var227;
3831 goto RET_LABEL222;
3832 RET_LABEL222:(void)0;
3833 }
3834 }
3835 var_index = var221;
3836 } else {
3837 {
3838 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
3839 var230 = self->attrs[COLOR_core__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
3840 var228 = var230;
3841 RET_LABEL229:(void)0;
3842 }
3843 }
3844 {
3845 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
3846 var233 = self->attrs[COLOR_core__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
3847 var231 = var233;
3848 RET_LABEL232:(void)0;
3849 }
3850 }
3851 {
3852 { /* Inline ropes#RopeBuffer#rpos (self) on <self:RopeBuffer> */
3853 var236 = self->attrs[COLOR_core__ropes__RopeBuffer___rpos].l; /* _rpos on <self:RopeBuffer> */
3854 var234 = var236;
3855 RET_LABEL235:(void)0;
3856 }
3857 }
3858 {
3859 { /* Inline kernel#Int#- (var234,var_st_nxt) on <var234:Int> */
3860 /* Covariant cast for argument 0 (i) <var_st_nxt:Int> isa OTHER */
3861 /* <var_st_nxt:Int> isa OTHER */
3862 var239 = 1; /* easy <var_st_nxt:Int> isa OTHER*/
3863 if (unlikely(!var239)) {
3864 var_class_name242 = type_core__Int.name;
3865 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name242);
3866 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
3867 fatal_exit(1);
3868 }
3869 var243 = var234 - var_st_nxt;
3870 var237 = var243;
3871 goto RET_LABEL238;
3872 RET_LABEL238:(void)0;
3873 }
3874 }
3875 {
3876 { /* Inline kernel#Int#+ (var_st_nxt,var_delta) on <var_st_nxt:Int> */
3877 /* Covariant cast for argument 0 (i) <var_delta:Int> isa OTHER */
3878 /* <var_delta:Int> isa OTHER */
3879 var246 = 1; /* easy <var_delta:Int> isa OTHER*/
3880 if (unlikely(!var246)) {
3881 var_class_name249 = type_core__Int.name;
3882 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name249);
3883 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3884 fatal_exit(1);
3885 }
3886 var250 = var_st_nxt + var_delta;
3887 var244 = var250;
3888 goto RET_LABEL245;
3889 RET_LABEL245:(void)0;
3890 }
3891 }
3892 {
3893 { /* Inline native#NativeString#copy_to (var228,var231,var237,var_st_nxt,var244) on <var228:NativeString> */
3894 memmove(var231+var244,var228+var_st_nxt,var237);
3895 RET_LABEL251:(void)0;
3896 }
3897 }
3898 }
3899 var_252 = self;
3900 var253 = var_252->attrs[COLOR_core__ropes__RopeBuffer___bytelen].l; /* _bytelen on <var_252:RopeBuffer> */
3901 {
3902 { /* Inline kernel#Int#+ (var253,var_delta) on <var253:Int> */
3903 /* Covariant cast for argument 0 (i) <var_delta:Int> isa OTHER */
3904 /* <var_delta:Int> isa OTHER */
3905 var256 = 1; /* easy <var_delta:Int> isa OTHER*/
3906 if (unlikely(!var256)) {
3907 var_class_name259 = type_core__Int.name;
3908 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name259);
3909 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3910 fatal_exit(1);
3911 }
3912 var260 = var253 + var_delta;
3913 var254 = var260;
3914 goto RET_LABEL255;
3915 RET_LABEL255:(void)0;
3916 }
3917 }
3918 var_252->attrs[COLOR_core__ropes__RopeBuffer___bytelen].l = var254; /* _bytelen on <var_252:RopeBuffer> */
3919 var_261 = self;
3920 {
3921 { /* Inline ropes#RopeBuffer#rpos (var_261) on <var_261:RopeBuffer> */
3922 var264 = var_261->attrs[COLOR_core__ropes__RopeBuffer___rpos].l; /* _rpos on <var_261:RopeBuffer> */
3923 var262 = var264;
3924 RET_LABEL263:(void)0;
3925 }
3926 }
3927 {
3928 { /* Inline kernel#Int#+ (var262,var_delta) on <var262:Int> */
3929 /* Covariant cast for argument 0 (i) <var_delta:Int> isa OTHER */
3930 /* <var_delta:Int> isa OTHER */
3931 var267 = 1; /* easy <var_delta:Int> isa OTHER*/
3932 if (unlikely(!var267)) {
3933 var_class_name270 = type_core__Int.name;
3934 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name270);
3935 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3936 fatal_exit(1);
3937 }
3938 var271 = var262 + var_delta;
3939 var265 = var271;
3940 goto RET_LABEL266;
3941 RET_LABEL266:(void)0;
3942 }
3943 }
3944 {
3945 { /* Inline ropes#RopeBuffer#rpos= (var_261,var265) on <var_261:RopeBuffer> */
3946 var_261->attrs[COLOR_core__ropes__RopeBuffer___rpos].l = var265; /* _rpos on <var_261:RopeBuffer> */
3947 RET_LABEL272:(void)0;
3948 }
3949 }
3950 } else {
3951 }
3952 {
3953 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
3954 var275 = self->attrs[COLOR_core__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
3955 var273 = var275;
3956 RET_LABEL274:(void)0;
3957 }
3958 }
3959 {
3960 core__flat___NativeString___set_char_at(var273, var_index, var_c); /* Direct call flat#NativeString#set_char_at on <var273:NativeString>*/
3961 }
3962 }
3963 RET_LABEL:;
3964 }
3965 /* method ropes#RopeBuffer#empty for (self: RopeBuffer): Buffer */
3966 val* core___core__RopeBuffer___core__abstract_text__Text__empty(val* self) {
3967 val* var /* : Buffer */;
3968 val* var1 /* : RopeBuffer */;
3969 var1 = NEW_core__RopeBuffer(&type_core__RopeBuffer);
3970 {
3971 core___core__RopeBuffer___core__kernel__Object__init(var1); /* Direct call ropes#RopeBuffer#init on <var1:RopeBuffer>*/
3972 }
3973 var = var1;
3974 goto RET_LABEL;
3975 RET_LABEL:;
3976 return var;
3977 }
3978 /* method ropes#RopeBuffer#substring for (self: RopeBuffer, Int, Int): Buffer */
3979 val* core___core__RopeBuffer___core__abstract_text__Text__substring(val* self, long p0, long p1) {
3980 val* var /* : Buffer */;
3981 long var_from /* var from: Int */;
3982 long var_count /* var count: Int */;
3983 val* var1 /* : String */;
3984 val* var3 /* : String */;
3985 long var4 /* : Int */;
3986 long var_strlen /* var strlen: Int */;
3987 short int var5 /* : Bool */;
3988 short int var7 /* : Bool */;
3989 int cltype;
3990 int idtype;
3991 const char* var_class_name;
3992 short int var8 /* : Bool */;
3993 long var9 /* : Int */;
3994 short int var11 /* : Bool */;
3995 int cltype12;
3996 int idtype13;
3997 const char* var_class_name14;
3998 long var15 /* : Int */;
3999 short int var16 /* : Bool */;
4000 short int var18 /* : Bool */;
4001 int cltype19;
4002 int idtype20;
4003 const char* var_class_name21;
4004 short int var22 /* : Bool */;
4005 long var23 /* : Int */;
4006 short int var24 /* : Bool */;
4007 short int var26 /* : Bool */;
4008 int cltype27;
4009 int idtype28;
4010 const char* var_class_name29;
4011 short int var30 /* : Bool */;
4012 long var31 /* : Int */;
4013 long var32 /* : Int */;
4014 short int var34 /* : Bool */;
4015 int cltype35;
4016 int idtype36;
4017 const char* var_class_name37;
4018 long var38 /* : Int */;
4019 short int var39 /* : Bool */;
4020 short int var41 /* : Bool */;
4021 val* var42 /* : Buffer */;
4022 short int var43 /* : Bool */;
4023 short int var45 /* : Bool */;
4024 int cltype46;
4025 int idtype47;
4026 const char* var_class_name48;
4027 short int var49 /* : Bool */;
4028 long var50 /* : Int */;
4029 short int var52 /* : Bool */;
4030 int cltype53;
4031 int idtype54;
4032 const char* var_class_name55;
4033 long var56 /* : Int */;
4034 long var_subpos /* var subpos: Int */;
4035 short int var57 /* : Bool */;
4036 short int var59 /* : Bool */;
4037 int cltype60;
4038 int idtype61;
4039 const char* var_class_name62;
4040 short int var63 /* : Bool */;
4041 val* var64 /* : RopeBuffer */;
4042 val* var65 /* : String */;
4043 val* var67 /* : String */;
4044 val* var68 /* : Text */;
4045 val* var69 /* : String */;
4046 val* var71 /* : String */;
4047 val* var72 /* : Text */;
4048 val* var_l /* var l: String */;
4049 long var73 /* : Int */;
4050 short int var75 /* : Bool */;
4051 int cltype76;
4052 int idtype77;
4053 const char* var_class_name78;
4054 long var79 /* : Int */;
4055 long var_rem /* var rem: Int */;
4056 char* var80 /* : NativeString */;
4057 char* var81 /* : NativeString */;
4058 char* var83 /* : NativeString */;
4059 char* var_nns /* var nns: NativeString */;
4060 char* var84 /* : NativeString */;
4061 char* var86 /* : NativeString */;
4062 long var87 /* : Int */;
4063 long var89 /* : Int */;
4064 val* var91 /* : RopeBuffer */;
4065 val* var92 /* : String */;
4066 val* var93 /* : nullable Int */;
4067 val* var94 /* : String */;
4068 char* var95 /* : NativeString */;
4069 char* var96 /* : NativeString */;
4070 char* var98 /* : NativeString */;
4071 char* var_nns99 /* var nns: NativeString */;
4072 char* var100 /* : NativeString */;
4073 char* var102 /* : NativeString */;
4074 long var103 /* : Int */;
4075 long var105 /* : Int */;
4076 val* var107 /* : RopeBuffer */;
4077 val* var108 /* : String */;
4078 val* var109 /* : nullable Int */;
4079 var_from = p0;
4080 var_count = p1;
4081 {
4082 { /* Inline ropes#RopeBuffer#str (self) on <self:RopeBuffer> */
4083 var3 = self->attrs[COLOR_core__ropes__RopeBuffer___str].val; /* _str on <self:RopeBuffer> */
4084 if (unlikely(var3 == NULL)) {
4085 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
4086 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 310);
4087 fatal_exit(1);
4088 }
4089 var1 = var3;
4090 RET_LABEL2:(void)0;
4091 }
4092 }
4093 {
4094 var4 = ((long(*)(val* self))(var1->class->vft[COLOR_core__abstract_text__Text__length]))(var1); /* length on <var1:String>*/
4095 }
4096 var_strlen = var4;
4097 {
4098 { /* Inline kernel#Int#< (var_from,0l) on <var_from:Int> */
4099 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
4100 /* <0l:Int> isa OTHER */
4101 var7 = 1; /* easy <0l:Int> isa OTHER*/
4102 if (unlikely(!var7)) {
4103 var_class_name = type_core__Int.name;
4104 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4105 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
4106 fatal_exit(1);
4107 }
4108 var8 = var_from < 0l;
4109 var5 = var8;
4110 goto RET_LABEL6;
4111 RET_LABEL6:(void)0;
4112 }
4113 }
4114 if (var5){
4115 {
4116 { /* Inline kernel#Int#+ (var_count,var_from) on <var_count:Int> */
4117 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
4118 /* <var_from:Int> isa OTHER */
4119 var11 = 1; /* easy <var_from:Int> isa OTHER*/
4120 if (unlikely(!var11)) {
4121 var_class_name14 = type_core__Int.name;
4122 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14);
4123 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4124 fatal_exit(1);
4125 }
4126 var15 = var_count + var_from;
4127 var9 = var15;
4128 goto RET_LABEL10;
4129 RET_LABEL10:(void)0;
4130 }
4131 }
4132 var_count = var9;
4133 {
4134 { /* Inline kernel#Int#< (var_count,0l) on <var_count:Int> */
4135 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
4136 /* <0l:Int> isa OTHER */
4137 var18 = 1; /* easy <0l:Int> isa OTHER*/
4138 if (unlikely(!var18)) {
4139 var_class_name21 = type_core__Int.name;
4140 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
4141 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
4142 fatal_exit(1);
4143 }
4144 var22 = var_count < 0l;
4145 var16 = var22;
4146 goto RET_LABEL17;
4147 RET_LABEL17:(void)0;
4148 }
4149 }
4150 if (var16){
4151 var_count = 0l;
4152 } else {
4153 }
4154 var_from = 0l;
4155 } else {
4156 }
4157 {
4158 var23 = core___core__RopeBuffer___core__abstract_text__Text__length(self);
4159 }
4160 {
4161 { /* Inline kernel#Int#> (var_count,var23) on <var_count:Int> */
4162 /* Covariant cast for argument 0 (i) <var23:Int> isa OTHER */
4163 /* <var23:Int> isa OTHER */
4164 var26 = 1; /* easy <var23:Int> isa OTHER*/
4165 if (unlikely(!var26)) {
4166 var_class_name29 = type_core__Int.name;
4167 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29);
4168 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
4169 fatal_exit(1);
4170 }
4171 var30 = var_count > var23;
4172 var24 = var30;
4173 goto RET_LABEL25;
4174 RET_LABEL25:(void)0;
4175 }
4176 }
4177 if (var24){
4178 {
4179 var31 = core___core__RopeBuffer___core__abstract_text__Text__length(self);
4180 }
4181 {
4182 { /* Inline kernel#Int#- (var31,var_from) on <var31:Int> */
4183 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
4184 /* <var_from:Int> isa OTHER */
4185 var34 = 1; /* easy <var_from:Int> isa OTHER*/
4186 if (unlikely(!var34)) {
4187 var_class_name37 = type_core__Int.name;
4188 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37);
4189 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
4190 fatal_exit(1);
4191 }
4192 var38 = var31 - var_from;
4193 var32 = var38;
4194 goto RET_LABEL33;
4195 RET_LABEL33:(void)0;
4196 }
4197 }
4198 var_count = var32;
4199 } else {
4200 }
4201 {
4202 { /* Inline kernel#Int#== (var_count,0l) on <var_count:Int> */
4203 var41 = var_count == 0l;
4204 var39 = var41;
4205 goto RET_LABEL40;
4206 RET_LABEL40:(void)0;
4207 }
4208 }
4209 if (var39){
4210 {
4211 var42 = core___core__RopeBuffer___core__abstract_text__Text__empty(self);
4212 }
4213 var = var42;
4214 goto RET_LABEL;
4215 } else {
4216 }
4217 {
4218 { /* Inline kernel#Int#< (var_from,var_strlen) on <var_from:Int> */
4219 /* Covariant cast for argument 0 (i) <var_strlen:Int> isa OTHER */
4220 /* <var_strlen:Int> isa OTHER */
4221 var45 = 1; /* easy <var_strlen:Int> isa OTHER*/
4222 if (unlikely(!var45)) {
4223 var_class_name48 = type_core__Int.name;
4224 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48);
4225 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
4226 fatal_exit(1);
4227 }
4228 var49 = var_from < var_strlen;
4229 var43 = var49;
4230 goto RET_LABEL44;
4231 RET_LABEL44:(void)0;
4232 }
4233 }
4234 if (var43){
4235 {
4236 { /* Inline kernel#Int#- (var_strlen,var_from) on <var_strlen:Int> */
4237 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
4238 /* <var_from:Int> isa OTHER */
4239 var52 = 1; /* easy <var_from:Int> isa OTHER*/
4240 if (unlikely(!var52)) {
4241 var_class_name55 = type_core__Int.name;
4242 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name55);
4243 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
4244 fatal_exit(1);
4245 }
4246 var56 = var_strlen - var_from;
4247 var50 = var56;
4248 goto RET_LABEL51;
4249 RET_LABEL51:(void)0;
4250 }
4251 }
4252 var_subpos = var50;
4253 {
4254 { /* Inline kernel#Int#<= (var_count,var_subpos) on <var_count:Int> */
4255 /* Covariant cast for argument 0 (i) <var_subpos:Int> isa OTHER */
4256 /* <var_subpos:Int> isa OTHER */
4257 var59 = 1; /* easy <var_subpos:Int> isa OTHER*/
4258 if (unlikely(!var59)) {
4259 var_class_name62 = type_core__Int.name;
4260 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name62);
4261 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
4262 fatal_exit(1);
4263 }
4264 var63 = var_count <= var_subpos;
4265 var57 = var63;
4266 goto RET_LABEL58;
4267 RET_LABEL58:(void)0;
4268 }
4269 }
4270 if (var57){
4271 var64 = NEW_core__RopeBuffer(&type_core__RopeBuffer);
4272 {
4273 { /* Inline ropes#RopeBuffer#str (self) on <self:RopeBuffer> */
4274 var67 = self->attrs[COLOR_core__ropes__RopeBuffer___str].val; /* _str on <self:RopeBuffer> */
4275 if (unlikely(var67 == NULL)) {
4276 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
4277 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 310);
4278 fatal_exit(1);
4279 }
4280 var65 = var67;
4281 RET_LABEL66:(void)0;
4282 }
4283 }
4284 {
4285 var68 = ((val*(*)(val* self, long p0, long p1))(var65->class->vft[COLOR_core__abstract_text__Text__substring]))(var65, var_from, var_count); /* substring on <var65:String>*/
4286 }
4287 {
4288 core___core__RopeBuffer___from(var64, var68); /* Direct call ropes#RopeBuffer#from on <var64:RopeBuffer>*/
4289 }
4290 var = var64;
4291 goto RET_LABEL;
4292 } else {
4293 {
4294 { /* Inline ropes#RopeBuffer#str (self) on <self:RopeBuffer> */
4295 var71 = self->attrs[COLOR_core__ropes__RopeBuffer___str].val; /* _str on <self:RopeBuffer> */
4296 if (unlikely(var71 == NULL)) {
4297 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
4298 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 310);
4299 fatal_exit(1);
4300 }
4301 var69 = var71;
4302 RET_LABEL70:(void)0;
4303 }
4304 }
4305 {
4306 var72 = ((val*(*)(val* self, long p0))(var69->class->vft[COLOR_core__abstract_text__Text__substring_from]))(var69, var_from); /* substring_from on <var69:String>*/
4307 }
4308 var_l = var72;
4309 {
4310 { /* Inline kernel#Int#- (var_count,var_subpos) on <var_count:Int> */
4311 /* Covariant cast for argument 0 (i) <var_subpos:Int> isa OTHER */
4312 /* <var_subpos:Int> isa OTHER */
4313 var75 = 1; /* easy <var_subpos:Int> isa OTHER*/
4314 if (unlikely(!var75)) {
4315 var_class_name78 = type_core__Int.name;
4316 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name78);
4317 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
4318 fatal_exit(1);
4319 }
4320 var79 = var_count - var_subpos;
4321 var73 = var79;
4322 goto RET_LABEL74;
4323 RET_LABEL74:(void)0;
4324 }
4325 }
4326 var_rem = var73;
4327 var80 = NULL/*special!*/;
4328 {
4329 { /* Inline native#NativeString#new (var80,var_rem) on <var80:NativeString> */
4330 var83 = (char*)nit_alloc(var_rem);
4331 var81 = var83;
4332 goto RET_LABEL82;
4333 RET_LABEL82:(void)0;
4334 }
4335 }
4336 var_nns = var81;
4337 {
4338 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
4339 var86 = self->attrs[COLOR_core__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
4340 var84 = var86;
4341 RET_LABEL85:(void)0;
4342 }
4343 }
4344 {
4345 { /* Inline ropes#RopeBuffer#dumped (self) on <self:RopeBuffer> */
4346 var89 = self->attrs[COLOR_core__ropes__RopeBuffer___dumped].l; /* _dumped on <self:RopeBuffer> */
4347 var87 = var89;
4348 RET_LABEL88:(void)0;
4349 }
4350 }
4351 {
4352 { /* Inline native#NativeString#copy_to (var84,var_nns,var_rem,var87,0l) on <var84:NativeString> */
4353 memmove(var_nns+0l,var84+var87,var_rem);
4354 RET_LABEL90:(void)0;
4355 }
4356 }
4357 var91 = NEW_core__RopeBuffer(&type_core__RopeBuffer);
4358 {
4359 var93 = (val*)(var_rem<<2|1);
4360 var92 = core__flat___NativeString___to_s_unsafe(var_nns, var93);
4361 }
4362 {
4363 var94 = ((val*(*)(val* self, val* p0))(var_l->class->vft[COLOR_core__abstract_text__String___43d]))(var_l, var92); /* + on <var_l:String>*/
4364 }
4365 {
4366 core___core__RopeBuffer___from(var91, var94); /* Direct call ropes#RopeBuffer#from on <var91:RopeBuffer>*/
4367 }
4368 var = var91;
4369 goto RET_LABEL;
4370 }
4371 } else {
4372 var95 = NULL/*special!*/;
4373 {
4374 { /* Inline native#NativeString#new (var95,var_count) on <var95:NativeString> */
4375 var98 = (char*)nit_alloc(var_count);
4376 var96 = var98;
4377 goto RET_LABEL97;
4378 RET_LABEL97:(void)0;
4379 }
4380 }
4381 var_nns99 = var96;
4382 {
4383 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
4384 var102 = self->attrs[COLOR_core__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
4385 var100 = var102;
4386 RET_LABEL101:(void)0;
4387 }
4388 }
4389 {
4390 { /* Inline ropes#RopeBuffer#dumped (self) on <self:RopeBuffer> */
4391 var105 = self->attrs[COLOR_core__ropes__RopeBuffer___dumped].l; /* _dumped on <self:RopeBuffer> */
4392 var103 = var105;
4393 RET_LABEL104:(void)0;
4394 }
4395 }
4396 {
4397 { /* Inline native#NativeString#copy_to (var100,var_nns99,var_count,var103,0l) on <var100:NativeString> */
4398 memmove(var_nns99+0l,var100+var103,var_count);
4399 RET_LABEL106:(void)0;
4400 }
4401 }
4402 var107 = NEW_core__RopeBuffer(&type_core__RopeBuffer);
4403 {
4404 var109 = (val*)(var_count<<2|1);
4405 var108 = core__flat___NativeString___to_s_unsafe(var_nns99, var109);
4406 }
4407 {
4408 core___core__RopeBuffer___from(var107, var108); /* Direct call ropes#RopeBuffer#from on <var107:RopeBuffer>*/
4409 }
4410 var = var107;
4411 goto RET_LABEL;
4412 }
4413 RET_LABEL:;
4414 return var;
4415 }
4416 /* method ropes#RopeBuffer#append for (self: RopeBuffer, Text) */
4417 void core___core__RopeBuffer___core__abstract_text__Buffer__append(val* self, val* p0) {
4418 val* var_s /* var s: Text */;
4419 long var /* : Int */;
4420 long var_slen /* var slen: Int */;
4421 val* var1 /* : Sys */;
4422 long var2 /* : Int */;
4423 short int var3 /* : Bool */;
4424 short int var5 /* : Bool */;
4425 int cltype;
4426 int idtype;
4427 const char* var_class_name;
4428 short int var6 /* : Bool */;
4429 val* var_ /* var : RopeBuffer */;
4430 val* var7 /* : String */;
4431 val* var9 /* : String */;
4432 val* var10 /* : String */;
4433 val* var11 /* : String */;
4434 short int var13 /* : Bool */;
4435 int cltype14;
4436 int idtype15;
4437 char* var16 /* : NativeString */;
4438 char* var_oits /* var oits: NativeString */;
4439 long var17 /* : Int */;
4440 long var_from /* var from: Int */;
4441 long var18 /* : Int */;
4442 long var20 /* : Int */;
4443 long var21 /* : Int */;
4444 long var23 /* : Int */;
4445 long var24 /* : Int */;
4446 short int var26 /* : Bool */;
4447 int cltype27;
4448 int idtype28;
4449 const char* var_class_name29;
4450 long var30 /* : Int */;
4451 long var_remsp /* var remsp: Int */;
4452 short int var31 /* : Bool */;
4453 short int var33 /* : Bool */;
4454 int cltype34;
4455 int idtype35;
4456 const char* var_class_name36;
4457 short int var37 /* : Bool */;
4458 char* var38 /* : NativeString */;
4459 char* var40 /* : NativeString */;
4460 long var41 /* : Int */;
4461 long var43 /* : Int */;
4462 val* var_45 /* var : RopeBuffer */;
4463 long var46 /* : Int */;
4464 long var48 /* : Int */;
4465 long var49 /* : Int */;
4466 short int var51 /* : Bool */;
4467 int cltype52;
4468 int idtype53;
4469 const char* var_class_name54;
4470 long var55 /* : Int */;
4471 long var57 /* : Int */;
4472 short int var59 /* : Bool */;
4473 int cltype60;
4474 int idtype61;
4475 const char* var_class_name62;
4476 long var63 /* : Int */;
4477 long var64 /* : Int */;
4478 long var_brk /* var brk: Int */;
4479 char* var65 /* : NativeString */;
4480 char* var67 /* : NativeString */;
4481 long var68 /* : Int */;
4482 long var70 /* : Int */;
4483 val* var_72 /* var : RopeBuffer */;
4484 long var73 /* : Int */;
4485 long var75 /* : Int */;
4486 long var76 /* : Int */;
4487 short int var78 /* : Bool */;
4488 int cltype79;
4489 int idtype80;
4490 const char* var_class_name81;
4491 long var82 /* : Int */;
4492 char* var84 /* : NativeString */;
4493 char* var86 /* : NativeString */;
4494 long var87 /* : Int */;
4495 short int var89 /* : Bool */;
4496 int cltype90;
4497 int idtype91;
4498 const char* var_class_name92;
4499 long var93 /* : Int */;
4500 long var95 /* : Int */;
4501 short int var97 /* : Bool */;
4502 int cltype98;
4503 int idtype99;
4504 const char* var_class_name100;
4505 long var101 /* : Int */;
4506 val* var103 /* : Iterator[FlatText] */;
4507 val* var_104 /* var : Iterator[FlatText] */;
4508 val* var105 /* : Iterator[nullable Object] */;
4509 val* var_106 /* var : Iterator[FlatText] */;
4510 short int var107 /* : Bool */;
4511 val* var108 /* : nullable Object */;
4512 val* var_i /* var i: FlatText */;
4513 var_s = p0;
4514 {
4515 var = ((long(*)(val* self))(var_s->class->vft[COLOR_core__abstract_text__Text__bytelen]))(var_s); /* bytelen on <var_s:Text>*/
4516 }
4517 var_slen = var;
4518 var1 = glob_sys;
4519 {
4520 var2 = core__ropes___Sys___maxlen(var1);
4521 }
4522 {
4523 { /* Inline kernel#Int#>= (var_slen,var2) on <var_slen:Int> */
4524 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
4525 /* <var2:Int> isa OTHER */
4526 var5 = 1; /* easy <var2:Int> isa OTHER*/
4527 if (unlikely(!var5)) {
4528 var_class_name = type_core__Int.name;
4529 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4530 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
4531 fatal_exit(1);
4532 }
4533 var6 = var_slen >= var2;
4534 var3 = var6;
4535 goto RET_LABEL4;
4536 RET_LABEL4:(void)0;
4537 }
4538 }
4539 if (var3){
4540 {
4541 core___core__RopeBuffer___persist_buffer(self); /* Direct call ropes#RopeBuffer#persist_buffer on <self:RopeBuffer>*/
4542 }
4543 var_ = self;
4544 {
4545 { /* Inline ropes#RopeBuffer#str (var_) on <var_:RopeBuffer> */
4546 var9 = var_->attrs[COLOR_core__ropes__RopeBuffer___str].val; /* _str on <var_:RopeBuffer> */
4547 if (unlikely(var9 == NULL)) {
4548 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
4549 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 310);
4550 fatal_exit(1);
4551 }
4552 var7 = var9;
4553 RET_LABEL8:(void)0;
4554 }
4555 }
4556 {
4557 var10 = ((val*(*)(val* self))(var_s->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_s); /* to_s on <var_s:Text>*/
4558 }
4559 {
4560 var11 = ((val*(*)(val* self, val* p0))(var7->class->vft[COLOR_core__abstract_text__String___43d]))(var7, var10); /* + on <var7:String>*/
4561 }
4562 {
4563 { /* Inline ropes#RopeBuffer#str= (var_,var11) on <var_:RopeBuffer> */
4564 var_->attrs[COLOR_core__ropes__RopeBuffer___str].val = var11; /* _str on <var_:RopeBuffer> */
4565 RET_LABEL12:(void)0;
4566 }
4567 }
4568 goto RET_LABEL;
4569 } else {
4570 }
4571 /* <var_s:Text> isa FlatText */
4572 cltype14 = type_core__FlatText.color;
4573 idtype15 = type_core__FlatText.id;
4574 if(cltype14 >= var_s->type->table_size) {
4575 var13 = 0;
4576 } else {
4577 var13 = var_s->type->type_table[cltype14] == idtype15;
4578 }
4579 if (var13){
4580 var16 = var_s->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var_s:Text(FlatText)> */
4581 var_oits = var16;
4582 {
4583 var17 = ((long(*)(val* self))(var_s->class->vft[COLOR_core__flat__FlatText__first_byte]))(var_s); /* first_byte on <var_s:Text(FlatText)>*/
4584 }
4585 var_from = var17;
4586 {
4587 { /* Inline ropes#RopeBuffer#buf_size (self) on <self:RopeBuffer> */
4588 var20 = self->attrs[COLOR_core__ropes__RopeBuffer___buf_size].l; /* _buf_size on <self:RopeBuffer> */
4589 var18 = var20;
4590 RET_LABEL19:(void)0;
4591 }
4592 }
4593 {
4594 { /* Inline ropes#RopeBuffer#rpos (self) on <self:RopeBuffer> */
4595 var23 = self->attrs[COLOR_core__ropes__RopeBuffer___rpos].l; /* _rpos on <self:RopeBuffer> */
4596 var21 = var23;
4597 RET_LABEL22:(void)0;
4598 }
4599 }
4600 {
4601 { /* Inline kernel#Int#- (var18,var21) on <var18:Int> */
4602 /* Covariant cast for argument 0 (i) <var21:Int> isa OTHER */
4603 /* <var21:Int> isa OTHER */
4604 var26 = 1; /* easy <var21:Int> isa OTHER*/
4605 if (unlikely(!var26)) {
4606 var_class_name29 = type_core__Int.name;
4607 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29);
4608 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
4609 fatal_exit(1);
4610 }
4611 var30 = var18 - var21;
4612 var24 = var30;
4613 goto RET_LABEL25;
4614 RET_LABEL25:(void)0;
4615 }
4616 }
4617 var_remsp = var24;
4618 {
4619 { /* Inline kernel#Int#<= (var_slen,var_remsp) on <var_slen:Int> */
4620 /* Covariant cast for argument 0 (i) <var_remsp:Int> isa OTHER */
4621 /* <var_remsp:Int> isa OTHER */
4622 var33 = 1; /* easy <var_remsp:Int> isa OTHER*/
4623 if (unlikely(!var33)) {
4624 var_class_name36 = type_core__Int.name;
4625 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name36);
4626 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
4627 fatal_exit(1);
4628 }
4629 var37 = var_slen <= var_remsp;
4630 var31 = var37;
4631 goto RET_LABEL32;
4632 RET_LABEL32:(void)0;
4633 }
4634 }
4635 if (var31){
4636 {
4637 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
4638 var40 = self->attrs[COLOR_core__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
4639 var38 = var40;
4640 RET_LABEL39:(void)0;
4641 }
4642 }
4643 {
4644 { /* Inline ropes#RopeBuffer#rpos (self) on <self:RopeBuffer> */
4645 var43 = self->attrs[COLOR_core__ropes__RopeBuffer___rpos].l; /* _rpos on <self:RopeBuffer> */
4646 var41 = var43;
4647 RET_LABEL42:(void)0;
4648 }
4649 }
4650 {
4651 { /* Inline native#NativeString#copy_to (var_oits,var38,var_slen,var_from,var41) on <var_oits:NativeString> */
4652 memmove(var38+var41,var_oits+var_from,var_slen);
4653 RET_LABEL44:(void)0;
4654 }
4655 }
4656 var_45 = self;
4657 {
4658 { /* Inline ropes#RopeBuffer#rpos (var_45) on <var_45:RopeBuffer> */
4659 var48 = var_45->attrs[COLOR_core__ropes__RopeBuffer___rpos].l; /* _rpos on <var_45:RopeBuffer> */
4660 var46 = var48;
4661 RET_LABEL47:(void)0;
4662 }
4663 }
4664 {
4665 { /* Inline kernel#Int#+ (var46,var_slen) on <var46:Int> */
4666 /* Covariant cast for argument 0 (i) <var_slen:Int> isa OTHER */
4667 /* <var_slen:Int> isa OTHER */
4668 var51 = 1; /* easy <var_slen:Int> isa OTHER*/
4669 if (unlikely(!var51)) {
4670 var_class_name54 = type_core__Int.name;
4671 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name54);
4672 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4673 fatal_exit(1);
4674 }
4675 var55 = var46 + var_slen;
4676 var49 = var55;
4677 goto RET_LABEL50;
4678 RET_LABEL50:(void)0;
4679 }
4680 }
4681 {
4682 { /* Inline ropes#RopeBuffer#rpos= (var_45,var49) on <var_45:RopeBuffer> */
4683 var_45->attrs[COLOR_core__ropes__RopeBuffer___rpos].l = var49; /* _rpos on <var_45:RopeBuffer> */
4684 RET_LABEL56:(void)0;
4685 }
4686 }
4687 goto RET_LABEL;
4688 } else {
4689 }
4690 {
4691 { /* Inline kernel#Int#+ (var_from,var_remsp) on <var_from:Int> */
4692 /* Covariant cast for argument 0 (i) <var_remsp:Int> isa OTHER */
4693 /* <var_remsp:Int> isa OTHER */
4694 var59 = 1; /* easy <var_remsp:Int> isa OTHER*/
4695 if (unlikely(!var59)) {
4696 var_class_name62 = type_core__Int.name;
4697 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name62);
4698 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4699 fatal_exit(1);
4700 }
4701 var63 = var_from + var_remsp;
4702 var57 = var63;
4703 goto RET_LABEL58;
4704 RET_LABEL58:(void)0;
4705 }
4706 }
4707 {
4708 var64 = core___core__NativeString___find_beginning_of_char_at(var_oits, var57);
4709 }
4710 var_brk = var64;
4711 {
4712 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
4713 var67 = self->attrs[COLOR_core__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
4714 var65 = var67;
4715 RET_LABEL66:(void)0;
4716 }
4717 }
4718 {
4719 { /* Inline ropes#RopeBuffer#rpos (self) on <self:RopeBuffer> */
4720 var70 = self->attrs[COLOR_core__ropes__RopeBuffer___rpos].l; /* _rpos on <self:RopeBuffer> */
4721 var68 = var70;
4722 RET_LABEL69:(void)0;
4723 }
4724 }
4725 {
4726 { /* Inline native#NativeString#copy_to (var_oits,var65,var_brk,var_from,var68) on <var_oits:NativeString> */
4727 memmove(var65+var68,var_oits+var_from,var_brk);
4728 RET_LABEL71:(void)0;
4729 }
4730 }
4731 var_72 = self;
4732 {
4733 { /* Inline ropes#RopeBuffer#rpos (var_72) on <var_72:RopeBuffer> */
4734 var75 = var_72->attrs[COLOR_core__ropes__RopeBuffer___rpos].l; /* _rpos on <var_72:RopeBuffer> */
4735 var73 = var75;
4736 RET_LABEL74:(void)0;
4737 }
4738 }
4739 {
4740 { /* Inline kernel#Int#+ (var73,var_brk) on <var73:Int> */
4741 /* Covariant cast for argument 0 (i) <var_brk:Int> isa OTHER */
4742 /* <var_brk:Int> isa OTHER */
4743 var78 = 1; /* easy <var_brk:Int> isa OTHER*/
4744 if (unlikely(!var78)) {
4745 var_class_name81 = type_core__Int.name;
4746 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name81);
4747 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4748 fatal_exit(1);
4749 }
4750 var82 = var73 + var_brk;
4751 var76 = var82;
4752 goto RET_LABEL77;
4753 RET_LABEL77:(void)0;
4754 }
4755 }
4756 {
4757 { /* Inline ropes#RopeBuffer#rpos= (var_72,var76) on <var_72:RopeBuffer> */
4758 var_72->attrs[COLOR_core__ropes__RopeBuffer___rpos].l = var76; /* _rpos on <var_72:RopeBuffer> */
4759 RET_LABEL83:(void)0;
4760 }
4761 }
4762 {
4763 core___core__RopeBuffer___dump_buffer(self); /* Direct call ropes#RopeBuffer#dump_buffer on <self:RopeBuffer>*/
4764 }
4765 {
4766 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
4767 var86 = self->attrs[COLOR_core__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
4768 var84 = var86;
4769 RET_LABEL85:(void)0;
4770 }
4771 }
4772 {
4773 { /* Inline kernel#Int#- (var_slen,var_remsp) on <var_slen:Int> */
4774 /* Covariant cast for argument 0 (i) <var_remsp:Int> isa OTHER */
4775 /* <var_remsp:Int> isa OTHER */
4776 var89 = 1; /* easy <var_remsp:Int> isa OTHER*/
4777 if (unlikely(!var89)) {
4778 var_class_name92 = type_core__Int.name;
4779 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name92);
4780 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
4781 fatal_exit(1);
4782 }
4783 var93 = var_slen - var_remsp;
4784 var87 = var93;
4785 goto RET_LABEL88;
4786 RET_LABEL88:(void)0;
4787 }
4788 }
4789 {
4790 { /* Inline native#NativeString#copy_to (var_oits,var84,var87,var_brk,0l) on <var_oits:NativeString> */
4791 memmove(var84+0l,var_oits+var_brk,var87);
4792 RET_LABEL94:(void)0;
4793 }
4794 }
4795 {
4796 { /* Inline kernel#Int#- (var_slen,var_remsp) on <var_slen:Int> */
4797 /* Covariant cast for argument 0 (i) <var_remsp:Int> isa OTHER */
4798 /* <var_remsp:Int> isa OTHER */
4799 var97 = 1; /* easy <var_remsp:Int> isa OTHER*/
4800 if (unlikely(!var97)) {
4801 var_class_name100 = type_core__Int.name;
4802 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name100);
4803 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
4804 fatal_exit(1);
4805 }
4806 var101 = var_slen - var_remsp;
4807 var95 = var101;
4808 goto RET_LABEL96;
4809 RET_LABEL96:(void)0;
4810 }
4811 }
4812 {
4813 { /* Inline ropes#RopeBuffer#rpos= (self,var95) on <self:RopeBuffer> */
4814 self->attrs[COLOR_core__ropes__RopeBuffer___rpos].l = var95; /* _rpos on <self:RopeBuffer> */
4815 RET_LABEL102:(void)0;
4816 }
4817 }
4818 } else {
4819 {
4820 var103 = ((val*(*)(val* self))(var_s->class->vft[COLOR_core__abstract_text__Text__substrings]))(var_s); /* substrings on <var_s:Text>*/
4821 }
4822 var_104 = var103;
4823 {
4824 var105 = ((val*(*)(val* self))((((long)var_104&3)?class_info[((long)var_104&3)]:var_104->class)->vft[COLOR_core__abstract_collection__Iterator__iterator]))(var_104); /* iterator on <var_104:Iterator[FlatText]>*/
4825 }
4826 var_106 = var105;
4827 for(;;) {
4828 {
4829 var107 = ((short int(*)(val* self))((((long)var_106&3)?class_info[((long)var_106&3)]:var_106->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_106); /* is_ok on <var_106:Iterator[FlatText]>*/
4830 }
4831 if (var107){
4832 } else {
4833 goto BREAK_label;
4834 }
4835 {
4836 var108 = ((val*(*)(val* self))((((long)var_106&3)?class_info[((long)var_106&3)]:var_106->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_106); /* item on <var_106:Iterator[FlatText]>*/
4837 }
4838 var_i = var108;
4839 {
4840 core___core__RopeBuffer___core__abstract_text__Buffer__append(self, var_i); /* Direct call ropes#RopeBuffer#append on <self:RopeBuffer>*/
4841 }
4842 {
4843 ((void(*)(val* self))((((long)var_106&3)?class_info[((long)var_106&3)]:var_106->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_106); /* next on <var_106:Iterator[FlatText]>*/
4844 }
4845 }
4846 BREAK_label: (void)0;
4847 {
4848 ((void(*)(val* self))((((long)var_106&3)?class_info[((long)var_106&3)]:var_106->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_106); /* finish on <var_106:Iterator[FlatText]>*/
4849 }
4850 }
4851 RET_LABEL:;
4852 }
4853 /* method ropes#RopeBuffer#add for (self: RopeBuffer, Char) */
4854 void core___core__RopeBuffer___core__abstract_text__Buffer__add(val* self, uint32_t p0) {
4855 uint32_t var_c /* var c: Char */;
4856 long var /* : Int */;
4857 long var2 /* : Int */;
4858 long var_rp /* var rp: Int */;
4859 long var3 /* : Int */;
4860 long var5 /* : Int */;
4861 long var6 /* : Int */;
4862 short int var8 /* : Bool */;
4863 int cltype;
4864 int idtype;
4865 const char* var_class_name;
4866 long var9 /* : Int */;
4867 long var_remsp /* var remsp: Int */;
4868 long var10 /* : Int */;
4869 long var_cln /* var cln: Int */;
4870 short int var11 /* : Bool */;
4871 short int var13 /* : Bool */;
4872 int cltype14;
4873 int idtype15;
4874 const char* var_class_name16;
4875 short int var17 /* : Bool */;
4876 char* var18 /* : NativeString */;
4877 char* var20 /* : NativeString */;
4878 long var21 /* : Int */;
4879 short int var23 /* : Bool */;
4880 int cltype24;
4881 int idtype25;
4882 const char* var_class_name26;
4883 long var27 /* : Int */;
4884 val* var_ /* var : RopeBuffer */;
4885 long var28 /* : Int */;
4886 long var29 /* : Int */;
4887 short int var31 /* : Bool */;
4888 int cltype32;
4889 int idtype33;
4890 const char* var_class_name34;
4891 long var35 /* : Int */;
4892 var_c = p0;
4893 {
4894 { /* Inline ropes#RopeBuffer#rpos (self) on <self:RopeBuffer> */
4895 var2 = self->attrs[COLOR_core__ropes__RopeBuffer___rpos].l; /* _rpos on <self:RopeBuffer> */
4896 var = var2;
4897 RET_LABEL1:(void)0;
4898 }
4899 }
4900 var_rp = var;
4901 {
4902 { /* Inline ropes#RopeBuffer#buf_size (self) on <self:RopeBuffer> */
4903 var5 = self->attrs[COLOR_core__ropes__RopeBuffer___buf_size].l; /* _buf_size on <self:RopeBuffer> */
4904 var3 = var5;
4905 RET_LABEL4:(void)0;
4906 }
4907 }
4908 {
4909 { /* Inline kernel#Int#- (var3,var_rp) on <var3:Int> */
4910 /* Covariant cast for argument 0 (i) <var_rp:Int> isa OTHER */
4911 /* <var_rp:Int> isa OTHER */
4912 var8 = 1; /* easy <var_rp:Int> isa OTHER*/
4913 if (unlikely(!var8)) {
4914 var_class_name = type_core__Int.name;
4915 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4916 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
4917 fatal_exit(1);
4918 }
4919 var9 = var3 - var_rp;
4920 var6 = var9;
4921 goto RET_LABEL7;
4922 RET_LABEL7:(void)0;
4923 }
4924 }
4925 var_remsp = var6;
4926 {
4927 var10 = core__abstract_text___Char___u8char_len(var_c);
4928 }
4929 var_cln = var10;
4930 {
4931 { /* Inline kernel#Int#> (var_cln,var_remsp) on <var_cln:Int> */
4932 /* Covariant cast for argument 0 (i) <var_remsp:Int> isa OTHER */
4933 /* <var_remsp:Int> isa OTHER */
4934 var13 = 1; /* easy <var_remsp:Int> isa OTHER*/
4935 if (unlikely(!var13)) {
4936 var_class_name16 = type_core__Int.name;
4937 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16);
4938 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
4939 fatal_exit(1);
4940 }
4941 var17 = var_cln > var_remsp;
4942 var11 = var17;
4943 goto RET_LABEL12;
4944 RET_LABEL12:(void)0;
4945 }
4946 }
4947 if (var11){
4948 {
4949 core___core__RopeBuffer___dump_buffer(self); /* Direct call ropes#RopeBuffer#dump_buffer on <self:RopeBuffer>*/
4950 }
4951 var_rp = 0l;
4952 } else {
4953 }
4954 {
4955 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
4956 var20 = self->attrs[COLOR_core__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
4957 var18 = var20;
4958 RET_LABEL19:(void)0;
4959 }
4960 }
4961 {
4962 core__flat___NativeString___set_char_at(var18, var_rp, var_c); /* Direct call flat#NativeString#set_char_at on <var18:NativeString>*/
4963 }
4964 {
4965 { /* Inline kernel#Int#+ (var_rp,var_cln) on <var_rp:Int> */
4966 /* Covariant cast for argument 0 (i) <var_cln:Int> isa OTHER */
4967 /* <var_cln:Int> isa OTHER */
4968 var23 = 1; /* easy <var_cln:Int> isa OTHER*/
4969 if (unlikely(!var23)) {
4970 var_class_name26 = type_core__Int.name;
4971 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name26);
4972 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4973 fatal_exit(1);
4974 }
4975 var27 = var_rp + var_cln;
4976 var21 = var27;
4977 goto RET_LABEL22;
4978 RET_LABEL22:(void)0;
4979 }
4980 }
4981 var_rp = var21;
4982 var_ = self;
4983 var28 = var_->attrs[COLOR_core__ropes__RopeBuffer___bytelen].l; /* _bytelen on <var_:RopeBuffer> */
4984 {
4985 { /* Inline kernel#Int#+ (var28,var_cln) on <var28:Int> */
4986 /* Covariant cast for argument 0 (i) <var_cln:Int> isa OTHER */
4987 /* <var_cln:Int> isa OTHER */
4988 var31 = 1; /* easy <var_cln:Int> isa OTHER*/
4989 if (unlikely(!var31)) {
4990 var_class_name34 = type_core__Int.name;
4991 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
4992 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4993 fatal_exit(1);
4994 }
4995 var35 = var28 + var_cln;
4996 var29 = var35;
4997 goto RET_LABEL30;
4998 RET_LABEL30:(void)0;
4999 }
5000 }
5001 var_->attrs[COLOR_core__ropes__RopeBuffer___bytelen].l = var29; /* _bytelen on <var_:RopeBuffer> */
5002 {
5003 { /* Inline ropes#RopeBuffer#rpos= (self,var_rp) on <self:RopeBuffer> */
5004 self->attrs[COLOR_core__ropes__RopeBuffer___rpos].l = var_rp; /* _rpos on <self:RopeBuffer> */
5005 RET_LABEL36:(void)0;
5006 }
5007 }
5008 RET_LABEL:;
5009 }
5010 /* method ropes#RopeBuffer#dump_buffer for (self: RopeBuffer) */
5011 void core___core__RopeBuffer___dump_buffer(val* self) {
5012 val* var /* : FlatString */;
5013 char* var2 /* : NativeString */;
5014 char* var4 /* : NativeString */;
5015 long var5 /* : Int */;
5016 long var7 /* : Int */;
5017 long var8 /* : Int */;
5018 long var10 /* : Int */;
5019 long var11 /* : Int */;
5020 short int var13 /* : Bool */;
5021 int cltype;
5022 int idtype;
5023 const char* var_class_name;
5024 long var14 /* : Int */;
5025 long var15 /* : Int */;
5026 long var17 /* : Int */;
5027 val* var_nstr /* var nstr: FlatString */;
5028 val* var_ /* var : RopeBuffer */;
5029 val* var18 /* : String */;
5030 val* var20 /* : String */;
5031 val* var21 /* : String */;
5032 long var23 /* : Int */;
5033 long var25 /* : Int */;
5034 long var_bs /* var bs: Int */;
5035 long var26 /* : Int */;
5036 short int var28 /* : Bool */;
5037 int cltype29;
5038 int idtype30;
5039 const char* var_class_name31;
5040 long var32 /* : Int */;
5041 char* var33 /* : NativeString */;
5042 char* var34 /* : NativeString */;
5043 char* var36 /* : NativeString */;
5044 {
5045 { /* Inline abstract_text#Buffer#written= (self,0) on <self:RopeBuffer> */
5046 self->attrs[COLOR_core__abstract_text__Buffer___written].s = 0; /* _written on <self:RopeBuffer> */
5047 RET_LABEL1:(void)0;
5048 }
5049 }
5050 var = NEW_core__FlatString(&type_core__FlatString);
5051 {
5052 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
5053 var4 = self->attrs[COLOR_core__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
5054 var2 = var4;
5055 RET_LABEL3:(void)0;
5056 }
5057 }
5058 {
5059 { /* Inline ropes#RopeBuffer#rpos (self) on <self:RopeBuffer> */
5060 var7 = self->attrs[COLOR_core__ropes__RopeBuffer___rpos].l; /* _rpos on <self:RopeBuffer> */
5061 var5 = var7;
5062 RET_LABEL6:(void)0;
5063 }
5064 }
5065 {
5066 { /* Inline ropes#RopeBuffer#dumped (self) on <self:RopeBuffer> */
5067 var10 = self->attrs[COLOR_core__ropes__RopeBuffer___dumped].l; /* _dumped on <self:RopeBuffer> */
5068 var8 = var10;
5069 RET_LABEL9:(void)0;
5070 }
5071 }
5072 {
5073 { /* Inline kernel#Int#- (var5,var8) on <var5:Int> */
5074 /* Covariant cast for argument 0 (i) <var8:Int> isa OTHER */
5075 /* <var8:Int> isa OTHER */
5076 var13 = 1; /* easy <var8:Int> isa OTHER*/
5077 if (unlikely(!var13)) {
5078 var_class_name = type_core__Int.name;
5079 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5080 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
5081 fatal_exit(1);
5082 }
5083 var14 = var5 - var8;
5084 var11 = var14;
5085 goto RET_LABEL12;
5086 RET_LABEL12:(void)0;
5087 }
5088 }
5089 {
5090 { /* Inline ropes#RopeBuffer#dumped (self) on <self:RopeBuffer> */
5091 var17 = self->attrs[COLOR_core__ropes__RopeBuffer___dumped].l; /* _dumped on <self:RopeBuffer> */
5092 var15 = var17;
5093 RET_LABEL16:(void)0;
5094 }
5095 }
5096 {
5097 core___core__FlatString___with_infos(var, var2, var11, var15); /* Direct call flat#FlatString#with_infos on <var:FlatString>*/
5098 }
5099 var_nstr = var;
5100 var_ = self;
5101 {
5102 { /* Inline ropes#RopeBuffer#str (var_) on <var_:RopeBuffer> */
5103 var20 = var_->attrs[COLOR_core__ropes__RopeBuffer___str].val; /* _str on <var_:RopeBuffer> */
5104 if (unlikely(var20 == NULL)) {
5105 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
5106 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 310);
5107 fatal_exit(1);
5108 }
5109 var18 = var20;
5110 RET_LABEL19:(void)0;
5111 }
5112 }
5113 {
5114 var21 = ((val*(*)(val* self, val* p0))(var18->class->vft[COLOR_core__abstract_text__String___43d]))(var18, var_nstr); /* + on <var18:String>*/
5115 }
5116 {
5117 { /* Inline ropes#RopeBuffer#str= (var_,var21) on <var_:RopeBuffer> */
5118 var_->attrs[COLOR_core__ropes__RopeBuffer___str].val = var21; /* _str on <var_:RopeBuffer> */
5119 RET_LABEL22:(void)0;
5120 }
5121 }
5122 {
5123 { /* Inline ropes#RopeBuffer#buf_size (self) on <self:RopeBuffer> */
5124 var25 = self->attrs[COLOR_core__ropes__RopeBuffer___buf_size].l; /* _buf_size on <self:RopeBuffer> */
5125 var23 = var25;
5126 RET_LABEL24:(void)0;
5127 }
5128 }
5129 var_bs = var23;
5130 {
5131 { /* Inline kernel#Int#* (var_bs,2l) on <var_bs:Int> */
5132 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
5133 /* <2l:Int> isa OTHER */
5134 var28 = 1; /* easy <2l:Int> isa OTHER*/
5135 if (unlikely(!var28)) {
5136 var_class_name31 = type_core__Int.name;
5137 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31);
5138 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 735);
5139 fatal_exit(1);
5140 }
5141 var32 = var_bs * 2l;
5142 var26 = var32;
5143 goto RET_LABEL27;
5144 RET_LABEL27:(void)0;
5145 }
5146 }
5147 var_bs = var26;
5148 var33 = NULL/*special!*/;
5149 {
5150 { /* Inline native#NativeString#new (var33,var_bs) on <var33:NativeString> */
5151 var36 = (char*)nit_alloc(var_bs);
5152 var34 = var36;
5153 goto RET_LABEL35;
5154 RET_LABEL35:(void)0;
5155 }
5156 }
5157 {
5158 { /* Inline ropes#RopeBuffer#ns= (self,var34) on <self:RopeBuffer> */
5159 self->attrs[COLOR_core__ropes__RopeBuffer___ns].str = var34; /* _ns on <self:RopeBuffer> */
5160 RET_LABEL37:(void)0;
5161 }
5162 }
5163 {
5164 { /* Inline ropes#RopeBuffer#buf_size= (self,var_bs) on <self:RopeBuffer> */
5165 self->attrs[COLOR_core__ropes__RopeBuffer___buf_size].l = var_bs; /* _buf_size on <self:RopeBuffer> */
5166 RET_LABEL38:(void)0;
5167 }
5168 }
5169 {
5170 { /* Inline ropes#RopeBuffer#dumped= (self,0l) on <self:RopeBuffer> */
5171 self->attrs[COLOR_core__ropes__RopeBuffer___dumped].l = 0l; /* _dumped on <self:RopeBuffer> */
5172 RET_LABEL39:(void)0;
5173 }
5174 }
5175 {
5176 { /* Inline ropes#RopeBuffer#rpos= (self,0l) on <self:RopeBuffer> */
5177 self->attrs[COLOR_core__ropes__RopeBuffer___rpos].l = 0l; /* _rpos on <self:RopeBuffer> */
5178 RET_LABEL40:(void)0;
5179 }
5180 }
5181 RET_LABEL:;
5182 }
5183 /* method ropes#RopeBuffer#persist_buffer for (self: RopeBuffer) */
5184 void core___core__RopeBuffer___persist_buffer(val* self) {
5185 long var /* : Int */;
5186 long var2 /* : Int */;
5187 long var3 /* : Int */;
5188 long var5 /* : Int */;
5189 short int var6 /* : Bool */;
5190 short int var8 /* : Bool */;
5191 val* var9 /* : FlatString */;
5192 char* var10 /* : NativeString */;
5193 char* var12 /* : NativeString */;
5194 long var13 /* : Int */;
5195 long var15 /* : Int */;
5196 long var16 /* : Int */;
5197 long var18 /* : Int */;
5198 long var19 /* : Int */;
5199 short int var21 /* : Bool */;
5200 int cltype;
5201 int idtype;
5202 const char* var_class_name;
5203 long var22 /* : Int */;
5204 long var23 /* : Int */;
5205 long var25 /* : Int */;
5206 val* var_nstr /* var nstr: FlatString */;
5207 val* var_ /* var : RopeBuffer */;
5208 val* var26 /* : String */;
5209 val* var28 /* : String */;
5210 val* var29 /* : String */;
5211 long var31 /* : Int */;
5212 long var33 /* : Int */;
5213 {
5214 { /* Inline ropes#RopeBuffer#rpos (self) on <self:RopeBuffer> */
5215 var2 = self->attrs[COLOR_core__ropes__RopeBuffer___rpos].l; /* _rpos on <self:RopeBuffer> */
5216 var = var2;
5217 RET_LABEL1:(void)0;
5218 }
5219 }
5220 {
5221 { /* Inline ropes#RopeBuffer#dumped (self) on <self:RopeBuffer> */
5222 var5 = self->attrs[COLOR_core__ropes__RopeBuffer___dumped].l; /* _dumped on <self:RopeBuffer> */
5223 var3 = var5;
5224 RET_LABEL4:(void)0;
5225 }
5226 }
5227 {
5228 { /* Inline kernel#Int#== (var,var3) on <var:Int> */
5229 var8 = var == var3;
5230 var6 = var8;
5231 goto RET_LABEL7;
5232 RET_LABEL7:(void)0;
5233 }
5234 }
5235 if (var6){
5236 goto RET_LABEL;
5237 } else {
5238 }
5239 var9 = NEW_core__FlatString(&type_core__FlatString);
5240 {
5241 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
5242 var12 = self->attrs[COLOR_core__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
5243 var10 = var12;
5244 RET_LABEL11:(void)0;
5245 }
5246 }
5247 {
5248 { /* Inline ropes#RopeBuffer#rpos (self) on <self:RopeBuffer> */
5249 var15 = self->attrs[COLOR_core__ropes__RopeBuffer___rpos].l; /* _rpos on <self:RopeBuffer> */
5250 var13 = var15;
5251 RET_LABEL14:(void)0;
5252 }
5253 }
5254 {
5255 { /* Inline ropes#RopeBuffer#dumped (self) on <self:RopeBuffer> */
5256 var18 = self->attrs[COLOR_core__ropes__RopeBuffer___dumped].l; /* _dumped on <self:RopeBuffer> */
5257 var16 = var18;
5258 RET_LABEL17:(void)0;
5259 }
5260 }
5261 {
5262 { /* Inline kernel#Int#- (var13,var16) on <var13:Int> */
5263 /* Covariant cast for argument 0 (i) <var16:Int> isa OTHER */
5264 /* <var16:Int> isa OTHER */
5265 var21 = 1; /* easy <var16:Int> isa OTHER*/
5266 if (unlikely(!var21)) {
5267 var_class_name = type_core__Int.name;
5268 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5269 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
5270 fatal_exit(1);
5271 }
5272 var22 = var13 - var16;
5273 var19 = var22;
5274 goto RET_LABEL20;
5275 RET_LABEL20:(void)0;
5276 }
5277 }
5278 {
5279 { /* Inline ropes#RopeBuffer#dumped (self) on <self:RopeBuffer> */
5280 var25 = self->attrs[COLOR_core__ropes__RopeBuffer___dumped].l; /* _dumped on <self:RopeBuffer> */
5281 var23 = var25;
5282 RET_LABEL24:(void)0;
5283 }
5284 }
5285 {
5286 core___core__FlatString___with_infos(var9, var10, var19, var23); /* Direct call flat#FlatString#with_infos on <var9:FlatString>*/
5287 }
5288 var_nstr = var9;
5289 var_ = self;
5290 {
5291 { /* Inline ropes#RopeBuffer#str (var_) on <var_:RopeBuffer> */
5292 var28 = var_->attrs[COLOR_core__ropes__RopeBuffer___str].val; /* _str on <var_:RopeBuffer> */
5293 if (unlikely(var28 == NULL)) {
5294 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
5295 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 310);
5296 fatal_exit(1);
5297 }
5298 var26 = var28;
5299 RET_LABEL27:(void)0;
5300 }
5301 }
5302 {
5303 var29 = ((val*(*)(val* self, val* p0))(var26->class->vft[COLOR_core__abstract_text__String___43d]))(var26, var_nstr); /* + on <var26:String>*/
5304 }
5305 {
5306 { /* Inline ropes#RopeBuffer#str= (var_,var29) on <var_:RopeBuffer> */
5307 var_->attrs[COLOR_core__ropes__RopeBuffer___str].val = var29; /* _str on <var_:RopeBuffer> */
5308 RET_LABEL30:(void)0;
5309 }
5310 }
5311 {
5312 { /* Inline ropes#RopeBuffer#rpos (self) on <self:RopeBuffer> */
5313 var33 = self->attrs[COLOR_core__ropes__RopeBuffer___rpos].l; /* _rpos on <self:RopeBuffer> */
5314 var31 = var33;
5315 RET_LABEL32:(void)0;
5316 }
5317 }
5318 {
5319 { /* Inline ropes#RopeBuffer#dumped= (self,var31) on <self:RopeBuffer> */
5320 self->attrs[COLOR_core__ropes__RopeBuffer___dumped].l = var31; /* _dumped on <self:RopeBuffer> */
5321 RET_LABEL34:(void)0;
5322 }
5323 }
5324 RET_LABEL:;
5325 }
5326 /* method ropes#RopeBuffer#enlarge for (self: RopeBuffer, Int) */
5327 void core___core__RopeBuffer___core__abstract_text__Buffer__enlarge(val* self, long p0) {
5328 long var_i /* var i: Int */;
5329 var_i = p0;
5330 RET_LABEL:;
5331 }
5332 /* method ropes#RopeBuffer#to_s for (self: RopeBuffer): String */
5333 val* core___core__RopeBuffer___core__abstract_text__Object__to_s(val* self) {
5334 val* var /* : String */;
5335 val* var2 /* : String */;
5336 val* var4 /* : String */;
5337 {
5338 core___core__RopeBuffer___persist_buffer(self); /* Direct call ropes#RopeBuffer#persist_buffer on <self:RopeBuffer>*/
5339 }
5340 {
5341 { /* Inline abstract_text#Buffer#written= (self,1) on <self:RopeBuffer> */
5342 self->attrs[COLOR_core__abstract_text__Buffer___written].s = 1; /* _written on <self:RopeBuffer> */
5343 RET_LABEL1:(void)0;
5344 }
5345 }
5346 {
5347 { /* Inline ropes#RopeBuffer#str (self) on <self:RopeBuffer> */
5348 var4 = self->attrs[COLOR_core__ropes__RopeBuffer___str].val; /* _str on <self:RopeBuffer> */
5349 if (unlikely(var4 == NULL)) {
5350 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
5351 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 310);
5352 fatal_exit(1);
5353 }
5354 var2 = var4;
5355 RET_LABEL3:(void)0;
5356 }
5357 }
5358 var = var2;
5359 goto RET_LABEL;
5360 RET_LABEL:;
5361 return var;
5362 }
5363 /* method ropes#FlatString#+ for (self: FlatString, Text): String */
5364 val* core__ropes___FlatString___core__abstract_text__String___43d(val* self, val* p0) {
5365 val* var /* : String */;
5366 val* var_o /* var o: Text */;
5367 val* var1 /* : String */;
5368 val* var_s /* var s: String */;
5369 long var2 /* : Int */;
5370 long var_slen /* var slen: Int */;
5371 long var3 /* : Int */;
5372 long var_mlen /* var mlen: Int */;
5373 short int var4 /* : Bool */;
5374 short int var6 /* : Bool */;
5375 short int var7 /* : Bool */;
5376 short int var9 /* : Bool */;
5377 long var10 /* : Int */;
5378 short int var12 /* : Bool */;
5379 int cltype;
5380 int idtype;
5381 const char* var_class_name;
5382 long var13 /* : Int */;
5383 long var_nlen /* var nlen: Int */;
5384 short int var14 /* : Bool */;
5385 int cltype15;
5386 int idtype16;
5387 val* var17 /* : Sys */;
5388 long var18 /* : Int */;
5389 short int var19 /* : Bool */;
5390 short int var21 /* : Bool */;
5391 int cltype22;
5392 int idtype23;
5393 const char* var_class_name24;
5394 short int var25 /* : Bool */;
5395 val* var26 /* : Concat */;
5396 char* var27 /* : NativeString */;
5397 char* var_mits /* var mits: NativeString */;
5398 long var28 /* : Int */;
5399 long var_sifrom /* var sifrom: Int */;
5400 long var29 /* : Int */;
5401 long var_mifrom /* var mifrom: Int */;
5402 char* var30 /* : NativeString */;
5403 char* var_sits /* var sits: NativeString */;
5404 char* var31 /* : NativeString */;
5405 long var32 /* : Int */;
5406 short int var34 /* : Bool */;
5407 int cltype35;
5408 int idtype36;
5409 const char* var_class_name37;
5410 long var38 /* : Int */;
5411 char* var39 /* : NativeString */;
5412 char* var41 /* : NativeString */;
5413 char* var_ns /* var ns: NativeString */;
5414 val* var44 /* : FlatString */;
5415 long var45 /* : Int */;
5416 long var47 /* : Int */;
5417 long var48 /* : Int */;
5418 long var50 /* : Int */;
5419 long var51 /* : Int */;
5420 short int var53 /* : Bool */;
5421 int cltype54;
5422 int idtype55;
5423 const char* var_class_name56;
5424 long var57 /* : Int */;
5425 short int var58 /* : Bool */;
5426 int cltype59;
5427 int idtype60;
5428 val* var61 /* : String */;
5429 val* var_sl /* var sl: String */;
5430 long var62 /* : Int */;
5431 long var_sllen /* var sllen: Int */;
5432 long var63 /* : Int */;
5433 short int var65 /* : Bool */;
5434 int cltype66;
5435 int idtype67;
5436 const char* var_class_name68;
5437 long var69 /* : Int */;
5438 val* var70 /* : Sys */;
5439 long var71 /* : Int */;
5440 short int var72 /* : Bool */;
5441 short int var74 /* : Bool */;
5442 int cltype75;
5443 int idtype76;
5444 const char* var_class_name77;
5445 short int var78 /* : Bool */;
5446 val* var79 /* : Concat */;
5447 val* var80 /* : Concat */;
5448 val* var81 /* : String */;
5449 val* var82 /* : String */;
5450 var_o = p0;
5451 {
5452 var1 = ((val*(*)(val* self))(var_o->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_o); /* to_s on <var_o:Text>*/
5453 }
5454 var_s = var1;
5455 {
5456 var2 = ((long(*)(val* self))(var_s->class->vft[COLOR_core__abstract_text__Text__bytelen]))(var_s); /* bytelen on <var_s:String>*/
5457 }
5458 var_slen = var2;
5459 var3 = self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <self:FlatString> */
5460 var_mlen = var3;
5461 {
5462 { /* Inline kernel#Int#== (var_slen,0l) on <var_slen:Int> */
5463 var6 = var_slen == 0l;
5464 var4 = var6;
5465 goto RET_LABEL5;
5466 RET_LABEL5:(void)0;
5467 }
5468 }
5469 if (var4){
5470 var = self;
5471 goto RET_LABEL;
5472 } else {
5473 }
5474 {
5475 { /* Inline kernel#Int#== (var_mlen,0l) on <var_mlen:Int> */
5476 var9 = var_mlen == 0l;
5477 var7 = var9;
5478 goto RET_LABEL8;
5479 RET_LABEL8:(void)0;
5480 }
5481 }
5482 if (var7){
5483 var = var_s;
5484 goto RET_LABEL;
5485 } else {
5486 }
5487 {
5488 { /* Inline kernel#Int#+ (var_slen,var_mlen) on <var_slen:Int> */
5489 /* Covariant cast for argument 0 (i) <var_mlen:Int> isa OTHER */
5490 /* <var_mlen:Int> isa OTHER */
5491 var12 = 1; /* easy <var_mlen:Int> isa OTHER*/
5492 if (unlikely(!var12)) {
5493 var_class_name = type_core__Int.name;
5494 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5495 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
5496 fatal_exit(1);
5497 }
5498 var13 = var_slen + var_mlen;
5499 var10 = var13;
5500 goto RET_LABEL11;
5501 RET_LABEL11:(void)0;
5502 }
5503 }
5504 var_nlen = var10;
5505 /* <var_s:String> isa FlatString */
5506 cltype15 = type_core__FlatString.color;
5507 idtype16 = type_core__FlatString.id;
5508 if(cltype15 >= var_s->type->table_size) {
5509 var14 = 0;
5510 } else {
5511 var14 = var_s->type->type_table[cltype15] == idtype16;
5512 }
5513 if (var14){
5514 var17 = glob_sys;
5515 {
5516 var18 = core__ropes___Sys___maxlen(var17);
5517 }
5518 {
5519 { /* Inline kernel#Int#> (var_nlen,var18) on <var_nlen:Int> */
5520 /* Covariant cast for argument 0 (i) <var18:Int> isa OTHER */
5521 /* <var18:Int> isa OTHER */
5522 var21 = 1; /* easy <var18:Int> isa OTHER*/
5523 if (unlikely(!var21)) {
5524 var_class_name24 = type_core__Int.name;
5525 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24);
5526 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
5527 fatal_exit(1);
5528 }
5529 var25 = var_nlen > var18;
5530 var19 = var25;
5531 goto RET_LABEL20;
5532 RET_LABEL20:(void)0;
5533 }
5534 }
5535 if (var19){
5536 var26 = NEW_core__ropes__Concat(&type_core__ropes__Concat);
5537 {
5538 ((void(*)(val* self, val* p0))(var26->class->vft[COLOR_core__ropes__Concat__left_61d]))(var26, self); /* left= on <var26:Concat>*/
5539 }
5540 {
5541 ((void(*)(val* self, val* p0))(var26->class->vft[COLOR_core__ropes__Concat__right_61d]))(var26, var_s); /* right= on <var26:Concat>*/
5542 }
5543 {
5544 ((void(*)(val* self))(var26->class->vft[COLOR_core__kernel__Object__init]))(var26); /* init on <var26:Concat>*/
5545 }
5546 var = var26;
5547 goto RET_LABEL;
5548 } else {
5549 }
5550 var27 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatString> */
5551 var_mits = var27;
5552 var28 = var_s->attrs[COLOR_core__flat__FlatString___first_byte].l; /* _first_byte on <var_s:String(FlatString)> */
5553 var_sifrom = var28;
5554 var29 = self->attrs[COLOR_core__flat__FlatString___first_byte].l; /* _first_byte on <self:FlatString> */
5555 var_mifrom = var29;
5556 var30 = var_s->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var_s:String(FlatString)> */
5557 var_sits = var30;
5558 var31 = NULL/*special!*/;
5559 {
5560 { /* Inline kernel#Int#+ (var_nlen,1l) on <var_nlen:Int> */
5561 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5562 /* <1l:Int> isa OTHER */
5563 var34 = 1; /* easy <1l:Int> isa OTHER*/
5564 if (unlikely(!var34)) {
5565 var_class_name37 = type_core__Int.name;
5566 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37);
5567 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
5568 fatal_exit(1);
5569 }
5570 var38 = var_nlen + 1l;
5571 var32 = var38;
5572 goto RET_LABEL33;
5573 RET_LABEL33:(void)0;
5574 }
5575 }
5576 {
5577 { /* Inline native#NativeString#new (var31,var32) on <var31:NativeString> */
5578 var41 = (char*)nit_alloc(var32);
5579 var39 = var41;
5580 goto RET_LABEL40;
5581 RET_LABEL40:(void)0;
5582 }
5583 }
5584 var_ns = var39;
5585 {
5586 { /* Inline native#NativeString#copy_to (var_mits,var_ns,var_mlen,var_mifrom,0l) on <var_mits:NativeString> */
5587 memmove(var_ns+0l,var_mits+var_mifrom,var_mlen);
5588 RET_LABEL42:(void)0;
5589 }
5590 }
5591 {
5592 { /* Inline native#NativeString#copy_to (var_sits,var_ns,var_slen,var_sifrom,var_mlen) on <var_sits:NativeString> */
5593 memmove(var_ns+var_mlen,var_sits+var_sifrom,var_slen);
5594 RET_LABEL43:(void)0;
5595 }
5596 }
5597 var44 = NEW_core__FlatString(&type_core__FlatString);
5598 {
5599 { /* Inline abstract_text#FlatText#length (self) on <self:FlatString> */
5600 var47 = self->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <self:FlatString> */
5601 var45 = var47;
5602 RET_LABEL46:(void)0;
5603 }
5604 }
5605 {
5606 { /* Inline abstract_text#FlatText#length (var_s) on <var_s:String(FlatString)> */
5607 var50 = var_s->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <var_s:String(FlatString)> */
5608 var48 = var50;
5609 RET_LABEL49:(void)0;
5610 }
5611 }
5612 {
5613 { /* Inline kernel#Int#+ (var45,var48) on <var45:Int> */
5614 /* Covariant cast for argument 0 (i) <var48:Int> isa OTHER */
5615 /* <var48:Int> isa OTHER */
5616 var53 = 1; /* easy <var48:Int> isa OTHER*/
5617 if (unlikely(!var53)) {
5618 var_class_name56 = type_core__Int.name;
5619 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name56);
5620 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
5621 fatal_exit(1);
5622 }
5623 var57 = var45 + var48;
5624 var51 = var57;
5625 goto RET_LABEL52;
5626 RET_LABEL52:(void)0;
5627 }
5628 }
5629 {
5630 core___core__FlatString___full(var44, var_ns, var_nlen, 0l, var51); /* Direct call flat#FlatString#full on <var44:FlatString>*/
5631 }
5632 var = var44;
5633 goto RET_LABEL;
5634 } else {
5635 /* <var_s:String> isa Concat */
5636 cltype59 = type_core__ropes__Concat.color;
5637 idtype60 = type_core__ropes__Concat.id;
5638 if(cltype59 >= var_s->type->table_size) {
5639 var58 = 0;
5640 } else {
5641 var58 = var_s->type->type_table[cltype59] == idtype60;
5642 }
5643 if (var58){
5644 var61 = var_s->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <var_s:String(Concat)> */
5645 if (unlikely(var61 == NULL)) {
5646 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
5647 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 600);
5648 fatal_exit(1);
5649 }
5650 var_sl = var61;
5651 {
5652 var62 = ((long(*)(val* self))(var_sl->class->vft[COLOR_core__abstract_text__Text__bytelen]))(var_sl); /* bytelen on <var_sl:String>*/
5653 }
5654 var_sllen = var62;
5655 {
5656 { /* Inline kernel#Int#+ (var_sllen,var_mlen) on <var_sllen:Int> */
5657 /* Covariant cast for argument 0 (i) <var_mlen:Int> isa OTHER */
5658 /* <var_mlen:Int> isa OTHER */
5659 var65 = 1; /* easy <var_mlen:Int> isa OTHER*/
5660 if (unlikely(!var65)) {
5661 var_class_name68 = type_core__Int.name;
5662 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name68);
5663 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
5664 fatal_exit(1);
5665 }
5666 var69 = var_sllen + var_mlen;
5667 var63 = var69;
5668 goto RET_LABEL64;
5669 RET_LABEL64:(void)0;
5670 }
5671 }
5672 var70 = glob_sys;
5673 {
5674 var71 = core__ropes___Sys___maxlen(var70);
5675 }
5676 {
5677 { /* Inline kernel#Int#> (var63,var71) on <var63:Int> */
5678 /* Covariant cast for argument 0 (i) <var71:Int> isa OTHER */
5679 /* <var71:Int> isa OTHER */
5680 var74 = 1; /* easy <var71:Int> isa OTHER*/
5681 if (unlikely(!var74)) {
5682 var_class_name77 = type_core__Int.name;
5683 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name77);
5684 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
5685 fatal_exit(1);
5686 }
5687 var78 = var63 > var71;
5688 var72 = var78;
5689 goto RET_LABEL73;
5690 RET_LABEL73:(void)0;
5691 }
5692 }
5693 if (var72){
5694 var79 = NEW_core__ropes__Concat(&type_core__ropes__Concat);
5695 {
5696 ((void(*)(val* self, val* p0))(var79->class->vft[COLOR_core__ropes__Concat__left_61d]))(var79, self); /* left= on <var79:Concat>*/
5697 }
5698 {
5699 ((void(*)(val* self, val* p0))(var79->class->vft[COLOR_core__ropes__Concat__right_61d]))(var79, var_s); /* right= on <var79:Concat>*/
5700 }
5701 {
5702 ((void(*)(val* self))(var79->class->vft[COLOR_core__kernel__Object__init]))(var79); /* init on <var79:Concat>*/
5703 }
5704 var = var79;
5705 goto RET_LABEL;
5706 } else {
5707 }
5708 var80 = NEW_core__ropes__Concat(&type_core__ropes__Concat);
5709 {
5710 var81 = core__ropes___FlatString___core__abstract_text__String___43d(self, var_sl);
5711 }
5712 var82 = var_s->attrs[COLOR_core__ropes__Concat___right].val; /* _right on <var_s:String(Concat)> */
5713 if (unlikely(var82 == NULL)) {
5714 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
5715 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 603);
5716 fatal_exit(1);
5717 }
5718 {
5719 ((void(*)(val* self, val* p0))(var80->class->vft[COLOR_core__ropes__Concat__left_61d]))(var80, var81); /* left= on <var80:Concat>*/
5720 }
5721 {
5722 ((void(*)(val* self, val* p0))(var80->class->vft[COLOR_core__ropes__Concat__right_61d]))(var80, var82); /* right= on <var80:Concat>*/
5723 }
5724 {
5725 ((void(*)(val* self))(var80->class->vft[COLOR_core__kernel__Object__init]))(var80); /* init on <var80:Concat>*/
5726 }
5727 var = var80;
5728 goto RET_LABEL;
5729 } else {
5730 PRINT_ERROR("Runtime error: %s", "Aborted");
5731 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 605);
5732 fatal_exit(1);
5733 }
5734 }
5735 RET_LABEL:;
5736 return var;
5737 }
5738 /* method ropes#RopeCharIteratorPiece#node for (self: RopeCharIteratorPiece): String */
5739 val* core__ropes___core__ropes__RopeCharIteratorPiece___node(val* self) {
5740 val* var /* : String */;
5741 val* var1 /* : String */;
5742 var1 = self->attrs[COLOR_core__ropes__RopeCharIteratorPiece___node].val; /* _node on <self:RopeCharIteratorPiece> */
5743 if (unlikely(var1 == NULL)) {
5744 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _node");
5745 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 612);
5746 fatal_exit(1);
5747 }
5748 var = var1;
5749 RET_LABEL:;
5750 return var;
5751 }
5752 /* method ropes#RopeCharIteratorPiece#node= for (self: RopeCharIteratorPiece, String) */
5753 void core__ropes___core__ropes__RopeCharIteratorPiece___node_61d(val* self, val* p0) {
5754 self->attrs[COLOR_core__ropes__RopeCharIteratorPiece___node].val = p0; /* _node on <self:RopeCharIteratorPiece> */
5755 RET_LABEL:;
5756 }
5757 /* method ropes#RopeCharIteratorPiece#ldone for (self: RopeCharIteratorPiece): Bool */
5758 short int core__ropes___core__ropes__RopeCharIteratorPiece___ldone(val* self) {
5759 short int var /* : Bool */;
5760 short int var1 /* : Bool */;
5761 var1 = self->attrs[COLOR_core__ropes__RopeCharIteratorPiece___ldone].s; /* _ldone on <self:RopeCharIteratorPiece> */
5762 var = var1;
5763 RET_LABEL:;
5764 return var;
5765 }
5766 /* method ropes#RopeCharIteratorPiece#ldone= for (self: RopeCharIteratorPiece, Bool) */
5767 void core__ropes___core__ropes__RopeCharIteratorPiece___ldone_61d(val* self, short int p0) {
5768 self->attrs[COLOR_core__ropes__RopeCharIteratorPiece___ldone].s = p0; /* _ldone on <self:RopeCharIteratorPiece> */
5769 RET_LABEL:;
5770 }
5771 /* method ropes#RopeCharIteratorPiece#rdone for (self: RopeCharIteratorPiece): Bool */
5772 short int core__ropes___core__ropes__RopeCharIteratorPiece___rdone(val* self) {
5773 short int var /* : Bool */;
5774 short int var1 /* : Bool */;
5775 var1 = self->attrs[COLOR_core__ropes__RopeCharIteratorPiece___rdone].s; /* _rdone on <self:RopeCharIteratorPiece> */
5776 var = var1;
5777 RET_LABEL:;
5778 return var;
5779 }
5780 /* method ropes#RopeCharIteratorPiece#rdone= for (self: RopeCharIteratorPiece, Bool) */
5781 void core__ropes___core__ropes__RopeCharIteratorPiece___rdone_61d(val* self, short int p0) {
5782 self->attrs[COLOR_core__ropes__RopeCharIteratorPiece___rdone].s = p0; /* _rdone on <self:RopeCharIteratorPiece> */
5783 RET_LABEL:;
5784 }
5785 /* method ropes#RopeCharIteratorPiece#prev for (self: RopeCharIteratorPiece): nullable RopeCharIteratorPiece */
5786 val* core__ropes___core__ropes__RopeCharIteratorPiece___prev(val* self) {
5787 val* var /* : nullable RopeCharIteratorPiece */;
5788 val* var1 /* : nullable RopeCharIteratorPiece */;
5789 var1 = self->attrs[COLOR_core__ropes__RopeCharIteratorPiece___prev].val; /* _prev on <self:RopeCharIteratorPiece> */
5790 var = var1;
5791 RET_LABEL:;
5792 return var;
5793 }
5794 /* method ropes#RopeCharIteratorPiece#prev= for (self: RopeCharIteratorPiece, nullable RopeCharIteratorPiece) */
5795 void core__ropes___core__ropes__RopeCharIteratorPiece___prev_61d(val* self, val* p0) {
5796 self->attrs[COLOR_core__ropes__RopeCharIteratorPiece___prev].val = p0; /* _prev on <self:RopeCharIteratorPiece> */
5797 RET_LABEL:;
5798 }
5799 /* method ropes#RopeCharIteratorPiece#init for (self: RopeCharIteratorPiece) */
5800 void core__ropes___core__ropes__RopeCharIteratorPiece___core__kernel__Object__init(val* self) {
5801 {
5802 ((void(*)(val* self))(self->class->vft[COLOR_core__ropes___core__ropes__RopeCharIteratorPiece___core__kernel__Object__init]))(self); /* init on <self:RopeCharIteratorPiece>*/
5803 }
5804 RET_LABEL:;
5805 }
5806 /* method ropes#RopeByteReverseIterator#ns for (self: RopeByteReverseIterator): NativeString */
5807 char* core__ropes___core__ropes__RopeByteReverseIterator___ns(val* self) {
5808 char* var /* : NativeString */;
5809 char* var1 /* : NativeString */;
5810 var1 = self->attrs[COLOR_core__ropes__RopeByteReverseIterator___ns].str; /* _ns on <self:RopeByteReverseIterator> */
5811 var = var1;
5812 RET_LABEL:;
5813 return var;
5814 }
5815 /* method ropes#RopeByteReverseIterator#ns= for (self: RopeByteReverseIterator, NativeString) */
5816 void core__ropes___core__ropes__RopeByteReverseIterator___ns_61d(val* self, char* p0) {
5817 self->attrs[COLOR_core__ropes__RopeByteReverseIterator___ns].str = p0; /* _ns on <self:RopeByteReverseIterator> */
5818 RET_LABEL:;
5819 }
5820 /* method ropes#RopeByteReverseIterator#pns for (self: RopeByteReverseIterator): Int */
5821 long core__ropes___core__ropes__RopeByteReverseIterator___pns(val* self) {
5822 long var /* : Int */;
5823 long var1 /* : Int */;
5824 var1 = self->attrs[COLOR_core__ropes__RopeByteReverseIterator___pns].l; /* _pns on <self:RopeByteReverseIterator> */
5825 var = var1;
5826 RET_LABEL:;
5827 return var;
5828 }
5829 /* method ropes#RopeByteReverseIterator#pns= for (self: RopeByteReverseIterator, Int) */
5830 void core__ropes___core__ropes__RopeByteReverseIterator___pns_61d(val* self, long p0) {
5831 self->attrs[COLOR_core__ropes__RopeByteReverseIterator___pns].l = p0; /* _pns on <self:RopeByteReverseIterator> */
5832 RET_LABEL:;
5833 }
5834 /* method ropes#RopeByteReverseIterator#pos for (self: RopeByteReverseIterator): Int */
5835 long core__ropes___core__ropes__RopeByteReverseIterator___pos(val* self) {
5836 long var /* : Int */;
5837 long var1 /* : Int */;
5838 var1 = self->attrs[COLOR_core__ropes__RopeByteReverseIterator___pos].l; /* _pos on <self:RopeByteReverseIterator> */
5839 var = var1;
5840 RET_LABEL:;
5841 return var;
5842 }
5843 /* method ropes#RopeByteReverseIterator#pos= for (self: RopeByteReverseIterator, Int) */
5844 void core__ropes___core__ropes__RopeByteReverseIterator___pos_61d(val* self, long p0) {
5845 self->attrs[COLOR_core__ropes__RopeByteReverseIterator___pos].l = p0; /* _pos on <self:RopeByteReverseIterator> */
5846 RET_LABEL:;
5847 }
5848 /* method ropes#RopeByteReverseIterator#subs for (self: RopeByteReverseIterator): IndexedIterator[FlatString] */
5849 val* core__ropes___core__ropes__RopeByteReverseIterator___subs(val* self) {
5850 val* var /* : IndexedIterator[FlatString] */;
5851 val* var1 /* : IndexedIterator[FlatString] */;
5852 var1 = self->attrs[COLOR_core__ropes__RopeByteReverseIterator___subs].val; /* _subs on <self:RopeByteReverseIterator> */
5853 if (unlikely(var1 == NULL)) {
5854 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
5855 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 632);
5856 fatal_exit(1);
5857 }
5858 var = var1;
5859 RET_LABEL:;
5860 return var;
5861 }
5862 /* method ropes#RopeByteReverseIterator#subs= for (self: RopeByteReverseIterator, IndexedIterator[FlatString]) */
5863 void core__ropes___core__ropes__RopeByteReverseIterator___subs_61d(val* self, val* p0) {
5864 self->attrs[COLOR_core__ropes__RopeByteReverseIterator___subs].val = p0; /* _subs on <self:RopeByteReverseIterator> */
5865 RET_LABEL:;
5866 }
5867 /* method ropes#RopeByteReverseIterator#from for (self: RopeByteReverseIterator, Concat, Int) */
5868 void core__ropes___core__ropes__RopeByteReverseIterator___from(val* self, val* p0, long p1) {
5869 val* var_root /* var root: Concat */;
5870 long var_pos /* var pos: Int */;
5871 val* var /* : ReverseRopeSubstrings */;
5872 val* var4 /* : IndexedIterator[FlatString] */;
5873 val* var6 /* : IndexedIterator[FlatString] */;
5874 val* var7 /* : nullable Object */;
5875 val* var_s /* var s: FlatString */;
5876 char* var8 /* : NativeString */;
5877 val* var10 /* : IndexedIterator[FlatString] */;
5878 val* var12 /* : IndexedIterator[FlatString] */;
5879 long var13 /* : Int */;
5880 long var14 /* : Int */;
5881 short int var16 /* : Bool */;
5882 int cltype;
5883 int idtype;
5884 const char* var_class_name;
5885 long var17 /* : Int */;
5886 {
5887 { /* Inline kernel#Object#init (self) on <self:RopeByteReverseIterator> */
5888 RET_LABEL1:(void)0;
5889 }
5890 }
5891 var_root = p0;
5892 var_pos = p1;
5893 {
5894 { /* Inline ropes#RopeByteReverseIterator#pos= (self,var_pos) on <self:RopeByteReverseIterator> */
5895 self->attrs[COLOR_core__ropes__RopeByteReverseIterator___pos].l = var_pos; /* _pos on <self:RopeByteReverseIterator> */
5896 RET_LABEL2:(void)0;
5897 }
5898 }
5899 var = NEW_core__ropes__ReverseRopeSubstrings(&type_core__ropes__ReverseRopeSubstrings);
5900 {
5901 core__ropes___core__ropes__ReverseRopeSubstrings___from(var, var_root, var_pos); /* Direct call ropes#ReverseRopeSubstrings#from on <var:ReverseRopeSubstrings>*/
5902 }
5903 {
5904 { /* Inline ropes#RopeByteReverseIterator#subs= (self,var) on <self:RopeByteReverseIterator> */
5905 self->attrs[COLOR_core__ropes__RopeByteReverseIterator___subs].val = var; /* _subs on <self:RopeByteReverseIterator> */
5906 RET_LABEL3:(void)0;
5907 }
5908 }
5909 {
5910 { /* Inline ropes#RopeByteReverseIterator#subs (self) on <self:RopeByteReverseIterator> */
5911 var6 = self->attrs[COLOR_core__ropes__RopeByteReverseIterator___subs].val; /* _subs on <self:RopeByteReverseIterator> */
5912 if (unlikely(var6 == NULL)) {
5913 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
5914 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 632);
5915 fatal_exit(1);
5916 }
5917 var4 = var6;
5918 RET_LABEL5:(void)0;
5919 }
5920 }
5921 {
5922 var7 = ((val*(*)(val* self))((((long)var4&3)?class_info[((long)var4&3)]:var4->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var4); /* item on <var4:IndexedIterator[FlatString]>*/
5923 }
5924 var_s = var7;
5925 var8 = var_s->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var_s:FlatString> */
5926 {
5927 { /* Inline ropes#RopeByteReverseIterator#ns= (self,var8) on <self:RopeByteReverseIterator> */
5928 self->attrs[COLOR_core__ropes__RopeByteReverseIterator___ns].str = var8; /* _ns on <self:RopeByteReverseIterator> */
5929 RET_LABEL9:(void)0;
5930 }
5931 }
5932 {
5933 { /* Inline ropes#RopeByteReverseIterator#subs (self) on <self:RopeByteReverseIterator> */
5934 var12 = self->attrs[COLOR_core__ropes__RopeByteReverseIterator___subs].val; /* _subs on <self:RopeByteReverseIterator> */
5935 if (unlikely(var12 == NULL)) {
5936 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
5937 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 632);
5938 fatal_exit(1);
5939 }
5940 var10 = var12;
5941 RET_LABEL11:(void)0;
5942 }
5943 }
5944 {
5945 var13 = ((long(*)(val* self))((((long)var10&3)?class_info[((long)var10&3)]:var10->class)->vft[COLOR_core__abstract_collection__IndexedIterator__index]))(var10); /* index on <var10:IndexedIterator[FlatString]>*/
5946 }
5947 {
5948 { /* Inline kernel#Int#- (var_pos,var13) on <var_pos:Int> */
5949 /* Covariant cast for argument 0 (i) <var13:Int> isa OTHER */
5950 /* <var13:Int> isa OTHER */
5951 var16 = 1; /* easy <var13:Int> isa OTHER*/
5952 if (unlikely(!var16)) {
5953 var_class_name = type_core__Int.name;
5954 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5955 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
5956 fatal_exit(1);
5957 }
5958 var17 = var_pos - var13;
5959 var14 = var17;
5960 goto RET_LABEL15;
5961 RET_LABEL15:(void)0;
5962 }
5963 }
5964 {
5965 { /* Inline ropes#RopeByteReverseIterator#pns= (self,var14) on <self:RopeByteReverseIterator> */
5966 self->attrs[COLOR_core__ropes__RopeByteReverseIterator___pns].l = var14; /* _pns on <self:RopeByteReverseIterator> */
5967 RET_LABEL18:(void)0;
5968 }
5969 }
5970 RET_LABEL:;
5971 }
5972 /* method ropes#RopeByteReverseIterator#index for (self: RopeByteReverseIterator): Int */
5973 long core__ropes___core__ropes__RopeByteReverseIterator___core__abstract_collection__IndexedIterator__index(val* self) {
5974 long var /* : Int */;
5975 long var1 /* : Int */;
5976 long var3 /* : Int */;
5977 {
5978 { /* Inline ropes#RopeByteReverseIterator#pos (self) on <self:RopeByteReverseIterator> */
5979 var3 = self->attrs[COLOR_core__ropes__RopeByteReverseIterator___pos].l; /* _pos on <self:RopeByteReverseIterator> */
5980 var1 = var3;
5981 RET_LABEL2:(void)0;
5982 }
5983 }
5984 var = var1;
5985 goto RET_LABEL;
5986 RET_LABEL:;
5987 return var;
5988 }
5989 /* method ropes#RopeByteReverseIterator#is_ok for (self: RopeByteReverseIterator): Bool */
5990 short int core__ropes___core__ropes__RopeByteReverseIterator___core__abstract_collection__Iterator__is_ok(val* self) {
5991 short int var /* : Bool */;
5992 long var1 /* : Int */;
5993 long var3 /* : Int */;
5994 short int var4 /* : Bool */;
5995 short int var6 /* : Bool */;
5996 int cltype;
5997 int idtype;
5998 const char* var_class_name;
5999 short int var7 /* : Bool */;
6000 {
6001 { /* Inline ropes#RopeByteReverseIterator#pos (self) on <self:RopeByteReverseIterator> */
6002 var3 = self->attrs[COLOR_core__ropes__RopeByteReverseIterator___pos].l; /* _pos on <self:RopeByteReverseIterator> */
6003 var1 = var3;
6004 RET_LABEL2:(void)0;
6005 }
6006 }
6007 {
6008 { /* Inline kernel#Int#>= (var1,0l) on <var1:Int> */
6009 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
6010 /* <0l:Int> isa OTHER */
6011 var6 = 1; /* easy <0l:Int> isa OTHER*/
6012 if (unlikely(!var6)) {
6013 var_class_name = type_core__Int.name;
6014 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6015 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
6016 fatal_exit(1);
6017 }
6018 var7 = var1 >= 0l;
6019 var4 = var7;
6020 goto RET_LABEL5;
6021 RET_LABEL5:(void)0;
6022 }
6023 }
6024 var = var4;
6025 goto RET_LABEL;
6026 RET_LABEL:;
6027 return var;
6028 }
6029 /* method ropes#RopeByteReverseIterator#item for (self: RopeByteReverseIterator): Byte */
6030 unsigned char core__ropes___core__ropes__RopeByteReverseIterator___core__abstract_collection__Iterator__item(val* self) {
6031 unsigned char var /* : Byte */;
6032 char* var1 /* : NativeString */;
6033 char* var3 /* : NativeString */;
6034 long var4 /* : Int */;
6035 long var6 /* : Int */;
6036 unsigned char var7 /* : Byte */;
6037 unsigned char var9 /* : Byte */;
6038 {
6039 { /* Inline ropes#RopeByteReverseIterator#ns (self) on <self:RopeByteReverseIterator> */
6040 var3 = self->attrs[COLOR_core__ropes__RopeByteReverseIterator___ns].str; /* _ns on <self:RopeByteReverseIterator> */
6041 var1 = var3;
6042 RET_LABEL2:(void)0;
6043 }
6044 }
6045 {
6046 { /* Inline ropes#RopeByteReverseIterator#pns (self) on <self:RopeByteReverseIterator> */
6047 var6 = self->attrs[COLOR_core__ropes__RopeByteReverseIterator___pns].l; /* _pns on <self:RopeByteReverseIterator> */
6048 var4 = var6;
6049 RET_LABEL5:(void)0;
6050 }
6051 }
6052 {
6053 { /* Inline native#NativeString#[] (var1,var4) on <var1:NativeString> */
6054 var9 = (unsigned char)((int)var1[var4]);
6055 var7 = var9;
6056 goto RET_LABEL8;
6057 RET_LABEL8:(void)0;
6058 }
6059 }
6060 var = var7;
6061 goto RET_LABEL;
6062 RET_LABEL:;
6063 return var;
6064 }
6065 /* method ropes#RopeByteReverseIterator#item for (self: Iterator[nullable Object]): nullable Object */
6066 val* VIRTUAL_core__ropes___core__ropes__RopeByteReverseIterator___core__abstract_collection__Iterator__item(val* self) {
6067 val* var /* : nullable Object */;
6068 unsigned char var1 /* : Byte */;
6069 val* var2 /* : nullable Object */;
6070 var1 = core__ropes___core__ropes__RopeByteReverseIterator___core__abstract_collection__Iterator__item(self);
6071 var2 = BOX_core__Byte(var1); /* autobox from Byte to nullable Object */
6072 var = var2;
6073 RET_LABEL:;
6074 return var;
6075 }
6076 /* method ropes#RopeByteReverseIterator#next for (self: RopeByteReverseIterator) */
6077 void core__ropes___core__ropes__RopeByteReverseIterator___core__abstract_collection__Iterator__next(val* self) {
6078 val* var_ /* var : RopeByteReverseIterator */;
6079 long var /* : Int */;
6080 long var2 /* : Int */;
6081 long var3 /* : Int */;
6082 short int var5 /* : Bool */;
6083 int cltype;
6084 int idtype;
6085 const char* var_class_name;
6086 long var6 /* : Int */;
6087 val* var_8 /* var : RopeByteReverseIterator */;
6088 long var9 /* : Int */;
6089 long var11 /* : Int */;
6090 long var12 /* : Int */;
6091 short int var14 /* : Bool */;
6092 int cltype15;
6093 int idtype16;
6094 const char* var_class_name17;
6095 long var18 /* : Int */;
6096 long var20 /* : Int */;
6097 long var22 /* : Int */;
6098 short int var23 /* : Bool */;
6099 short int var25 /* : Bool */;
6100 int cltype26;
6101 int idtype27;
6102 const char* var_class_name28;
6103 short int var29 /* : Bool */;
6104 val* var30 /* : IndexedIterator[FlatString] */;
6105 val* var32 /* : IndexedIterator[FlatString] */;
6106 short int var33 /* : Bool */;
6107 short int var34 /* : Bool */;
6108 val* var35 /* : IndexedIterator[FlatString] */;
6109 val* var37 /* : IndexedIterator[FlatString] */;
6110 val* var38 /* : IndexedIterator[FlatString] */;
6111 val* var40 /* : IndexedIterator[FlatString] */;
6112 short int var41 /* : Bool */;
6113 short int var42 /* : Bool */;
6114 val* var43 /* : IndexedIterator[FlatString] */;
6115 val* var45 /* : IndexedIterator[FlatString] */;
6116 val* var46 /* : nullable Object */;
6117 val* var_s /* var s: FlatString */;
6118 char* var47 /* : NativeString */;
6119 long var49 /* : Int */;
6120 var_ = self;
6121 {
6122 { /* Inline ropes#RopeByteReverseIterator#pns (var_) on <var_:RopeByteReverseIterator> */
6123 var2 = var_->attrs[COLOR_core__ropes__RopeByteReverseIterator___pns].l; /* _pns on <var_:RopeByteReverseIterator> */
6124 var = var2;
6125 RET_LABEL1:(void)0;
6126 }
6127 }
6128 {
6129 { /* Inline kernel#Int#- (var,1l) on <var:Int> */
6130 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
6131 /* <1l:Int> isa OTHER */
6132 var5 = 1; /* easy <1l:Int> isa OTHER*/
6133 if (unlikely(!var5)) {
6134 var_class_name = type_core__Int.name;
6135 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6136 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
6137 fatal_exit(1);
6138 }
6139 var6 = var - 1l;
6140 var3 = var6;
6141 goto RET_LABEL4;
6142 RET_LABEL4:(void)0;
6143 }
6144 }
6145 {
6146 { /* Inline ropes#RopeByteReverseIterator#pns= (var_,var3) on <var_:RopeByteReverseIterator> */
6147 var_->attrs[COLOR_core__ropes__RopeByteReverseIterator___pns].l = var3; /* _pns on <var_:RopeByteReverseIterator> */
6148 RET_LABEL7:(void)0;
6149 }
6150 }
6151 var_8 = self;
6152 {
6153 { /* Inline ropes#RopeByteReverseIterator#pos (var_8) on <var_8:RopeByteReverseIterator> */
6154 var11 = var_8->attrs[COLOR_core__ropes__RopeByteReverseIterator___pos].l; /* _pos on <var_8:RopeByteReverseIterator> */
6155 var9 = var11;
6156 RET_LABEL10:(void)0;
6157 }
6158 }
6159 {
6160 { /* Inline kernel#Int#- (var9,1l) on <var9:Int> */
6161 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
6162 /* <1l:Int> isa OTHER */
6163 var14 = 1; /* easy <1l:Int> isa OTHER*/
6164 if (unlikely(!var14)) {
6165 var_class_name17 = type_core__Int.name;
6166 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
6167 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
6168 fatal_exit(1);
6169 }
6170 var18 = var9 - 1l;
6171 var12 = var18;
6172 goto RET_LABEL13;
6173 RET_LABEL13:(void)0;
6174 }
6175 }
6176 {
6177 { /* Inline ropes#RopeByteReverseIterator#pos= (var_8,var12) on <var_8:RopeByteReverseIterator> */
6178 var_8->attrs[COLOR_core__ropes__RopeByteReverseIterator___pos].l = var12; /* _pos on <var_8:RopeByteReverseIterator> */
6179 RET_LABEL19:(void)0;
6180 }
6181 }
6182 {
6183 { /* Inline ropes#RopeByteReverseIterator#pns (self) on <self:RopeByteReverseIterator> */
6184 var22 = self->attrs[COLOR_core__ropes__RopeByteReverseIterator___pns].l; /* _pns on <self:RopeByteReverseIterator> */
6185 var20 = var22;
6186 RET_LABEL21:(void)0;
6187 }
6188 }
6189 {
6190 { /* Inline kernel#Int#>= (var20,0l) on <var20:Int> */
6191 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
6192 /* <0l:Int> isa OTHER */
6193 var25 = 1; /* easy <0l:Int> isa OTHER*/
6194 if (unlikely(!var25)) {
6195 var_class_name28 = type_core__Int.name;
6196 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28);
6197 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
6198 fatal_exit(1);
6199 }
6200 var29 = var20 >= 0l;
6201 var23 = var29;
6202 goto RET_LABEL24;
6203 RET_LABEL24:(void)0;
6204 }
6205 }
6206 if (var23){
6207 goto RET_LABEL;
6208 } else {
6209 }
6210 {
6211 { /* Inline ropes#RopeByteReverseIterator#subs (self) on <self:RopeByteReverseIterator> */
6212 var32 = self->attrs[COLOR_core__ropes__RopeByteReverseIterator___subs].val; /* _subs on <self:RopeByteReverseIterator> */
6213 if (unlikely(var32 == NULL)) {
6214 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
6215 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 632);
6216 fatal_exit(1);
6217 }
6218 var30 = var32;
6219 RET_LABEL31:(void)0;
6220 }
6221 }
6222 {
6223 var33 = ((short int(*)(val* self))((((long)var30&3)?class_info[((long)var30&3)]:var30->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var30); /* is_ok on <var30:IndexedIterator[FlatString]>*/
6224 }
6225 var34 = !var33;
6226 if (var34){
6227 goto RET_LABEL;
6228 } else {
6229 }
6230 {
6231 { /* Inline ropes#RopeByteReverseIterator#subs (self) on <self:RopeByteReverseIterator> */
6232 var37 = self->attrs[COLOR_core__ropes__RopeByteReverseIterator___subs].val; /* _subs on <self:RopeByteReverseIterator> */
6233 if (unlikely(var37 == NULL)) {
6234 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
6235 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 632);
6236 fatal_exit(1);
6237 }
6238 var35 = var37;
6239 RET_LABEL36:(void)0;
6240 }
6241 }
6242 {
6243 ((void(*)(val* self))((((long)var35&3)?class_info[((long)var35&3)]:var35->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var35); /* next on <var35:IndexedIterator[FlatString]>*/
6244 }
6245 {
6246 { /* Inline ropes#RopeByteReverseIterator#subs (self) on <self:RopeByteReverseIterator> */
6247 var40 = self->attrs[COLOR_core__ropes__RopeByteReverseIterator___subs].val; /* _subs on <self:RopeByteReverseIterator> */
6248 if (unlikely(var40 == NULL)) {
6249 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
6250 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 632);
6251 fatal_exit(1);
6252 }
6253 var38 = var40;
6254 RET_LABEL39:(void)0;
6255 }
6256 }
6257 {
6258 var41 = ((short int(*)(val* self))((((long)var38&3)?class_info[((long)var38&3)]:var38->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var38); /* is_ok on <var38:IndexedIterator[FlatString]>*/
6259 }
6260 var42 = !var41;
6261 if (var42){
6262 goto RET_LABEL;
6263 } else {
6264 }
6265 {
6266 { /* Inline ropes#RopeByteReverseIterator#subs (self) on <self:RopeByteReverseIterator> */
6267 var45 = self->attrs[COLOR_core__ropes__RopeByteReverseIterator___subs].val; /* _subs on <self:RopeByteReverseIterator> */
6268 if (unlikely(var45 == NULL)) {
6269 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
6270 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 632);
6271 fatal_exit(1);
6272 }
6273 var43 = var45;
6274 RET_LABEL44:(void)0;
6275 }
6276 }
6277 {
6278 var46 = ((val*(*)(val* self))((((long)var43&3)?class_info[((long)var43&3)]:var43->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var43); /* item on <var43:IndexedIterator[FlatString]>*/
6279 }
6280 var_s = var46;
6281 var47 = var_s->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var_s:FlatString> */
6282 {
6283 { /* Inline ropes#RopeByteReverseIterator#ns= (self,var47) on <self:RopeByteReverseIterator> */
6284 self->attrs[COLOR_core__ropes__RopeByteReverseIterator___ns].str = var47; /* _ns on <self:RopeByteReverseIterator> */
6285 RET_LABEL48:(void)0;
6286 }
6287 }
6288 {
6289 var49 = core__flat___FlatText___last_byte(var_s);
6290 }
6291 {
6292 { /* Inline ropes#RopeByteReverseIterator#pns= (self,var49) on <self:RopeByteReverseIterator> */
6293 self->attrs[COLOR_core__ropes__RopeByteReverseIterator___pns].l = var49; /* _pns on <self:RopeByteReverseIterator> */
6294 RET_LABEL50:(void)0;
6295 }
6296 }
6297 RET_LABEL:;
6298 }
6299 /* method ropes#RopeByteIterator#pns for (self: RopeByteIterator): Int */
6300 long core__ropes___core__ropes__RopeByteIterator___pns(val* self) {
6301 long var /* : Int */;
6302 long var1 /* : Int */;
6303 var1 = self->attrs[COLOR_core__ropes__RopeByteIterator___pns].l; /* _pns on <self:RopeByteIterator> */
6304 var = var1;
6305 RET_LABEL:;
6306 return var;
6307 }
6308 /* method ropes#RopeByteIterator#pns= for (self: RopeByteIterator, Int) */
6309 void core__ropes___core__ropes__RopeByteIterator___pns_61d(val* self, long p0) {
6310 self->attrs[COLOR_core__ropes__RopeByteIterator___pns].l = p0; /* _pns on <self:RopeByteIterator> */
6311 RET_LABEL:;
6312 }
6313 /* method ropes#RopeByteIterator#ns for (self: RopeByteIterator): NativeString */
6314 char* core__ropes___core__ropes__RopeByteIterator___ns(val* self) {
6315 char* var /* : NativeString */;
6316 char* var1 /* : NativeString */;
6317 var1 = self->attrs[COLOR_core__ropes__RopeByteIterator___ns].str; /* _ns on <self:RopeByteIterator> */
6318 var = var1;
6319 RET_LABEL:;
6320 return var;
6321 }
6322 /* method ropes#RopeByteIterator#ns= for (self: RopeByteIterator, NativeString) */
6323 void core__ropes___core__ropes__RopeByteIterator___ns_61d(val* self, char* p0) {
6324 self->attrs[COLOR_core__ropes__RopeByteIterator___ns].str = p0; /* _ns on <self:RopeByteIterator> */
6325 RET_LABEL:;
6326 }
6327 /* method ropes#RopeByteIterator#subs for (self: RopeByteIterator): IndexedIterator[FlatString] */
6328 val* core__ropes___core__ropes__RopeByteIterator___subs(val* self) {
6329 val* var /* : IndexedIterator[FlatString] */;
6330 val* var1 /* : IndexedIterator[FlatString] */;
6331 var1 = self->attrs[COLOR_core__ropes__RopeByteIterator___subs].val; /* _subs on <self:RopeByteIterator> */
6332 if (unlikely(var1 == NULL)) {
6333 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
6334 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 671);
6335 fatal_exit(1);
6336 }
6337 var = var1;
6338 RET_LABEL:;
6339 return var;
6340 }
6341 /* method ropes#RopeByteIterator#subs= for (self: RopeByteIterator, IndexedIterator[FlatString]) */
6342 void core__ropes___core__ropes__RopeByteIterator___subs_61d(val* self, val* p0) {
6343 self->attrs[COLOR_core__ropes__RopeByteIterator___subs].val = p0; /* _subs on <self:RopeByteIterator> */
6344 RET_LABEL:;
6345 }
6346 /* method ropes#RopeByteIterator#max for (self: RopeByteIterator): Int */
6347 long core__ropes___core__ropes__RopeByteIterator___max(val* self) {
6348 long var /* : Int */;
6349 long var1 /* : Int */;
6350 var1 = self->attrs[COLOR_core__ropes__RopeByteIterator___max].l; /* _max on <self:RopeByteIterator> */
6351 var = var1;
6352 RET_LABEL:;
6353 return var;
6354 }
6355 /* method ropes#RopeByteIterator#max= for (self: RopeByteIterator, Int) */
6356 void core__ropes___core__ropes__RopeByteIterator___max_61d(val* self, long p0) {
6357 self->attrs[COLOR_core__ropes__RopeByteIterator___max].l = p0; /* _max on <self:RopeByteIterator> */
6358 RET_LABEL:;
6359 }
6360 /* method ropes#RopeByteIterator#pos for (self: RopeByteIterator): Int */
6361 long core__ropes___core__ropes__RopeByteIterator___pos(val* self) {
6362 long var /* : Int */;
6363 long var1 /* : Int */;
6364 var1 = self->attrs[COLOR_core__ropes__RopeByteIterator___pos].l; /* _pos on <self:RopeByteIterator> */
6365 var = var1;
6366 RET_LABEL:;
6367 return var;
6368 }
6369 /* method ropes#RopeByteIterator#pos= for (self: RopeByteIterator, Int) */
6370 void core__ropes___core__ropes__RopeByteIterator___pos_61d(val* self, long p0) {
6371 self->attrs[COLOR_core__ropes__RopeByteIterator___pos].l = p0; /* _pos on <self:RopeByteIterator> */
6372 RET_LABEL:;
6373 }
6374 /* method ropes#RopeByteIterator#from for (self: RopeByteIterator, Concat, Int) */
6375 void core__ropes___core__ropes__RopeByteIterator___from(val* self, val* p0, long p1) {
6376 val* var_root /* var root: Concat */;
6377 long var_pos /* var pos: Int */;
6378 val* var /* : RopeSubstrings */;
6379 val* var3 /* : IndexedIterator[FlatString] */;
6380 val* var5 /* : IndexedIterator[FlatString] */;
6381 long var6 /* : Int */;
6382 long var7 /* : Int */;
6383 short int var9 /* : Bool */;
6384 int cltype;
6385 int idtype;
6386 const char* var_class_name;
6387 long var10 /* : Int */;
6388 val* var13 /* : IndexedIterator[FlatString] */;
6389 val* var15 /* : IndexedIterator[FlatString] */;
6390 val* var16 /* : nullable Object */;
6391 char* var17 /* : NativeString */;
6392 long var19 /* : Int */;
6393 long var21 /* : Int */;
6394 long var22 /* : Int */;
6395 short int var24 /* : Bool */;
6396 int cltype25;
6397 int idtype26;
6398 const char* var_class_name27;
6399 long var28 /* : Int */;
6400 {
6401 { /* Inline kernel#Object#init (self) on <self:RopeByteIterator> */
6402 RET_LABEL1:(void)0;
6403 }
6404 }
6405 var_root = p0;
6406 var_pos = p1;
6407 var = NEW_core__ropes__RopeSubstrings(&type_core__ropes__RopeSubstrings);
6408 {
6409 core__ropes___core__ropes__RopeSubstrings___from(var, var_root, var_pos); /* Direct call ropes#RopeSubstrings#from on <var:RopeSubstrings>*/
6410 }
6411 {
6412 { /* Inline ropes#RopeByteIterator#subs= (self,var) on <self:RopeByteIterator> */
6413 self->attrs[COLOR_core__ropes__RopeByteIterator___subs].val = var; /* _subs on <self:RopeByteIterator> */
6414 RET_LABEL2:(void)0;
6415 }
6416 }
6417 {
6418 { /* Inline ropes#RopeByteIterator#subs (self) on <self:RopeByteIterator> */
6419 var5 = self->attrs[COLOR_core__ropes__RopeByteIterator___subs].val; /* _subs on <self:RopeByteIterator> */
6420 if (unlikely(var5 == NULL)) {
6421 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
6422 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 671);
6423 fatal_exit(1);
6424 }
6425 var3 = var5;
6426 RET_LABEL4:(void)0;
6427 }
6428 }
6429 {
6430 var6 = ((long(*)(val* self))((((long)var3&3)?class_info[((long)var3&3)]:var3->class)->vft[COLOR_core__abstract_collection__IndexedIterator__index]))(var3); /* index on <var3:IndexedIterator[FlatString]>*/
6431 }
6432 {
6433 { /* Inline kernel#Int#- (var_pos,var6) on <var_pos:Int> */
6434 /* Covariant cast for argument 0 (i) <var6:Int> isa OTHER */
6435 /* <var6:Int> isa OTHER */
6436 var9 = 1; /* easy <var6:Int> isa OTHER*/
6437 if (unlikely(!var9)) {
6438 var_class_name = type_core__Int.name;
6439 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6440 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
6441 fatal_exit(1);
6442 }
6443 var10 = var_pos - var6;
6444 var7 = var10;
6445 goto RET_LABEL8;
6446 RET_LABEL8:(void)0;
6447 }
6448 }
6449 {
6450 { /* Inline ropes#RopeByteIterator#pns= (self,var7) on <self:RopeByteIterator> */
6451 self->attrs[COLOR_core__ropes__RopeByteIterator___pns].l = var7; /* _pns on <self:RopeByteIterator> */
6452 RET_LABEL11:(void)0;
6453 }
6454 }
6455 {
6456 { /* Inline ropes#RopeByteIterator#pos= (self,var_pos) on <self:RopeByteIterator> */
6457 self->attrs[COLOR_core__ropes__RopeByteIterator___pos].l = var_pos; /* _pos on <self:RopeByteIterator> */
6458 RET_LABEL12:(void)0;
6459 }
6460 }
6461 {
6462 { /* Inline ropes#RopeByteIterator#subs (self) on <self:RopeByteIterator> */
6463 var15 = self->attrs[COLOR_core__ropes__RopeByteIterator___subs].val; /* _subs on <self:RopeByteIterator> */
6464 if (unlikely(var15 == NULL)) {
6465 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
6466 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 671);
6467 fatal_exit(1);
6468 }
6469 var13 = var15;
6470 RET_LABEL14:(void)0;
6471 }
6472 }
6473 {
6474 var16 = ((val*(*)(val* self))((((long)var13&3)?class_info[((long)var13&3)]:var13->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var13); /* item on <var13:IndexedIterator[FlatString]>*/
6475 }
6476 var17 = var16->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var16:nullable Object(FlatString)> */
6477 {
6478 { /* Inline ropes#RopeByteIterator#ns= (self,var17) on <self:RopeByteIterator> */
6479 self->attrs[COLOR_core__ropes__RopeByteIterator___ns].str = var17; /* _ns on <self:RopeByteIterator> */
6480 RET_LABEL18:(void)0;
6481 }
6482 }
6483 {
6484 { /* Inline ropes#Concat#length (var_root) on <var_root:Concat> */
6485 var21 = var_root->attrs[COLOR_core__ropes__Concat___length].l; /* _length on <var_root:Concat> */
6486 var19 = var21;
6487 RET_LABEL20:(void)0;
6488 }
6489 }
6490 {
6491 { /* Inline kernel#Int#- (var19,1l) on <var19:Int> */
6492 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
6493 /* <1l:Int> isa OTHER */
6494 var24 = 1; /* easy <1l:Int> isa OTHER*/
6495 if (unlikely(!var24)) {
6496 var_class_name27 = type_core__Int.name;
6497 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
6498 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
6499 fatal_exit(1);
6500 }
6501 var28 = var19 - 1l;
6502 var22 = var28;
6503 goto RET_LABEL23;
6504 RET_LABEL23:(void)0;
6505 }
6506 }
6507 {
6508 { /* Inline ropes#RopeByteIterator#max= (self,var22) on <self:RopeByteIterator> */
6509 self->attrs[COLOR_core__ropes__RopeByteIterator___max].l = var22; /* _max on <self:RopeByteIterator> */
6510 RET_LABEL29:(void)0;
6511 }
6512 }
6513 RET_LABEL:;
6514 }
6515 /* method ropes#RopeByteIterator#item for (self: RopeByteIterator): Byte */
6516 unsigned char core__ropes___core__ropes__RopeByteIterator___core__abstract_collection__Iterator__item(val* self) {
6517 unsigned char var /* : Byte */;
6518 char* var1 /* : NativeString */;
6519 char* var3 /* : NativeString */;
6520 long var4 /* : Int */;
6521 long var6 /* : Int */;
6522 unsigned char var7 /* : Byte */;
6523 unsigned char var9 /* : Byte */;
6524 {
6525 { /* Inline ropes#RopeByteIterator#ns (self) on <self:RopeByteIterator> */
6526 var3 = self->attrs[COLOR_core__ropes__RopeByteIterator___ns].str; /* _ns on <self:RopeByteIterator> */
6527 var1 = var3;
6528 RET_LABEL2:(void)0;
6529 }
6530 }
6531 {
6532 { /* Inline ropes#RopeByteIterator#pns (self) on <self:RopeByteIterator> */
6533 var6 = self->attrs[COLOR_core__ropes__RopeByteIterator___pns].l; /* _pns on <self:RopeByteIterator> */
6534 var4 = var6;
6535 RET_LABEL5:(void)0;
6536 }
6537 }
6538 {
6539 { /* Inline native#NativeString#[] (var1,var4) on <var1:NativeString> */
6540 var9 = (unsigned char)((int)var1[var4]);
6541 var7 = var9;
6542 goto RET_LABEL8;
6543 RET_LABEL8:(void)0;
6544 }
6545 }
6546 var = var7;
6547 goto RET_LABEL;
6548 RET_LABEL:;
6549 return var;
6550 }
6551 /* method ropes#RopeByteIterator#item for (self: Iterator[nullable Object]): nullable Object */
6552 val* VIRTUAL_core__ropes___core__ropes__RopeByteIterator___core__abstract_collection__Iterator__item(val* self) {
6553 val* var /* : nullable Object */;
6554 unsigned char var1 /* : Byte */;
6555 val* var2 /* : nullable Object */;
6556 var1 = core__ropes___core__ropes__RopeByteIterator___core__abstract_collection__Iterator__item(self);
6557 var2 = BOX_core__Byte(var1); /* autobox from Byte to nullable Object */
6558 var = var2;
6559 RET_LABEL:;
6560 return var;
6561 }
6562 /* method ropes#RopeByteIterator#is_ok for (self: RopeByteIterator): Bool */
6563 short int core__ropes___core__ropes__RopeByteIterator___core__abstract_collection__Iterator__is_ok(val* self) {
6564 short int var /* : Bool */;
6565 long var1 /* : Int */;
6566 long var3 /* : Int */;
6567 long var4 /* : Int */;
6568 long var6 /* : Int */;
6569 short int var7 /* : Bool */;
6570 short int var9 /* : Bool */;
6571 int cltype;
6572 int idtype;
6573 const char* var_class_name;
6574 short int var10 /* : Bool */;
6575 {
6576 { /* Inline ropes#RopeByteIterator#pos (self) on <self:RopeByteIterator> */
6577 var3 = self->attrs[COLOR_core__ropes__RopeByteIterator___pos].l; /* _pos on <self:RopeByteIterator> */
6578 var1 = var3;
6579 RET_LABEL2:(void)0;
6580 }
6581 }
6582 {
6583 { /* Inline ropes#RopeByteIterator#max (self) on <self:RopeByteIterator> */
6584 var6 = self->attrs[COLOR_core__ropes__RopeByteIterator___max].l; /* _max on <self:RopeByteIterator> */
6585 var4 = var6;
6586 RET_LABEL5:(void)0;
6587 }
6588 }
6589 {
6590 { /* Inline kernel#Int#<= (var1,var4) on <var1:Int> */
6591 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
6592 /* <var4:Int> isa OTHER */
6593 var9 = 1; /* easy <var4:Int> isa OTHER*/
6594 if (unlikely(!var9)) {
6595 var_class_name = type_core__Int.name;
6596 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6597 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
6598 fatal_exit(1);
6599 }
6600 var10 = var1 <= var4;
6601 var7 = var10;
6602 goto RET_LABEL8;
6603 RET_LABEL8:(void)0;
6604 }
6605 }
6606 var = var7;
6607 goto RET_LABEL;
6608 RET_LABEL:;
6609 return var;
6610 }
6611 /* method ropes#RopeByteIterator#index for (self: RopeByteIterator): Int */
6612 long core__ropes___core__ropes__RopeByteIterator___core__abstract_collection__IndexedIterator__index(val* self) {
6613 long var /* : Int */;
6614 long var1 /* : Int */;
6615 long var3 /* : Int */;
6616 {
6617 { /* Inline ropes#RopeByteIterator#pos (self) on <self:RopeByteIterator> */
6618 var3 = self->attrs[COLOR_core__ropes__RopeByteIterator___pos].l; /* _pos on <self:RopeByteIterator> */
6619 var1 = var3;
6620 RET_LABEL2:(void)0;
6621 }
6622 }
6623 var = var1;
6624 goto RET_LABEL;
6625 RET_LABEL:;
6626 return var;
6627 }
6628 /* method ropes#RopeByteIterator#next for (self: RopeByteIterator) */
6629 void core__ropes___core__ropes__RopeByteIterator___core__abstract_collection__Iterator__next(val* self) {
6630 val* var_ /* var : RopeByteIterator */;
6631 long var /* : Int */;
6632 long var2 /* : Int */;
6633 long var3 /* : Int */;
6634 short int var5 /* : Bool */;
6635 int cltype;
6636 int idtype;
6637 const char* var_class_name;
6638 long var6 /* : Int */;
6639 val* var_8 /* var : RopeByteIterator */;
6640 long var9 /* : Int */;
6641 long var11 /* : Int */;
6642 long var12 /* : Int */;
6643 short int var14 /* : Bool */;
6644 int cltype15;
6645 int idtype16;
6646 const char* var_class_name17;
6647 long var18 /* : Int */;
6648 long var20 /* : Int */;
6649 long var22 /* : Int */;
6650 val* var23 /* : IndexedIterator[FlatString] */;
6651 val* var25 /* : IndexedIterator[FlatString] */;
6652 val* var26 /* : nullable Object */;
6653 long var27 /* : Int */;
6654 short int var28 /* : Bool */;
6655 short int var30 /* : Bool */;
6656 int cltype31;
6657 int idtype32;
6658 const char* var_class_name33;
6659 short int var34 /* : Bool */;
6660 val* var35 /* : IndexedIterator[FlatString] */;
6661 val* var37 /* : IndexedIterator[FlatString] */;
6662 short int var38 /* : Bool */;
6663 short int var39 /* : Bool */;
6664 val* var40 /* : IndexedIterator[FlatString] */;
6665 val* var42 /* : IndexedIterator[FlatString] */;
6666 val* var43 /* : IndexedIterator[FlatString] */;
6667 val* var45 /* : IndexedIterator[FlatString] */;
6668 short int var46 /* : Bool */;
6669 short int var47 /* : Bool */;
6670 val* var48 /* : IndexedIterator[FlatString] */;
6671 val* var50 /* : IndexedIterator[FlatString] */;
6672 val* var51 /* : nullable Object */;
6673 char* var52 /* : NativeString */;
6674 var_ = self;
6675 {
6676 { /* Inline ropes#RopeByteIterator#pns (var_) on <var_:RopeByteIterator> */
6677 var2 = var_->attrs[COLOR_core__ropes__RopeByteIterator___pns].l; /* _pns on <var_:RopeByteIterator> */
6678 var = var2;
6679 RET_LABEL1:(void)0;
6680 }
6681 }
6682 {
6683 { /* Inline kernel#Int#+ (var,1l) on <var:Int> */
6684 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
6685 /* <1l:Int> isa OTHER */
6686 var5 = 1; /* easy <1l:Int> isa OTHER*/
6687 if (unlikely(!var5)) {
6688 var_class_name = type_core__Int.name;
6689 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6690 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
6691 fatal_exit(1);
6692 }
6693 var6 = var + 1l;
6694 var3 = var6;
6695 goto RET_LABEL4;
6696 RET_LABEL4:(void)0;
6697 }
6698 }
6699 {
6700 { /* Inline ropes#RopeByteIterator#pns= (var_,var3) on <var_:RopeByteIterator> */
6701 var_->attrs[COLOR_core__ropes__RopeByteIterator___pns].l = var3; /* _pns on <var_:RopeByteIterator> */
6702 RET_LABEL7:(void)0;
6703 }
6704 }
6705 var_8 = self;
6706 {
6707 { /* Inline ropes#RopeByteIterator#pos (var_8) on <var_8:RopeByteIterator> */
6708 var11 = var_8->attrs[COLOR_core__ropes__RopeByteIterator___pos].l; /* _pos on <var_8:RopeByteIterator> */
6709 var9 = var11;
6710 RET_LABEL10:(void)0;
6711 }
6712 }
6713 {
6714 { /* Inline kernel#Int#+ (var9,1l) on <var9:Int> */
6715 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
6716 /* <1l:Int> isa OTHER */
6717 var14 = 1; /* easy <1l:Int> isa OTHER*/
6718 if (unlikely(!var14)) {
6719 var_class_name17 = type_core__Int.name;
6720 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
6721 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
6722 fatal_exit(1);
6723 }
6724 var18 = var9 + 1l;
6725 var12 = var18;
6726 goto RET_LABEL13;
6727 RET_LABEL13:(void)0;
6728 }
6729 }
6730 {
6731 { /* Inline ropes#RopeByteIterator#pos= (var_8,var12) on <var_8:RopeByteIterator> */
6732 var_8->attrs[COLOR_core__ropes__RopeByteIterator___pos].l = var12; /* _pos on <var_8:RopeByteIterator> */
6733 RET_LABEL19:(void)0;
6734 }
6735 }
6736 {
6737 { /* Inline ropes#RopeByteIterator#pns (self) on <self:RopeByteIterator> */
6738 var22 = self->attrs[COLOR_core__ropes__RopeByteIterator___pns].l; /* _pns on <self:RopeByteIterator> */
6739 var20 = var22;
6740 RET_LABEL21:(void)0;
6741 }
6742 }
6743 {
6744 { /* Inline ropes#RopeByteIterator#subs (self) on <self:RopeByteIterator> */
6745 var25 = self->attrs[COLOR_core__ropes__RopeByteIterator___subs].val; /* _subs on <self:RopeByteIterator> */
6746 if (unlikely(var25 == NULL)) {
6747 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
6748 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 671);
6749 fatal_exit(1);
6750 }
6751 var23 = var25;
6752 RET_LABEL24:(void)0;
6753 }
6754 }
6755 {
6756 var26 = ((val*(*)(val* self))((((long)var23&3)?class_info[((long)var23&3)]:var23->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var23); /* item on <var23:IndexedIterator[FlatString]>*/
6757 }
6758 var27 = var26->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <var26:nullable Object(FlatString)> */
6759 {
6760 { /* Inline kernel#Int#< (var20,var27) on <var20:Int> */
6761 /* Covariant cast for argument 0 (i) <var27:Int> isa OTHER */
6762 /* <var27:Int> isa OTHER */
6763 var30 = 1; /* easy <var27:Int> isa OTHER*/
6764 if (unlikely(!var30)) {
6765 var_class_name33 = type_core__Int.name;
6766 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33);
6767 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
6768 fatal_exit(1);
6769 }
6770 var34 = var20 < var27;
6771 var28 = var34;
6772 goto RET_LABEL29;
6773 RET_LABEL29:(void)0;
6774 }
6775 }
6776 if (var28){
6777 goto RET_LABEL;
6778 } else {
6779 }
6780 {
6781 { /* Inline ropes#RopeByteIterator#subs (self) on <self:RopeByteIterator> */
6782 var37 = self->attrs[COLOR_core__ropes__RopeByteIterator___subs].val; /* _subs on <self:RopeByteIterator> */
6783 if (unlikely(var37 == NULL)) {
6784 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
6785 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 671);
6786 fatal_exit(1);
6787 }
6788 var35 = var37;
6789 RET_LABEL36:(void)0;
6790 }
6791 }
6792 {
6793 var38 = ((short int(*)(val* self))((((long)var35&3)?class_info[((long)var35&3)]:var35->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var35); /* is_ok on <var35:IndexedIterator[FlatString]>*/
6794 }
6795 var39 = !var38;
6796 if (var39){
6797 goto RET_LABEL;
6798 } else {
6799 }
6800 {
6801 { /* Inline ropes#RopeByteIterator#subs (self) on <self:RopeByteIterator> */
6802 var42 = self->attrs[COLOR_core__ropes__RopeByteIterator___subs].val; /* _subs on <self:RopeByteIterator> */
6803 if (unlikely(var42 == NULL)) {
6804 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
6805 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 671);
6806 fatal_exit(1);
6807 }
6808 var40 = var42;
6809 RET_LABEL41:(void)0;
6810 }
6811 }
6812 {
6813 ((void(*)(val* self))((((long)var40&3)?class_info[((long)var40&3)]:var40->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var40); /* next on <var40:IndexedIterator[FlatString]>*/
6814 }
6815 {
6816 { /* Inline ropes#RopeByteIterator#subs (self) on <self:RopeByteIterator> */
6817 var45 = self->attrs[COLOR_core__ropes__RopeByteIterator___subs].val; /* _subs on <self:RopeByteIterator> */
6818 if (unlikely(var45 == NULL)) {
6819 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
6820 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 671);
6821 fatal_exit(1);
6822 }
6823 var43 = var45;
6824 RET_LABEL44:(void)0;
6825 }
6826 }
6827 {
6828 var46 = ((short int(*)(val* self))((((long)var43&3)?class_info[((long)var43&3)]:var43->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var43); /* is_ok on <var43:IndexedIterator[FlatString]>*/
6829 }
6830 var47 = !var46;
6831 if (var47){
6832 goto RET_LABEL;
6833 } else {
6834 }
6835 {
6836 { /* Inline ropes#RopeByteIterator#subs (self) on <self:RopeByteIterator> */
6837 var50 = self->attrs[COLOR_core__ropes__RopeByteIterator___subs].val; /* _subs on <self:RopeByteIterator> */
6838 if (unlikely(var50 == NULL)) {
6839 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
6840 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 671);
6841 fatal_exit(1);
6842 }
6843 var48 = var50;
6844 RET_LABEL49:(void)0;
6845 }
6846 }
6847 {
6848 var51 = ((val*(*)(val* self))((((long)var48&3)?class_info[((long)var48&3)]:var48->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var48); /* item on <var48:IndexedIterator[FlatString]>*/
6849 }
6850 var52 = var51->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var51:nullable Object(FlatString)> */
6851 {
6852 { /* Inline ropes#RopeByteIterator#ns= (self,var52) on <self:RopeByteIterator> */
6853 self->attrs[COLOR_core__ropes__RopeByteIterator___ns].str = var52; /* _ns on <self:RopeByteIterator> */
6854 RET_LABEL53:(void)0;
6855 }
6856 }
6857 {
6858 { /* Inline ropes#RopeByteIterator#pns= (self,0l) on <self:RopeByteIterator> */
6859 self->attrs[COLOR_core__ropes__RopeByteIterator___pns].l = 0l; /* _pns on <self:RopeByteIterator> */
6860 RET_LABEL54:(void)0;
6861 }
6862 }
6863 RET_LABEL:;
6864 }
6865 /* method ropes#RopeCharReverseIterator#ns for (self: RopeCharReverseIterator): String */
6866 val* core__ropes___core__ropes__RopeCharReverseIterator___ns(val* self) {
6867 val* var /* : String */;
6868 val* var1 /* : String */;
6869 var1 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___ns].val; /* _ns on <self:RopeCharReverseIterator> */
6870 if (unlikely(var1 == NULL)) {
6871 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ns");
6872 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 709);
6873 fatal_exit(1);
6874 }
6875 var = var1;
6876 RET_LABEL:;
6877 return var;
6878 }
6879 /* method ropes#RopeCharReverseIterator#ns= for (self: RopeCharReverseIterator, String) */
6880 void core__ropes___core__ropes__RopeCharReverseIterator___ns_61d(val* self, val* p0) {
6881 self->attrs[COLOR_core__ropes__RopeCharReverseIterator___ns].val = p0; /* _ns on <self:RopeCharReverseIterator> */
6882 RET_LABEL:;
6883 }
6884 /* method ropes#RopeCharReverseIterator#pns for (self: RopeCharReverseIterator): Int */
6885 long core__ropes___core__ropes__RopeCharReverseIterator___pns(val* self) {
6886 long var /* : Int */;
6887 long var1 /* : Int */;
6888 var1 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___pns].l; /* _pns on <self:RopeCharReverseIterator> */
6889 var = var1;
6890 RET_LABEL:;
6891 return var;
6892 }
6893 /* method ropes#RopeCharReverseIterator#pns= for (self: RopeCharReverseIterator, Int) */
6894 void core__ropes___core__ropes__RopeCharReverseIterator___pns_61d(val* self, long p0) {
6895 self->attrs[COLOR_core__ropes__RopeCharReverseIterator___pns].l = p0; /* _pns on <self:RopeCharReverseIterator> */
6896 RET_LABEL:;
6897 }
6898 /* method ropes#RopeCharReverseIterator#pos for (self: RopeCharReverseIterator): Int */
6899 long core__ropes___core__ropes__RopeCharReverseIterator___pos(val* self) {
6900 long var /* : Int */;
6901 long var1 /* : Int */;
6902 var1 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___pos].l; /* _pos on <self:RopeCharReverseIterator> */
6903 var = var1;
6904 RET_LABEL:;
6905 return var;
6906 }
6907 /* method ropes#RopeCharReverseIterator#pos= for (self: RopeCharReverseIterator, Int) */
6908 void core__ropes___core__ropes__RopeCharReverseIterator___pos_61d(val* self, long p0) {
6909 self->attrs[COLOR_core__ropes__RopeCharReverseIterator___pos].l = p0; /* _pos on <self:RopeCharReverseIterator> */
6910 RET_LABEL:;
6911 }
6912 /* method ropes#RopeCharReverseIterator#subs for (self: RopeCharReverseIterator): IndexedIterator[String] */
6913 val* core__ropes___core__ropes__RopeCharReverseIterator___subs(val* self) {
6914 val* var /* : IndexedIterator[String] */;
6915 val* var1 /* : IndexedIterator[String] */;
6916 var1 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___subs].val; /* _subs on <self:RopeCharReverseIterator> */
6917 if (unlikely(var1 == NULL)) {
6918 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
6919 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 715);
6920 fatal_exit(1);
6921 }
6922 var = var1;
6923 RET_LABEL:;
6924 return var;
6925 }
6926 /* method ropes#RopeCharReverseIterator#subs= for (self: RopeCharReverseIterator, IndexedIterator[String]) */
6927 void core__ropes___core__ropes__RopeCharReverseIterator___subs_61d(val* self, val* p0) {
6928 self->attrs[COLOR_core__ropes__RopeCharReverseIterator___subs].val = p0; /* _subs on <self:RopeCharReverseIterator> */
6929 RET_LABEL:;
6930 }
6931 /* method ropes#RopeCharReverseIterator#from for (self: RopeCharReverseIterator, Concat, Int) */
6932 void core__ropes___core__ropes__RopeCharReverseIterator___from(val* self, val* p0, long p1) {
6933 val* var_root /* var root: Concat */;
6934 long var_pos /* var pos: Int */;
6935 val* var /* : ReverseRopeSubstrings */;
6936 val* var4 /* : IndexedIterator[String] */;
6937 val* var6 /* : IndexedIterator[String] */;
6938 val* var7 /* : nullable Object */;
6939 val* var9 /* : IndexedIterator[String] */;
6940 val* var11 /* : IndexedIterator[String] */;
6941 long var12 /* : Int */;
6942 long var13 /* : Int */;
6943 short int var15 /* : Bool */;
6944 int cltype;
6945 int idtype;
6946 const char* var_class_name;
6947 long var16 /* : Int */;
6948 {
6949 { /* Inline kernel#Object#init (self) on <self:RopeCharReverseIterator> */
6950 RET_LABEL1:(void)0;
6951 }
6952 }
6953 var_root = p0;
6954 var_pos = p1;
6955 {
6956 { /* Inline ropes#RopeCharReverseIterator#pos= (self,var_pos) on <self:RopeCharReverseIterator> */
6957 self->attrs[COLOR_core__ropes__RopeCharReverseIterator___pos].l = var_pos; /* _pos on <self:RopeCharReverseIterator> */
6958 RET_LABEL2:(void)0;
6959 }
6960 }
6961 var = NEW_core__ropes__ReverseRopeSubstrings(&type_core__ropes__ReverseRopeSubstrings);
6962 {
6963 core__ropes___core__ropes__ReverseRopeSubstrings___from(var, var_root, var_pos); /* Direct call ropes#ReverseRopeSubstrings#from on <var:ReverseRopeSubstrings>*/
6964 }
6965 {
6966 { /* Inline ropes#RopeCharReverseIterator#subs= (self,var) on <self:RopeCharReverseIterator> */
6967 self->attrs[COLOR_core__ropes__RopeCharReverseIterator___subs].val = var; /* _subs on <self:RopeCharReverseIterator> */
6968 RET_LABEL3:(void)0;
6969 }
6970 }
6971 {
6972 { /* Inline ropes#RopeCharReverseIterator#subs (self) on <self:RopeCharReverseIterator> */
6973 var6 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___subs].val; /* _subs on <self:RopeCharReverseIterator> */
6974 if (unlikely(var6 == NULL)) {
6975 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
6976 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 715);
6977 fatal_exit(1);
6978 }
6979 var4 = var6;
6980 RET_LABEL5:(void)0;
6981 }
6982 }
6983 {
6984 var7 = ((val*(*)(val* self))((((long)var4&3)?class_info[((long)var4&3)]:var4->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var4); /* item on <var4:IndexedIterator[String]>*/
6985 }
6986 {
6987 { /* Inline ropes#RopeCharReverseIterator#ns= (self,var7) on <self:RopeCharReverseIterator> */
6988 self->attrs[COLOR_core__ropes__RopeCharReverseIterator___ns].val = var7; /* _ns on <self:RopeCharReverseIterator> */
6989 RET_LABEL8:(void)0;
6990 }
6991 }
6992 {
6993 { /* Inline ropes#RopeCharReverseIterator#subs (self) on <self:RopeCharReverseIterator> */
6994 var11 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___subs].val; /* _subs on <self:RopeCharReverseIterator> */
6995 if (unlikely(var11 == NULL)) {
6996 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
6997 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 715);
6998 fatal_exit(1);
6999 }
7000 var9 = var11;
7001 RET_LABEL10:(void)0;
7002 }
7003 }
7004 {
7005 var12 = ((long(*)(val* self))((((long)var9&3)?class_info[((long)var9&3)]:var9->class)->vft[COLOR_core__abstract_collection__IndexedIterator__index]))(var9); /* index on <var9:IndexedIterator[String]>*/
7006 }
7007 {
7008 { /* Inline kernel#Int#- (var_pos,var12) on <var_pos:Int> */
7009 /* Covariant cast for argument 0 (i) <var12:Int> isa OTHER */
7010 /* <var12:Int> isa OTHER */
7011 var15 = 1; /* easy <var12:Int> isa OTHER*/
7012 if (unlikely(!var15)) {
7013 var_class_name = type_core__Int.name;
7014 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
7015 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
7016 fatal_exit(1);
7017 }
7018 var16 = var_pos - var12;
7019 var13 = var16;
7020 goto RET_LABEL14;
7021 RET_LABEL14:(void)0;
7022 }
7023 }
7024 {
7025 { /* Inline ropes#RopeCharReverseIterator#pns= (self,var13) on <self:RopeCharReverseIterator> */
7026 self->attrs[COLOR_core__ropes__RopeCharReverseIterator___pns].l = var13; /* _pns on <self:RopeCharReverseIterator> */
7027 RET_LABEL17:(void)0;
7028 }
7029 }
7030 RET_LABEL:;
7031 }
7032 /* method ropes#RopeCharReverseIterator#index for (self: RopeCharReverseIterator): Int */
7033 long core__ropes___core__ropes__RopeCharReverseIterator___core__abstract_collection__IndexedIterator__index(val* self) {
7034 long var /* : Int */;
7035 long var1 /* : Int */;
7036 long var3 /* : Int */;
7037 {
7038 { /* Inline ropes#RopeCharReverseIterator#pos (self) on <self:RopeCharReverseIterator> */
7039 var3 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___pos].l; /* _pos on <self:RopeCharReverseIterator> */
7040 var1 = var3;
7041 RET_LABEL2:(void)0;
7042 }
7043 }
7044 var = var1;
7045 goto RET_LABEL;
7046 RET_LABEL:;
7047 return var;
7048 }
7049 /* method ropes#RopeCharReverseIterator#is_ok for (self: RopeCharReverseIterator): Bool */
7050 short int core__ropes___core__ropes__RopeCharReverseIterator___core__abstract_collection__Iterator__is_ok(val* self) {
7051 short int var /* : Bool */;
7052 long var1 /* : Int */;
7053 long var3 /* : Int */;
7054 short int var4 /* : Bool */;
7055 short int var6 /* : Bool */;
7056 int cltype;
7057 int idtype;
7058 const char* var_class_name;
7059 short int var7 /* : Bool */;
7060 {
7061 { /* Inline ropes#RopeCharReverseIterator#pos (self) on <self:RopeCharReverseIterator> */
7062 var3 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___pos].l; /* _pos on <self:RopeCharReverseIterator> */
7063 var1 = var3;
7064 RET_LABEL2:(void)0;
7065 }
7066 }
7067 {
7068 { /* Inline kernel#Int#>= (var1,0l) on <var1:Int> */
7069 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
7070 /* <0l:Int> isa OTHER */
7071 var6 = 1; /* easy <0l:Int> isa OTHER*/
7072 if (unlikely(!var6)) {
7073 var_class_name = type_core__Int.name;
7074 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
7075 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
7076 fatal_exit(1);
7077 }
7078 var7 = var1 >= 0l;
7079 var4 = var7;
7080 goto RET_LABEL5;
7081 RET_LABEL5:(void)0;
7082 }
7083 }
7084 var = var4;
7085 goto RET_LABEL;
7086 RET_LABEL:;
7087 return var;
7088 }
7089 /* method ropes#RopeCharReverseIterator#item for (self: RopeCharReverseIterator): Char */
7090 uint32_t core__ropes___core__ropes__RopeCharReverseIterator___core__abstract_collection__Iterator__item(val* self) {
7091 uint32_t var /* : Char */;
7092 val* var1 /* : String */;
7093 val* var3 /* : String */;
7094 long var4 /* : Int */;
7095 long var6 /* : Int */;
7096 uint32_t var7 /* : Char */;
7097 {
7098 { /* Inline ropes#RopeCharReverseIterator#ns (self) on <self:RopeCharReverseIterator> */
7099 var3 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___ns].val; /* _ns on <self:RopeCharReverseIterator> */
7100 if (unlikely(var3 == NULL)) {
7101 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ns");
7102 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 709);
7103 fatal_exit(1);
7104 }
7105 var1 = var3;
7106 RET_LABEL2:(void)0;
7107 }
7108 }
7109 {
7110 { /* Inline ropes#RopeCharReverseIterator#pns (self) on <self:RopeCharReverseIterator> */
7111 var6 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___pns].l; /* _pns on <self:RopeCharReverseIterator> */
7112 var4 = var6;
7113 RET_LABEL5:(void)0;
7114 }
7115 }
7116 {
7117 var7 = ((uint32_t(*)(val* self, long p0))(var1->class->vft[COLOR_core__abstract_text__Text___91d_93d]))(var1, var4); /* [] on <var1:String>*/
7118 }
7119 var = var7;
7120 goto RET_LABEL;
7121 RET_LABEL:;
7122 return var;
7123 }
7124 /* method ropes#RopeCharReverseIterator#item for (self: Iterator[nullable Object]): nullable Object */
7125 val* VIRTUAL_core__ropes___core__ropes__RopeCharReverseIterator___core__abstract_collection__Iterator__item(val* self) {
7126 val* var /* : nullable Object */;
7127 uint32_t var1 /* : Char */;
7128 val* var2 /* : nullable Object */;
7129 var1 = core__ropes___core__ropes__RopeCharReverseIterator___core__abstract_collection__Iterator__item(self);
7130 var2 = (val*)((long)(var1)<<2|2);
7131 var = var2;
7132 RET_LABEL:;
7133 return var;
7134 }
7135 /* method ropes#RopeCharReverseIterator#next for (self: RopeCharReverseIterator) */
7136 void core__ropes___core__ropes__RopeCharReverseIterator___core__abstract_collection__Iterator__next(val* self) {
7137 val* var_ /* var : RopeCharReverseIterator */;
7138 long var /* : Int */;
7139 long var2 /* : Int */;
7140 long var3 /* : Int */;
7141 short int var5 /* : Bool */;
7142 int cltype;
7143 int idtype;
7144 const char* var_class_name;
7145 long var6 /* : Int */;
7146 val* var_8 /* var : RopeCharReverseIterator */;
7147 long var9 /* : Int */;
7148 long var11 /* : Int */;
7149 long var12 /* : Int */;
7150 short int var14 /* : Bool */;
7151 int cltype15;
7152 int idtype16;
7153 const char* var_class_name17;
7154 long var18 /* : Int */;
7155 long var20 /* : Int */;
7156 long var22 /* : Int */;
7157 short int var23 /* : Bool */;
7158 short int var25 /* : Bool */;
7159 int cltype26;
7160 int idtype27;
7161 const char* var_class_name28;
7162 short int var29 /* : Bool */;
7163 val* var30 /* : IndexedIterator[String] */;
7164 val* var32 /* : IndexedIterator[String] */;
7165 short int var33 /* : Bool */;
7166 short int var34 /* : Bool */;
7167 val* var35 /* : IndexedIterator[String] */;
7168 val* var37 /* : IndexedIterator[String] */;
7169 val* var38 /* : IndexedIterator[String] */;
7170 val* var40 /* : IndexedIterator[String] */;
7171 short int var41 /* : Bool */;
7172 short int var42 /* : Bool */;
7173 val* var43 /* : IndexedIterator[String] */;
7174 val* var45 /* : IndexedIterator[String] */;
7175 val* var46 /* : nullable Object */;
7176 val* var48 /* : String */;
7177 val* var50 /* : String */;
7178 long var51 /* : Int */;
7179 long var52 /* : Int */;
7180 short int var54 /* : Bool */;
7181 int cltype55;
7182 int idtype56;
7183 const char* var_class_name57;
7184 long var58 /* : Int */;
7185 var_ = self;
7186 {
7187 { /* Inline ropes#RopeCharReverseIterator#pns (var_) on <var_:RopeCharReverseIterator> */
7188 var2 = var_->attrs[COLOR_core__ropes__RopeCharReverseIterator___pns].l; /* _pns on <var_:RopeCharReverseIterator> */
7189 var = var2;
7190 RET_LABEL1:(void)0;
7191 }
7192 }
7193 {
7194 { /* Inline kernel#Int#- (var,1l) on <var:Int> */
7195 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
7196 /* <1l:Int> isa OTHER */
7197 var5 = 1; /* easy <1l:Int> isa OTHER*/
7198 if (unlikely(!var5)) {
7199 var_class_name = type_core__Int.name;
7200 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
7201 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
7202 fatal_exit(1);
7203 }
7204 var6 = var - 1l;
7205 var3 = var6;
7206 goto RET_LABEL4;
7207 RET_LABEL4:(void)0;
7208 }
7209 }
7210 {
7211 { /* Inline ropes#RopeCharReverseIterator#pns= (var_,var3) on <var_:RopeCharReverseIterator> */
7212 var_->attrs[COLOR_core__ropes__RopeCharReverseIterator___pns].l = var3; /* _pns on <var_:RopeCharReverseIterator> */
7213 RET_LABEL7:(void)0;
7214 }
7215 }
7216 var_8 = self;
7217 {
7218 { /* Inline ropes#RopeCharReverseIterator#pos (var_8) on <var_8:RopeCharReverseIterator> */
7219 var11 = var_8->attrs[COLOR_core__ropes__RopeCharReverseIterator___pos].l; /* _pos on <var_8:RopeCharReverseIterator> */
7220 var9 = var11;
7221 RET_LABEL10:(void)0;
7222 }
7223 }
7224 {
7225 { /* Inline kernel#Int#- (var9,1l) on <var9:Int> */
7226 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
7227 /* <1l:Int> isa OTHER */
7228 var14 = 1; /* easy <1l:Int> isa OTHER*/
7229 if (unlikely(!var14)) {
7230 var_class_name17 = type_core__Int.name;
7231 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
7232 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
7233 fatal_exit(1);
7234 }
7235 var18 = var9 - 1l;
7236 var12 = var18;
7237 goto RET_LABEL13;
7238 RET_LABEL13:(void)0;
7239 }
7240 }
7241 {
7242 { /* Inline ropes#RopeCharReverseIterator#pos= (var_8,var12) on <var_8:RopeCharReverseIterator> */
7243 var_8->attrs[COLOR_core__ropes__RopeCharReverseIterator___pos].l = var12; /* _pos on <var_8:RopeCharReverseIterator> */
7244 RET_LABEL19:(void)0;
7245 }
7246 }
7247 {
7248 { /* Inline ropes#RopeCharReverseIterator#pns (self) on <self:RopeCharReverseIterator> */
7249 var22 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___pns].l; /* _pns on <self:RopeCharReverseIterator> */
7250 var20 = var22;
7251 RET_LABEL21:(void)0;
7252 }
7253 }
7254 {
7255 { /* Inline kernel#Int#>= (var20,0l) on <var20:Int> */
7256 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
7257 /* <0l:Int> isa OTHER */
7258 var25 = 1; /* easy <0l:Int> isa OTHER*/
7259 if (unlikely(!var25)) {
7260 var_class_name28 = type_core__Int.name;
7261 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28);
7262 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
7263 fatal_exit(1);
7264 }
7265 var29 = var20 >= 0l;
7266 var23 = var29;
7267 goto RET_LABEL24;
7268 RET_LABEL24:(void)0;
7269 }
7270 }
7271 if (var23){
7272 goto RET_LABEL;
7273 } else {
7274 }
7275 {
7276 { /* Inline ropes#RopeCharReverseIterator#subs (self) on <self:RopeCharReverseIterator> */
7277 var32 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___subs].val; /* _subs on <self:RopeCharReverseIterator> */
7278 if (unlikely(var32 == NULL)) {
7279 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
7280 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 715);
7281 fatal_exit(1);
7282 }
7283 var30 = var32;
7284 RET_LABEL31:(void)0;
7285 }
7286 }
7287 {
7288 var33 = ((short int(*)(val* self))((((long)var30&3)?class_info[((long)var30&3)]:var30->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var30); /* is_ok on <var30:IndexedIterator[String]>*/
7289 }
7290 var34 = !var33;
7291 if (var34){
7292 goto RET_LABEL;
7293 } else {
7294 }
7295 {
7296 { /* Inline ropes#RopeCharReverseIterator#subs (self) on <self:RopeCharReverseIterator> */
7297 var37 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___subs].val; /* _subs on <self:RopeCharReverseIterator> */
7298 if (unlikely(var37 == NULL)) {
7299 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
7300 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 715);
7301 fatal_exit(1);
7302 }
7303 var35 = var37;
7304 RET_LABEL36:(void)0;
7305 }
7306 }
7307 {
7308 ((void(*)(val* self))((((long)var35&3)?class_info[((long)var35&3)]:var35->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var35); /* next on <var35:IndexedIterator[String]>*/
7309 }
7310 {
7311 { /* Inline ropes#RopeCharReverseIterator#subs (self) on <self:RopeCharReverseIterator> */
7312 var40 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___subs].val; /* _subs on <self:RopeCharReverseIterator> */
7313 if (unlikely(var40 == NULL)) {
7314 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
7315 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 715);
7316 fatal_exit(1);
7317 }
7318 var38 = var40;
7319 RET_LABEL39:(void)0;
7320 }
7321 }
7322 {
7323 var41 = ((short int(*)(val* self))((((long)var38&3)?class_info[((long)var38&3)]:var38->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var38); /* is_ok on <var38:IndexedIterator[String]>*/
7324 }
7325 var42 = !var41;
7326 if (var42){
7327 goto RET_LABEL;
7328 } else {
7329 }
7330 {
7331 { /* Inline ropes#RopeCharReverseIterator#subs (self) on <self:RopeCharReverseIterator> */
7332 var45 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___subs].val; /* _subs on <self:RopeCharReverseIterator> */
7333 if (unlikely(var45 == NULL)) {
7334 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
7335 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 715);
7336 fatal_exit(1);
7337 }
7338 var43 = var45;
7339 RET_LABEL44:(void)0;
7340 }
7341 }
7342 {
7343 var46 = ((val*(*)(val* self))((((long)var43&3)?class_info[((long)var43&3)]:var43->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var43); /* item on <var43:IndexedIterator[String]>*/
7344 }
7345 {
7346 { /* Inline ropes#RopeCharReverseIterator#ns= (self,var46) on <self:RopeCharReverseIterator> */
7347 self->attrs[COLOR_core__ropes__RopeCharReverseIterator___ns].val = var46; /* _ns on <self:RopeCharReverseIterator> */
7348 RET_LABEL47:(void)0;
7349 }
7350 }
7351 {
7352 { /* Inline ropes#RopeCharReverseIterator#ns (self) on <self:RopeCharReverseIterator> */
7353 var50 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___ns].val; /* _ns on <self:RopeCharReverseIterator> */
7354 if (unlikely(var50 == NULL)) {
7355 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ns");
7356 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 709);
7357 fatal_exit(1);
7358 }
7359 var48 = var50;
7360 RET_LABEL49:(void)0;
7361 }
7362 }
7363 {
7364 var51 = ((long(*)(val* self))(var48->class->vft[COLOR_core__abstract_text__Text__length]))(var48); /* length on <var48:String>*/
7365 }
7366 {
7367 { /* Inline kernel#Int#- (var51,1l) on <var51:Int> */
7368 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
7369 /* <1l:Int> isa OTHER */
7370 var54 = 1; /* easy <1l:Int> isa OTHER*/
7371 if (unlikely(!var54)) {
7372 var_class_name57 = type_core__Int.name;
7373 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name57);
7374 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
7375 fatal_exit(1);
7376 }
7377 var58 = var51 - 1l;
7378 var52 = var58;
7379 goto RET_LABEL53;
7380 RET_LABEL53:(void)0;
7381 }
7382 }
7383 {
7384 { /* Inline ropes#RopeCharReverseIterator#pns= (self,var52) on <self:RopeCharReverseIterator> */
7385 self->attrs[COLOR_core__ropes__RopeCharReverseIterator___pns].l = var52; /* _pns on <self:RopeCharReverseIterator> */
7386 RET_LABEL59:(void)0;
7387 }
7388 }
7389 RET_LABEL:;
7390 }
7391 /* method ropes#RopeCharIterator#pns for (self: RopeCharIterator): Int */
7392 long core__ropes___core__ropes__RopeCharIterator___pns(val* self) {
7393 long var /* : Int */;
7394 long var1 /* : Int */;
7395 var1 = self->attrs[COLOR_core__ropes__RopeCharIterator___pns].l; /* _pns on <self:RopeCharIterator> */
7396 var = var1;
7397 RET_LABEL:;
7398 return var;
7399 }
7400 /* method ropes#RopeCharIterator#pns= for (self: RopeCharIterator, Int) */
7401 void core__ropes___core__ropes__RopeCharIterator___pns_61d(val* self, long p0) {
7402 self->attrs[COLOR_core__ropes__RopeCharIterator___pns].l = p0; /* _pns on <self:RopeCharIterator> */
7403 RET_LABEL:;
7404 }
7405 /* method ropes#RopeCharIterator#str for (self: RopeCharIterator): String */
7406 val* core__ropes___core__ropes__RopeCharIterator___str(val* self) {
7407 val* var /* : String */;
7408 val* var1 /* : String */;
7409 var1 = self->attrs[COLOR_core__ropes__RopeCharIterator___str].val; /* _str on <self:RopeCharIterator> */
7410 if (unlikely(var1 == NULL)) {
7411 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
7412 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 750);
7413 fatal_exit(1);
7414 }
7415 var = var1;
7416 RET_LABEL:;
7417 return var;
7418 }
7419 /* method ropes#RopeCharIterator#str= for (self: RopeCharIterator, String) */
7420 void core__ropes___core__ropes__RopeCharIterator___str_61d(val* self, val* p0) {
7421 self->attrs[COLOR_core__ropes__RopeCharIterator___str].val = p0; /* _str on <self:RopeCharIterator> */
7422 RET_LABEL:;
7423 }
7424 /* method ropes#RopeCharIterator#subs for (self: RopeCharIterator): IndexedIterator[String] */
7425 val* core__ropes___core__ropes__RopeCharIterator___subs(val* self) {
7426 val* var /* : IndexedIterator[String] */;
7427 val* var1 /* : IndexedIterator[String] */;
7428 var1 = self->attrs[COLOR_core__ropes__RopeCharIterator___subs].val; /* _subs on <self:RopeCharIterator> */
7429 if (unlikely(var1 == NULL)) {
7430 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
7431 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 752);
7432 fatal_exit(1);
7433 }
7434 var = var1;
7435 RET_LABEL:;
7436 return var;
7437 }
7438 /* method ropes#RopeCharIterator#subs= for (self: RopeCharIterator, IndexedIterator[String]) */
7439 void core__ropes___core__ropes__RopeCharIterator___subs_61d(val* self, val* p0) {
7440 self->attrs[COLOR_core__ropes__RopeCharIterator___subs].val = p0; /* _subs on <self:RopeCharIterator> */
7441 RET_LABEL:;
7442 }
7443 /* method ropes#RopeCharIterator#max for (self: RopeCharIterator): Int */
7444 long core__ropes___core__ropes__RopeCharIterator___max(val* self) {
7445 long var /* : Int */;
7446 long var1 /* : Int */;
7447 var1 = self->attrs[COLOR_core__ropes__RopeCharIterator___max].l; /* _max on <self:RopeCharIterator> */
7448 var = var1;
7449 RET_LABEL:;
7450 return var;
7451 }
7452 /* method ropes#RopeCharIterator#max= for (self: RopeCharIterator, Int) */
7453 void core__ropes___core__ropes__RopeCharIterator___max_61d(val* self, long p0) {
7454 self->attrs[COLOR_core__ropes__RopeCharIterator___max].l = p0; /* _max on <self:RopeCharIterator> */
7455 RET_LABEL:;
7456 }
7457 /* method ropes#RopeCharIterator#pos for (self: RopeCharIterator): Int */
7458 long core__ropes___core__ropes__RopeCharIterator___pos(val* self) {
7459 long var /* : Int */;
7460 long var1 /* : Int */;
7461 var1 = self->attrs[COLOR_core__ropes__RopeCharIterator___pos].l; /* _pos on <self:RopeCharIterator> */
7462 var = var1;
7463 RET_LABEL:;
7464 return var;
7465 }
7466 /* method ropes#RopeCharIterator#pos= for (self: RopeCharIterator, Int) */
7467 void core__ropes___core__ropes__RopeCharIterator___pos_61d(val* self, long p0) {
7468 self->attrs[COLOR_core__ropes__RopeCharIterator___pos].l = p0; /* _pos on <self:RopeCharIterator> */
7469 RET_LABEL:;
7470 }
7471 /* method ropes#RopeCharIterator#from for (self: RopeCharIterator, Concat, Int) */
7472 void core__ropes___core__ropes__RopeCharIterator___from(val* self, val* p0, long p1) {
7473 val* var_root /* var root: Concat */;
7474 long var_pos /* var pos: Int */;
7475 val* var /* : RopeSubstrings */;
7476 val* var3 /* : IndexedIterator[String] */;
7477 val* var5 /* : IndexedIterator[String] */;
7478 long var6 /* : Int */;
7479 long var7 /* : Int */;
7480 short int var9 /* : Bool */;
7481 int cltype;
7482 int idtype;
7483 const char* var_class_name;
7484 long var10 /* : Int */;
7485 val* var13 /* : IndexedIterator[String] */;
7486 val* var15 /* : IndexedIterator[String] */;
7487 val* var16 /* : nullable Object */;
7488 long var18 /* : Int */;
7489 long var20 /* : Int */;
7490 long var21 /* : Int */;
7491 short int var23 /* : Bool */;
7492 int cltype24;
7493 int idtype25;
7494 const char* var_class_name26;
7495 long var27 /* : Int */;
7496 {
7497 { /* Inline kernel#Object#init (self) on <self:RopeCharIterator> */
7498 RET_LABEL1:(void)0;
7499 }
7500 }
7501 var_root = p0;
7502 var_pos = p1;
7503 var = NEW_core__ropes__RopeSubstrings(&type_core__ropes__RopeSubstrings);
7504 {
7505 core__ropes___core__ropes__RopeSubstrings___from(var, var_root, var_pos); /* Direct call ropes#RopeSubstrings#from on <var:RopeSubstrings>*/
7506 }
7507 {
7508 { /* Inline ropes#RopeCharIterator#subs= (self,var) on <self:RopeCharIterator> */
7509 self->attrs[COLOR_core__ropes__RopeCharIterator___subs].val = var; /* _subs on <self:RopeCharIterator> */
7510 RET_LABEL2:(void)0;
7511 }
7512 }
7513 {
7514 { /* Inline ropes#RopeCharIterator#subs (self) on <self:RopeCharIterator> */
7515 var5 = self->attrs[COLOR_core__ropes__RopeCharIterator___subs].val; /* _subs on <self:RopeCharIterator> */
7516 if (unlikely(var5 == NULL)) {
7517 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
7518 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 752);
7519 fatal_exit(1);
7520 }
7521 var3 = var5;
7522 RET_LABEL4:(void)0;
7523 }
7524 }
7525 {
7526 var6 = ((long(*)(val* self))((((long)var3&3)?class_info[((long)var3&3)]:var3->class)->vft[COLOR_core__abstract_collection__IndexedIterator__index]))(var3); /* index on <var3:IndexedIterator[String]>*/
7527 }
7528 {
7529 { /* Inline kernel#Int#- (var_pos,var6) on <var_pos:Int> */
7530 /* Covariant cast for argument 0 (i) <var6:Int> isa OTHER */
7531 /* <var6:Int> isa OTHER */
7532 var9 = 1; /* easy <var6:Int> isa OTHER*/
7533 if (unlikely(!var9)) {
7534 var_class_name = type_core__Int.name;
7535 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
7536 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
7537 fatal_exit(1);
7538 }
7539 var10 = var_pos - var6;
7540 var7 = var10;
7541 goto RET_LABEL8;
7542 RET_LABEL8:(void)0;
7543 }
7544 }
7545 {
7546 { /* Inline ropes#RopeCharIterator#pns= (self,var7) on <self:RopeCharIterator> */
7547 self->attrs[COLOR_core__ropes__RopeCharIterator___pns].l = var7; /* _pns on <self:RopeCharIterator> */
7548 RET_LABEL11:(void)0;
7549 }
7550 }
7551 {
7552 { /* Inline ropes#RopeCharIterator#pos= (self,var_pos) on <self:RopeCharIterator> */
7553 self->attrs[COLOR_core__ropes__RopeCharIterator___pos].l = var_pos; /* _pos on <self:RopeCharIterator> */
7554 RET_LABEL12:(void)0;
7555 }
7556 }
7557 {
7558 { /* Inline ropes#RopeCharIterator#subs (self) on <self:RopeCharIterator> */
7559 var15 = self->attrs[COLOR_core__ropes__RopeCharIterator___subs].val; /* _subs on <self:RopeCharIterator> */
7560 if (unlikely(var15 == NULL)) {
7561 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
7562 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 752);
7563 fatal_exit(1);
7564 }
7565 var13 = var15;
7566 RET_LABEL14:(void)0;
7567 }
7568 }
7569 {
7570 var16 = ((val*(*)(val* self))((((long)var13&3)?class_info[((long)var13&3)]:var13->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var13); /* item on <var13:IndexedIterator[String]>*/
7571 }
7572 {
7573 { /* Inline ropes#RopeCharIterator#str= (self,var16) on <self:RopeCharIterator> */
7574 self->attrs[COLOR_core__ropes__RopeCharIterator___str].val = var16; /* _str on <self:RopeCharIterator> */
7575 RET_LABEL17:(void)0;
7576 }
7577 }
7578 {
7579 { /* Inline ropes#Concat#length (var_root) on <var_root:Concat> */
7580 var20 = var_root->attrs[COLOR_core__ropes__Concat___length].l; /* _length on <var_root:Concat> */
7581 var18 = var20;
7582 RET_LABEL19:(void)0;
7583 }
7584 }
7585 {
7586 { /* Inline kernel#Int#- (var18,1l) on <var18:Int> */
7587 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
7588 /* <1l:Int> isa OTHER */
7589 var23 = 1; /* easy <1l:Int> isa OTHER*/
7590 if (unlikely(!var23)) {
7591 var_class_name26 = type_core__Int.name;
7592 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name26);
7593 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
7594 fatal_exit(1);
7595 }
7596 var27 = var18 - 1l;
7597 var21 = var27;
7598 goto RET_LABEL22;
7599 RET_LABEL22:(void)0;
7600 }
7601 }
7602 {
7603 { /* Inline ropes#RopeCharIterator#max= (self,var21) on <self:RopeCharIterator> */
7604 self->attrs[COLOR_core__ropes__RopeCharIterator___max].l = var21; /* _max on <self:RopeCharIterator> */
7605 RET_LABEL28:(void)0;
7606 }
7607 }
7608 RET_LABEL:;
7609 }
7610 /* method ropes#RopeCharIterator#item for (self: RopeCharIterator): Char */
7611 uint32_t core__ropes___core__ropes__RopeCharIterator___core__abstract_collection__Iterator__item(val* self) {
7612 uint32_t var /* : Char */;
7613 val* var1 /* : String */;
7614 val* var3 /* : String */;
7615 long var4 /* : Int */;
7616 long var6 /* : Int */;
7617 uint32_t var7 /* : Char */;
7618 {
7619 { /* Inline ropes#RopeCharIterator#str (self) on <self:RopeCharIterator> */
7620 var3 = self->attrs[COLOR_core__ropes__RopeCharIterator___str].val; /* _str on <self:RopeCharIterator> */
7621 if (unlikely(var3 == NULL)) {
7622 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
7623 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 750);
7624 fatal_exit(1);
7625 }
7626 var1 = var3;
7627 RET_LABEL2:(void)0;
7628 }
7629 }
7630 {
7631 { /* Inline ropes#RopeCharIterator#pns (self) on <self:RopeCharIterator> */
7632 var6 = self->attrs[COLOR_core__ropes__RopeCharIterator___pns].l; /* _pns on <self:RopeCharIterator> */
7633 var4 = var6;
7634 RET_LABEL5:(void)0;
7635 }
7636 }
7637 {
7638 var7 = ((uint32_t(*)(val* self, long p0))(var1->class->vft[COLOR_core__abstract_text__Text___91d_93d]))(var1, var4); /* [] on <var1:String>*/
7639 }
7640 var = var7;
7641 goto RET_LABEL;
7642 RET_LABEL:;
7643 return var;
7644 }
7645 /* method ropes#RopeCharIterator#item for (self: Iterator[nullable Object]): nullable Object */
7646 val* VIRTUAL_core__ropes___core__ropes__RopeCharIterator___core__abstract_collection__Iterator__item(val* self) {
7647 val* var /* : nullable Object */;
7648 uint32_t var1 /* : Char */;
7649 val* var2 /* : nullable Object */;
7650 var1 = core__ropes___core__ropes__RopeCharIterator___core__abstract_collection__Iterator__item(self);
7651 var2 = (val*)((long)(var1)<<2|2);
7652 var = var2;
7653 RET_LABEL:;
7654 return var;
7655 }
7656 /* method ropes#RopeCharIterator#is_ok for (self: RopeCharIterator): Bool */
7657 short int core__ropes___core__ropes__RopeCharIterator___core__abstract_collection__Iterator__is_ok(val* self) {
7658 short int var /* : Bool */;
7659 long var1 /* : Int */;
7660 long var3 /* : Int */;
7661 long var4 /* : Int */;
7662 long var6 /* : Int */;
7663 short int var7 /* : Bool */;
7664 short int var9 /* : Bool */;
7665 int cltype;
7666 int idtype;
7667 const char* var_class_name;
7668 short int var10 /* : Bool */;
7669 {
7670 { /* Inline ropes#RopeCharIterator#pos (self) on <self:RopeCharIterator> */
7671 var3 = self->attrs[COLOR_core__ropes__RopeCharIterator___pos].l; /* _pos on <self:RopeCharIterator> */
7672 var1 = var3;
7673 RET_LABEL2:(void)0;
7674 }
7675 }
7676 {
7677 { /* Inline ropes#RopeCharIterator#max (self) on <self:RopeCharIterator> */
7678 var6 = self->attrs[COLOR_core__ropes__RopeCharIterator___max].l; /* _max on <self:RopeCharIterator> */
7679 var4 = var6;
7680 RET_LABEL5:(void)0;
7681 }
7682 }
7683 {
7684 { /* Inline kernel#Int#<= (var1,var4) on <var1:Int> */
7685 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
7686 /* <var4:Int> isa OTHER */
7687 var9 = 1; /* easy <var4:Int> isa OTHER*/
7688 if (unlikely(!var9)) {
7689 var_class_name = type_core__Int.name;
7690 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
7691 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
7692 fatal_exit(1);
7693 }
7694 var10 = var1 <= var4;
7695 var7 = var10;
7696 goto RET_LABEL8;
7697 RET_LABEL8:(void)0;
7698 }
7699 }
7700 var = var7;
7701 goto RET_LABEL;
7702 RET_LABEL:;
7703 return var;
7704 }
7705 /* method ropes#RopeCharIterator#index for (self: RopeCharIterator): Int */
7706 long core__ropes___core__ropes__RopeCharIterator___core__abstract_collection__IndexedIterator__index(val* self) {
7707 long var /* : Int */;
7708 long var1 /* : Int */;
7709 long var3 /* : Int */;
7710 {
7711 { /* Inline ropes#RopeCharIterator#pos (self) on <self:RopeCharIterator> */
7712 var3 = self->attrs[COLOR_core__ropes__RopeCharIterator___pos].l; /* _pos on <self:RopeCharIterator> */
7713 var1 = var3;
7714 RET_LABEL2:(void)0;
7715 }
7716 }
7717 var = var1;
7718 goto RET_LABEL;
7719 RET_LABEL:;
7720 return var;
7721 }
7722 /* method ropes#RopeCharIterator#next for (self: RopeCharIterator) */
7723 void core__ropes___core__ropes__RopeCharIterator___core__abstract_collection__Iterator__next(val* self) {
7724 val* var_ /* var : RopeCharIterator */;
7725 long var /* : Int */;
7726 long var2 /* : Int */;
7727 long var3 /* : Int */;
7728 short int var5 /* : Bool */;
7729 int cltype;
7730 int idtype;
7731 const char* var_class_name;
7732 long var6 /* : Int */;
7733 val* var_8 /* var : RopeCharIterator */;
7734 long var9 /* : Int */;
7735 long var11 /* : Int */;
7736 long var12 /* : Int */;
7737 short int var14 /* : Bool */;
7738 int cltype15;
7739 int idtype16;
7740 const char* var_class_name17;
7741 long var18 /* : Int */;
7742 long var20 /* : Int */;
7743 long var22 /* : Int */;
7744 val* var23 /* : IndexedIterator[String] */;
7745 val* var25 /* : IndexedIterator[String] */;
7746 val* var26 /* : nullable Object */;
7747 long var27 /* : Int */;
7748 short int var28 /* : Bool */;
7749 short int var30 /* : Bool */;
7750 int cltype31;
7751 int idtype32;
7752 const char* var_class_name33;
7753 short int var34 /* : Bool */;
7754 val* var35 /* : IndexedIterator[String] */;
7755 val* var37 /* : IndexedIterator[String] */;
7756 short int var38 /* : Bool */;
7757 short int var39 /* : Bool */;
7758 val* var40 /* : IndexedIterator[String] */;
7759 val* var42 /* : IndexedIterator[String] */;
7760 val* var43 /* : IndexedIterator[String] */;
7761 val* var45 /* : IndexedIterator[String] */;
7762 short int var46 /* : Bool */;
7763 short int var47 /* : Bool */;
7764 val* var48 /* : IndexedIterator[String] */;
7765 val* var50 /* : IndexedIterator[String] */;
7766 val* var51 /* : nullable Object */;
7767 var_ = self;
7768 {
7769 { /* Inline ropes#RopeCharIterator#pns (var_) on <var_:RopeCharIterator> */
7770 var2 = var_->attrs[COLOR_core__ropes__RopeCharIterator___pns].l; /* _pns on <var_:RopeCharIterator> */
7771 var = var2;
7772 RET_LABEL1:(void)0;
7773 }
7774 }
7775 {
7776 { /* Inline kernel#Int#+ (var,1l) on <var:Int> */
7777 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
7778 /* <1l:Int> isa OTHER */
7779 var5 = 1; /* easy <1l:Int> isa OTHER*/
7780 if (unlikely(!var5)) {
7781 var_class_name = type_core__Int.name;
7782 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
7783 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
7784 fatal_exit(1);
7785 }
7786 var6 = var + 1l;
7787 var3 = var6;
7788 goto RET_LABEL4;
7789 RET_LABEL4:(void)0;
7790 }
7791 }
7792 {
7793 { /* Inline ropes#RopeCharIterator#pns= (var_,var3) on <var_:RopeCharIterator> */
7794 var_->attrs[COLOR_core__ropes__RopeCharIterator___pns].l = var3; /* _pns on <var_:RopeCharIterator> */
7795 RET_LABEL7:(void)0;
7796 }
7797 }
7798 var_8 = self;
7799 {
7800 { /* Inline ropes#RopeCharIterator#pos (var_8) on <var_8:RopeCharIterator> */
7801 var11 = var_8->attrs[COLOR_core__ropes__RopeCharIterator___pos].l; /* _pos on <var_8:RopeCharIterator> */
7802 var9 = var11;
7803 RET_LABEL10:(void)0;
7804 }
7805 }
7806 {
7807 { /* Inline kernel#Int#+ (var9,1l) on <var9:Int> */
7808 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
7809 /* <1l:Int> isa OTHER */
7810 var14 = 1; /* easy <1l:Int> isa OTHER*/
7811 if (unlikely(!var14)) {
7812 var_class_name17 = type_core__Int.name;
7813 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
7814 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
7815 fatal_exit(1);
7816 }
7817 var18 = var9 + 1l;
7818 var12 = var18;
7819 goto RET_LABEL13;
7820 RET_LABEL13:(void)0;
7821 }
7822 }
7823 {
7824 { /* Inline ropes#RopeCharIterator#pos= (var_8,var12) on <var_8:RopeCharIterator> */
7825 var_8->attrs[COLOR_core__ropes__RopeCharIterator___pos].l = var12; /* _pos on <var_8:RopeCharIterator> */
7826 RET_LABEL19:(void)0;
7827 }
7828 }
7829 {
7830 { /* Inline ropes#RopeCharIterator#pns (self) on <self:RopeCharIterator> */
7831 var22 = self->attrs[COLOR_core__ropes__RopeCharIterator___pns].l; /* _pns on <self:RopeCharIterator> */
7832 var20 = var22;
7833 RET_LABEL21:(void)0;
7834 }
7835 }
7836 {
7837 { /* Inline ropes#RopeCharIterator#subs (self) on <self:RopeCharIterator> */
7838 var25 = self->attrs[COLOR_core__ropes__RopeCharIterator___subs].val; /* _subs on <self:RopeCharIterator> */
7839 if (unlikely(var25 == NULL)) {
7840 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
7841 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 752);
7842 fatal_exit(1);
7843 }
7844 var23 = var25;
7845 RET_LABEL24:(void)0;
7846 }
7847 }
7848 {
7849 var26 = ((val*(*)(val* self))((((long)var23&3)?class_info[((long)var23&3)]:var23->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var23); /* item on <var23:IndexedIterator[String]>*/
7850 }
7851 {
7852 var27 = ((long(*)(val* self))(var26->class->vft[COLOR_core__abstract_text__Text__length]))(var26); /* length on <var26:nullable Object(String)>*/
7853 }
7854 {
7855 { /* Inline kernel#Int#< (var20,var27) on <var20:Int> */
7856 /* Covariant cast for argument 0 (i) <var27:Int> isa OTHER */
7857 /* <var27:Int> isa OTHER */
7858 var30 = 1; /* easy <var27:Int> isa OTHER*/
7859 if (unlikely(!var30)) {
7860 var_class_name33 = type_core__Int.name;
7861 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33);
7862 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
7863 fatal_exit(1);
7864 }
7865 var34 = var20 < var27;
7866 var28 = var34;
7867 goto RET_LABEL29;
7868 RET_LABEL29:(void)0;
7869 }
7870 }
7871 if (var28){
7872 goto RET_LABEL;
7873 } else {
7874 }
7875 {
7876 { /* Inline ropes#RopeCharIterator#subs (self) on <self:RopeCharIterator> */
7877 var37 = self->attrs[COLOR_core__ropes__RopeCharIterator___subs].val; /* _subs on <self:RopeCharIterator> */
7878 if (unlikely(var37 == NULL)) {
7879 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
7880 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 752);
7881 fatal_exit(1);
7882 }
7883 var35 = var37;
7884 RET_LABEL36:(void)0;
7885 }
7886 }
7887 {
7888 var38 = ((short int(*)(val* self))((((long)var35&3)?class_info[((long)var35&3)]:var35->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var35); /* is_ok on <var35:IndexedIterator[String]>*/
7889 }
7890 var39 = !var38;
7891 if (var39){
7892 goto RET_LABEL;
7893 } else {
7894 }
7895 {
7896 { /* Inline ropes#RopeCharIterator#subs (self) on <self:RopeCharIterator> */
7897 var42 = self->attrs[COLOR_core__ropes__RopeCharIterator___subs].val; /* _subs on <self:RopeCharIterator> */
7898 if (unlikely(var42 == NULL)) {
7899 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
7900 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 752);
7901 fatal_exit(1);
7902 }
7903 var40 = var42;
7904 RET_LABEL41:(void)0;
7905 }
7906 }
7907 {
7908 ((void(*)(val* self))((((long)var40&3)?class_info[((long)var40&3)]:var40->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var40); /* next on <var40:IndexedIterator[String]>*/
7909 }
7910 {
7911 { /* Inline ropes#RopeCharIterator#subs (self) on <self:RopeCharIterator> */
7912 var45 = self->attrs[COLOR_core__ropes__RopeCharIterator___subs].val; /* _subs on <self:RopeCharIterator> */
7913 if (unlikely(var45 == NULL)) {
7914 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
7915 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 752);
7916 fatal_exit(1);
7917 }
7918 var43 = var45;
7919 RET_LABEL44:(void)0;
7920 }
7921 }
7922 {
7923 var46 = ((short int(*)(val* self))((((long)var43&3)?class_info[((long)var43&3)]:var43->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var43); /* is_ok on <var43:IndexedIterator[String]>*/
7924 }
7925 var47 = !var46;
7926 if (var47){
7927 goto RET_LABEL;
7928 } else {
7929 }
7930 {
7931 { /* Inline ropes#RopeCharIterator#subs (self) on <self:RopeCharIterator> */
7932 var50 = self->attrs[COLOR_core__ropes__RopeCharIterator___subs].val; /* _subs on <self:RopeCharIterator> */
7933 if (unlikely(var50 == NULL)) {
7934 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
7935 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 752);
7936 fatal_exit(1);
7937 }
7938 var48 = var50;
7939 RET_LABEL49:(void)0;
7940 }
7941 }
7942 {
7943 var51 = ((val*(*)(val* self))((((long)var48&3)?class_info[((long)var48&3)]:var48->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var48); /* item on <var48:IndexedIterator[String]>*/
7944 }
7945 {
7946 { /* Inline ropes#RopeCharIterator#str= (self,var51) on <self:RopeCharIterator> */
7947 self->attrs[COLOR_core__ropes__RopeCharIterator___str].val = var51; /* _str on <self:RopeCharIterator> */
7948 RET_LABEL52:(void)0;
7949 }
7950 }
7951 {
7952 { /* Inline ropes#RopeCharIterator#pns= (self,0l) on <self:RopeCharIterator> */
7953 self->attrs[COLOR_core__ropes__RopeCharIterator___pns].l = 0l; /* _pns on <self:RopeCharIterator> */
7954 RET_LABEL53:(void)0;
7955 }
7956 }
7957 RET_LABEL:;
7958 }
7959 /* method ropes#ReverseRopeSubstrings#iter for (self: ReverseRopeSubstrings): RopeCharIteratorPiece */
7960 val* core__ropes___core__ropes__ReverseRopeSubstrings___iter(val* self) {
7961 val* var /* : RopeCharIteratorPiece */;
7962 val* var1 /* : RopeCharIteratorPiece */;
7963 var1 = self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___iter].val; /* _iter on <self:ReverseRopeSubstrings> */
7964 if (unlikely(var1 == NULL)) {
7965 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
7966 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 789);
7967 fatal_exit(1);
7968 }
7969 var = var1;
7970 RET_LABEL:;
7971 return var;
7972 }
7973 /* method ropes#ReverseRopeSubstrings#iter= for (self: ReverseRopeSubstrings, RopeCharIteratorPiece) */
7974 void core__ropes___core__ropes__ReverseRopeSubstrings___iter_61d(val* self, val* p0) {
7975 self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___iter].val = p0; /* _iter on <self:ReverseRopeSubstrings> */
7976 RET_LABEL:;
7977 }
7978 /* method ropes#ReverseRopeSubstrings#pos for (self: ReverseRopeSubstrings): Int */
7979 long core__ropes___core__ropes__ReverseRopeSubstrings___pos(val* self) {
7980 long var /* : Int */;
7981 long var1 /* : Int */;
7982 var1 = self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___pos].l; /* _pos on <self:ReverseRopeSubstrings> */
7983 var = var1;
7984 RET_LABEL:;
7985 return var;
7986 }
7987 /* method ropes#ReverseRopeSubstrings#pos= for (self: ReverseRopeSubstrings, Int) */
7988 void core__ropes___core__ropes__ReverseRopeSubstrings___pos_61d(val* self, long p0) {
7989 self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___pos].l = p0; /* _pos on <self:ReverseRopeSubstrings> */
7990 RET_LABEL:;
7991 }
7992 /* method ropes#ReverseRopeSubstrings#str for (self: ReverseRopeSubstrings): FlatString */
7993 val* core__ropes___core__ropes__ReverseRopeSubstrings___str(val* self) {
7994 val* var /* : FlatString */;
7995 val* var1 /* : FlatString */;
7996 var1 = self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___str].val; /* _str on <self:ReverseRopeSubstrings> */
7997 if (unlikely(var1 == NULL)) {
7998 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
7999 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 794);
8000 fatal_exit(1);
8001 }
8002 var = var1;
8003 RET_LABEL:;
8004 return var;
8005 }
8006 /* method ropes#ReverseRopeSubstrings#str= for (self: ReverseRopeSubstrings, FlatString) */
8007 void core__ropes___core__ropes__ReverseRopeSubstrings___str_61d(val* self, val* p0) {
8008 self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___str].val = p0; /* _str on <self:ReverseRopeSubstrings> */
8009 RET_LABEL:;
8010 }
8011 /* method ropes#ReverseRopeSubstrings#from for (self: ReverseRopeSubstrings, Concat, Int) */
8012 void core__ropes___core__ropes__ReverseRopeSubstrings___from(val* self, val* p0, long p1) {
8013 val* var_root /* var root: Concat */;
8014 long var_pos /* var pos: Int */;
8015 val* var /* : RopeCharIteratorPiece */;
8016 val* var_r /* var r: RopeCharIteratorPiece */;
8017 val* var_rnod /* var rnod: String */;
8018 long var_off /* var off: Int */;
8019 short int var2 /* : Bool */;
8020 int cltype;
8021 int idtype;
8022 val* var3 /* : String */;
8023 long var4 /* : Int */;
8024 short int var5 /* : Bool */;
8025 short int var7 /* : Bool */;
8026 int cltype8;
8027 int idtype9;
8028 const char* var_class_name;
8029 short int var10 /* : Bool */;
8030 val* var11 /* : String */;
8031 long var12 /* : Int */;
8032 long var13 /* : Int */;
8033 short int var15 /* : Bool */;
8034 int cltype16;
8035 int idtype17;
8036 const char* var_class_name18;
8037 long var19 /* : Int */;
8038 val* var20 /* : String */;
8039 val* var21 /* : RopeCharIteratorPiece */;
8040 val* var23 /* : String */;
8041 val* var24 /* : RopeCharIteratorPiece */;
8042 short int var25 /* : Bool */;
8043 int cltype26;
8044 int idtype27;
8045 const char* var_class_name28;
8046 long var32 /* : Int */;
8047 short int var34 /* : Bool */;
8048 int cltype35;
8049 int idtype36;
8050 const char* var_class_name37;
8051 long var38 /* : Int */;
8052 {
8053 { /* Inline kernel#Object#init (self) on <self:ReverseRopeSubstrings> */
8054 RET_LABEL1:(void)0;
8055 }
8056 }
8057 var_root = p0;
8058 var_pos = p1;
8059 var = NEW_core__ropes__RopeCharIteratorPiece(&type_core__ropes__RopeCharIteratorPiece);
8060 {
8061 ((void(*)(val* self, val* p0))(var->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__node_61d]))(var, var_root); /* node= on <var:RopeCharIteratorPiece>*/
8062 }
8063 {
8064 ((void(*)(val* self, short int p0))(var->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__ldone_61d]))(var, 0); /* ldone= on <var:RopeCharIteratorPiece>*/
8065 }
8066 {
8067 ((void(*)(val* self, short int p0))(var->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__rdone_61d]))(var, 1); /* rdone= on <var:RopeCharIteratorPiece>*/
8068 }
8069 {
8070 ((void(*)(val* self, val* p0))(var->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__prev_61d]))(var, ((val*)NULL)); /* prev= on <var:RopeCharIteratorPiece>*/
8071 }
8072 {
8073 ((void(*)(val* self))(var->class->vft[COLOR_core__kernel__Object__init]))(var); /* init on <var:RopeCharIteratorPiece>*/
8074 }
8075 var_r = var;
8076 var_rnod = var_root;
8077 var_off = var_pos;
8078 for(;;) {
8079 /* <var_rnod:String> isa Concat */
8080 cltype = type_core__ropes__Concat.color;
8081 idtype = type_core__ropes__Concat.id;
8082 if(cltype >= var_rnod->type->table_size) {
8083 var2 = 0;
8084 } else {
8085 var2 = var_rnod->type->type_table[cltype] == idtype;
8086 }
8087 if (var2){
8088 var3 = var_rnod->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <var_rnod:String(Concat)> */
8089 if (unlikely(var3 == NULL)) {
8090 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
8091 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 803);
8092 fatal_exit(1);
8093 }
8094 {
8095 var4 = ((long(*)(val* self))(var3->class->vft[COLOR_core__abstract_text__Text__length]))(var3); /* length on <var3:String>*/
8096 }
8097 {
8098 { /* Inline kernel#Int#>= (var_off,var4) on <var_off:Int> */
8099 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
8100 /* <var4:Int> isa OTHER */
8101 var7 = 1; /* easy <var4:Int> isa OTHER*/
8102 if (unlikely(!var7)) {
8103 var_class_name = type_core__Int.name;
8104 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
8105 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
8106 fatal_exit(1);
8107 }
8108 var10 = var_off >= var4;
8109 var5 = var10;
8110 goto RET_LABEL6;
8111 RET_LABEL6:(void)0;
8112 }
8113 }
8114 if (var5){
8115 var11 = var_rnod->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <var_rnod:String(Concat)> */
8116 if (unlikely(var11 == NULL)) {
8117 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
8118 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 804);
8119 fatal_exit(1);
8120 }
8121 {
8122 var12 = ((long(*)(val* self))(var11->class->vft[COLOR_core__abstract_text__Text__length]))(var11); /* length on <var11:String>*/
8123 }
8124 {
8125 { /* Inline kernel#Int#- (var_off,var12) on <var_off:Int> */
8126 /* Covariant cast for argument 0 (i) <var12:Int> isa OTHER */
8127 /* <var12:Int> isa OTHER */
8128 var15 = 1; /* easy <var12:Int> isa OTHER*/
8129 if (unlikely(!var15)) {
8130 var_class_name18 = type_core__Int.name;
8131 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18);
8132 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
8133 fatal_exit(1);
8134 }
8135 var19 = var_off - var12;
8136 var13 = var19;
8137 goto RET_LABEL14;
8138 RET_LABEL14:(void)0;
8139 }
8140 }
8141 var_off = var13;
8142 var20 = var_rnod->attrs[COLOR_core__ropes__Concat___right].val; /* _right on <var_rnod:String(Concat)> */
8143 if (unlikely(var20 == NULL)) {
8144 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
8145 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 805);
8146 fatal_exit(1);
8147 }
8148 var_rnod = var20;
8149 var21 = NEW_core__ropes__RopeCharIteratorPiece(&type_core__ropes__RopeCharIteratorPiece);
8150 {
8151 ((void(*)(val* self, val* p0))(var21->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__node_61d]))(var21, var_rnod); /* node= on <var21:RopeCharIteratorPiece>*/
8152 }
8153 {
8154 ((void(*)(val* self, short int p0))(var21->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__ldone_61d]))(var21, 0); /* ldone= on <var21:RopeCharIteratorPiece>*/
8155 }
8156 {
8157 ((void(*)(val* self, short int p0))(var21->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__rdone_61d]))(var21, 1); /* rdone= on <var21:RopeCharIteratorPiece>*/
8158 }
8159 {
8160 ((void(*)(val* self, val* p0))(var21->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__prev_61d]))(var21, var_r); /* prev= on <var21:RopeCharIteratorPiece>*/
8161 }
8162 {
8163 ((void(*)(val* self))(var21->class->vft[COLOR_core__kernel__Object__init]))(var21); /* init on <var21:RopeCharIteratorPiece>*/
8164 }
8165 var_r = var21;
8166 } else {
8167 {
8168 { /* Inline ropes#RopeCharIteratorPiece#ldone= (var_r,1) on <var_r:RopeCharIteratorPiece> */
8169 var_r->attrs[COLOR_core__ropes__RopeCharIteratorPiece___ldone].s = 1; /* _ldone on <var_r:RopeCharIteratorPiece> */
8170 RET_LABEL22:(void)0;
8171 }
8172 }
8173 var23 = var_rnod->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <var_rnod:String(Concat)> */
8174 if (unlikely(var23 == NULL)) {
8175 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
8176 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 809);
8177 fatal_exit(1);
8178 }
8179 var_rnod = var23;
8180 var24 = NEW_core__ropes__RopeCharIteratorPiece(&type_core__ropes__RopeCharIteratorPiece);
8181 {
8182 ((void(*)(val* self, val* p0))(var24->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__node_61d]))(var24, var_rnod); /* node= on <var24:RopeCharIteratorPiece>*/
8183 }
8184 {
8185 ((void(*)(val* self, short int p0))(var24->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__ldone_61d]))(var24, 0); /* ldone= on <var24:RopeCharIteratorPiece>*/
8186 }
8187 {
8188 ((void(*)(val* self, short int p0))(var24->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__rdone_61d]))(var24, 1); /* rdone= on <var24:RopeCharIteratorPiece>*/
8189 }
8190 {
8191 ((void(*)(val* self, val* p0))(var24->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__prev_61d]))(var24, var_r); /* prev= on <var24:RopeCharIteratorPiece>*/
8192 }
8193 {
8194 ((void(*)(val* self))(var24->class->vft[COLOR_core__kernel__Object__init]))(var24); /* init on <var24:RopeCharIteratorPiece>*/
8195 }
8196 var_r = var24;
8197 }
8198 } else {
8199 /* <var_rnod:String> isa FlatString */
8200 cltype26 = type_core__FlatString.color;
8201 idtype27 = type_core__FlatString.id;
8202 if(cltype26 >= var_rnod->type->table_size) {
8203 var25 = 0;
8204 } else {
8205 var25 = var_rnod->type->type_table[cltype26] == idtype27;
8206 }
8207 if (unlikely(!var25)) {
8208 var_class_name28 = var_rnod == NULL ? "null" : var_rnod->type->name;
8209 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "FlatString", var_class_name28);
8210 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 813);
8211 fatal_exit(1);
8212 }
8213 {
8214 { /* Inline ropes#ReverseRopeSubstrings#str= (self,var_rnod) on <self:ReverseRopeSubstrings> */
8215 self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___str].val = var_rnod; /* _str on <self:ReverseRopeSubstrings> */
8216 RET_LABEL29:(void)0;
8217 }
8218 }
8219 {
8220 { /* Inline ropes#RopeCharIteratorPiece#ldone= (var_r,1) on <var_r:RopeCharIteratorPiece> */
8221 var_r->attrs[COLOR_core__ropes__RopeCharIteratorPiece___ldone].s = 1; /* _ldone on <var_r:RopeCharIteratorPiece> */
8222 RET_LABEL30:(void)0;
8223 }
8224 }
8225 {
8226 { /* Inline ropes#ReverseRopeSubstrings#iter= (self,var_r) on <self:ReverseRopeSubstrings> */
8227 self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___iter].val = var_r; /* _iter on <self:ReverseRopeSubstrings> */
8228 RET_LABEL31:(void)0;
8229 }
8230 }
8231 {
8232 { /* Inline kernel#Int#- (var_pos,var_off) on <var_pos:Int> */
8233 /* Covariant cast for argument 0 (i) <var_off:Int> isa OTHER */
8234 /* <var_off:Int> isa OTHER */
8235 var34 = 1; /* easy <var_off:Int> isa OTHER*/
8236 if (unlikely(!var34)) {
8237 var_class_name37 = type_core__Int.name;
8238 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37);
8239 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
8240 fatal_exit(1);
8241 }
8242 var38 = var_pos - var_off;
8243 var32 = var38;
8244 goto RET_LABEL33;
8245 RET_LABEL33:(void)0;
8246 }
8247 }
8248 {
8249 { /* Inline ropes#ReverseRopeSubstrings#pos= (self,var32) on <self:ReverseRopeSubstrings> */
8250 self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___pos].l = var32; /* _pos on <self:ReverseRopeSubstrings> */
8251 RET_LABEL39:(void)0;
8252 }
8253 }
8254 goto BREAK_label;
8255 }
8256 }
8257 BREAK_label: (void)0;
8258 RET_LABEL:;
8259 }
8260 /* method ropes#ReverseRopeSubstrings#item for (self: ReverseRopeSubstrings): FlatString */
8261 val* core__ropes___core__ropes__ReverseRopeSubstrings___core__abstract_collection__Iterator__item(val* self) {
8262 val* var /* : FlatString */;
8263 val* var1 /* : FlatString */;
8264 val* var3 /* : FlatString */;
8265 {
8266 { /* Inline ropes#ReverseRopeSubstrings#str (self) on <self:ReverseRopeSubstrings> */
8267 var3 = self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___str].val; /* _str on <self:ReverseRopeSubstrings> */
8268 if (unlikely(var3 == NULL)) {
8269 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
8270 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 794);
8271 fatal_exit(1);
8272 }
8273 var1 = var3;
8274 RET_LABEL2:(void)0;
8275 }
8276 }
8277 var = var1;
8278 goto RET_LABEL;
8279 RET_LABEL:;
8280 return var;
8281 }
8282 /* method ropes#ReverseRopeSubstrings#index for (self: ReverseRopeSubstrings): Int */
8283 long core__ropes___core__ropes__ReverseRopeSubstrings___core__abstract_collection__IndexedIterator__index(val* self) {
8284 long var /* : Int */;
8285 long var1 /* : Int */;
8286 long var3 /* : Int */;
8287 {
8288 { /* Inline ropes#ReverseRopeSubstrings#pos (self) on <self:ReverseRopeSubstrings> */
8289 var3 = self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___pos].l; /* _pos on <self:ReverseRopeSubstrings> */
8290 var1 = var3;
8291 RET_LABEL2:(void)0;
8292 }
8293 }
8294 var = var1;
8295 goto RET_LABEL;
8296 RET_LABEL:;
8297 return var;
8298 }
8299 /* method ropes#ReverseRopeSubstrings#is_ok for (self: ReverseRopeSubstrings): Bool */
8300 short int core__ropes___core__ropes__ReverseRopeSubstrings___core__abstract_collection__Iterator__is_ok(val* self) {
8301 short int var /* : Bool */;
8302 long var1 /* : Int */;
8303 long var3 /* : Int */;
8304 short int var4 /* : Bool */;
8305 short int var6 /* : Bool */;
8306 int cltype;
8307 int idtype;
8308 const char* var_class_name;
8309 short int var7 /* : Bool */;
8310 {
8311 { /* Inline ropes#ReverseRopeSubstrings#pos (self) on <self:ReverseRopeSubstrings> */
8312 var3 = self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___pos].l; /* _pos on <self:ReverseRopeSubstrings> */
8313 var1 = var3;
8314 RET_LABEL2:(void)0;
8315 }
8316 }
8317 {
8318 { /* Inline kernel#Int#>= (var1,0l) on <var1:Int> */
8319 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
8320 /* <0l:Int> isa OTHER */
8321 var6 = 1; /* easy <0l:Int> isa OTHER*/
8322 if (unlikely(!var6)) {
8323 var_class_name = type_core__Int.name;
8324 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
8325 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
8326 fatal_exit(1);
8327 }
8328 var7 = var1 >= 0l;
8329 var4 = var7;
8330 goto RET_LABEL5;
8331 RET_LABEL5:(void)0;
8332 }
8333 }
8334 var = var4;
8335 goto RET_LABEL;
8336 RET_LABEL:;
8337 return var;
8338 }
8339 /* method ropes#ReverseRopeSubstrings#next for (self: ReverseRopeSubstrings) */
8340 void core__ropes___core__ropes__ReverseRopeSubstrings___core__abstract_collection__Iterator__next(val* self) {
8341 long var /* : Int */;
8342 long var2 /* : Int */;
8343 short int var3 /* : Bool */;
8344 short int var5 /* : Bool */;
8345 int cltype;
8346 int idtype;
8347 const char* var_class_name;
8348 short int var6 /* : Bool */;
8349 val* var7 /* : RopeCharIteratorPiece */;
8350 val* var9 /* : RopeCharIteratorPiece */;
8351 val* var10 /* : nullable RopeCharIteratorPiece */;
8352 val* var12 /* : nullable RopeCharIteratorPiece */;
8353 val* var_curr /* var curr: nullable RopeCharIteratorPiece */;
8354 val* var13 /* : String */;
8355 val* var15 /* : String */;
8356 val* var_currit /* var currit: String */;
8357 short int var16 /* : Bool */;
8358 short int var17 /* : Bool */;
8359 val* var_other /* var other: nullable Object */;
8360 short int var19 /* : Bool */;
8361 short int var20 /* : Bool */;
8362 val* var21 /* : String */;
8363 val* var23 /* : String */;
8364 short int var24 /* : Bool */;
8365 int cltype25;
8366 int idtype26;
8367 short int var27 /* : Bool */;
8368 short int var28 /* : Bool */;
8369 int cltype29;
8370 int idtype30;
8371 const char* var_class_name31;
8372 val* var_ /* var : ReverseRopeSubstrings */;
8373 long var33 /* : Int */;
8374 long var35 /* : Int */;
8375 val* var36 /* : FlatString */;
8376 val* var38 /* : FlatString */;
8377 long var39 /* : Int */;
8378 long var41 /* : Int */;
8379 long var42 /* : Int */;
8380 short int var44 /* : Bool */;
8381 int cltype45;
8382 int idtype46;
8383 const char* var_class_name47;
8384 long var48 /* : Int */;
8385 short int var51 /* : Bool */;
8386 short int var53 /* : Bool */;
8387 short int var54 /* : Bool */;
8388 val* var56 /* : RopeCharIteratorPiece */;
8389 val* var57 /* : String */;
8390 short int var58 /* : Bool */;
8391 short int var60 /* : Bool */;
8392 short int var61 /* : Bool */;
8393 val* var63 /* : RopeCharIteratorPiece */;
8394 val* var64 /* : String */;
8395 val* var65 /* : nullable RopeCharIteratorPiece */;
8396 val* var67 /* : nullable RopeCharIteratorPiece */;
8397 long var69 /* : Int */;
8398 long var71 /* : Int */;
8399 {
8400 { /* Inline ropes#ReverseRopeSubstrings#pos (self) on <self:ReverseRopeSubstrings> */
8401 var2 = self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___pos].l; /* _pos on <self:ReverseRopeSubstrings> */
8402 var = var2;
8403 RET_LABEL1:(void)0;
8404 }
8405 }
8406 {
8407 { /* Inline kernel#Int#< (var,0l) on <var:Int> */
8408 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
8409 /* <0l:Int> isa OTHER */
8410 var5 = 1; /* easy <0l:Int> isa OTHER*/
8411 if (unlikely(!var5)) {
8412 var_class_name = type_core__Int.name;
8413 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
8414 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
8415 fatal_exit(1);
8416 }
8417 var6 = var < 0l;
8418 var3 = var6;
8419 goto RET_LABEL4;
8420 RET_LABEL4:(void)0;
8421 }
8422 }
8423 if (var3){
8424 goto RET_LABEL;
8425 } else {
8426 }
8427 {
8428 { /* Inline ropes#ReverseRopeSubstrings#iter (self) on <self:ReverseRopeSubstrings> */
8429 var9 = self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___iter].val; /* _iter on <self:ReverseRopeSubstrings> */
8430 if (unlikely(var9 == NULL)) {
8431 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
8432 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 789);
8433 fatal_exit(1);
8434 }
8435 var7 = var9;
8436 RET_LABEL8:(void)0;
8437 }
8438 }
8439 {
8440 { /* Inline ropes#RopeCharIteratorPiece#prev (var7) on <var7:RopeCharIteratorPiece> */
8441 var12 = var7->attrs[COLOR_core__ropes__RopeCharIteratorPiece___prev].val; /* _prev on <var7:RopeCharIteratorPiece> */
8442 var10 = var12;
8443 RET_LABEL11:(void)0;
8444 }
8445 }
8446 var_curr = var10;
8447 if (var_curr == NULL) {
8448 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8449 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 831);
8450 fatal_exit(1);
8451 } else {
8452 { /* Inline ropes#RopeCharIteratorPiece#node (var_curr) on <var_curr:nullable RopeCharIteratorPiece> */
8453 if (unlikely(var_curr == NULL)) {
8454 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8455 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 612);
8456 fatal_exit(1);
8457 }
8458 var15 = var_curr->attrs[COLOR_core__ropes__RopeCharIteratorPiece___node].val; /* _node on <var_curr:nullable RopeCharIteratorPiece> */
8459 if (unlikely(var15 == NULL)) {
8460 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _node");
8461 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 612);
8462 fatal_exit(1);
8463 }
8464 var13 = var15;
8465 RET_LABEL14:(void)0;
8466 }
8467 }
8468 var_currit = var13;
8469 for(;;) {
8470 if (var_curr == NULL) {
8471 var16 = 0; /* is null */
8472 } else {
8473 var16 = 1; /* arg is null and recv is not */
8474 }
8475 if (0) {
8476 { /* Inline kernel#Object#!= (var_curr,((val*)NULL)) on <var_curr:nullable RopeCharIteratorPiece> */
8477 var_other = ((val*)NULL);
8478 {
8479 var19 = ((short int(*)(val* self, val* p0))(var_curr->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_curr, var_other); /* == on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)>*/
8480 }
8481 var20 = !var19;
8482 var17 = var20;
8483 goto RET_LABEL18;
8484 RET_LABEL18:(void)0;
8485 }
8486 var16 = var17;
8487 }
8488 if (var16){
8489 {
8490 { /* Inline ropes#RopeCharIteratorPiece#node (var_curr) on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
8491 var23 = var_curr->attrs[COLOR_core__ropes__RopeCharIteratorPiece___node].val; /* _node on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
8492 if (unlikely(var23 == NULL)) {
8493 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _node");
8494 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 612);
8495 fatal_exit(1);
8496 }
8497 var21 = var23;
8498 RET_LABEL22:(void)0;
8499 }
8500 }
8501 var_currit = var21;
8502 /* <var_currit:String> isa Concat */
8503 cltype25 = type_core__ropes__Concat.color;
8504 idtype26 = type_core__ropes__Concat.id;
8505 if(cltype25 >= var_currit->type->table_size) {
8506 var24 = 0;
8507 } else {
8508 var24 = var_currit->type->type_table[cltype25] == idtype26;
8509 }
8510 var27 = !var24;
8511 if (var27){
8512 /* <var_currit:String> isa FlatString */
8513 cltype29 = type_core__FlatString.color;
8514 idtype30 = type_core__FlatString.id;
8515 if(cltype29 >= var_currit->type->table_size) {
8516 var28 = 0;
8517 } else {
8518 var28 = var_currit->type->type_table[cltype29] == idtype30;
8519 }
8520 if (unlikely(!var28)) {
8521 var_class_name31 = var_currit == NULL ? "null" : var_currit->type->name;
8522 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "FlatString", var_class_name31);
8523 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 835);
8524 fatal_exit(1);
8525 }
8526 {
8527 { /* Inline ropes#ReverseRopeSubstrings#str= (self,var_currit) on <self:ReverseRopeSubstrings> */
8528 self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___str].val = var_currit; /* _str on <self:ReverseRopeSubstrings> */
8529 RET_LABEL32:(void)0;
8530 }
8531 }
8532 var_ = self;
8533 {
8534 { /* Inline ropes#ReverseRopeSubstrings#pos (var_) on <var_:ReverseRopeSubstrings> */
8535 var35 = var_->attrs[COLOR_core__ropes__ReverseRopeSubstrings___pos].l; /* _pos on <var_:ReverseRopeSubstrings> */
8536 var33 = var35;
8537 RET_LABEL34:(void)0;
8538 }
8539 }
8540 {
8541 { /* Inline ropes#ReverseRopeSubstrings#str (self) on <self:ReverseRopeSubstrings> */
8542 var38 = self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___str].val; /* _str on <self:ReverseRopeSubstrings> */
8543 if (unlikely(var38 == NULL)) {
8544 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
8545 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 794);
8546 fatal_exit(1);
8547 }
8548 var36 = var38;
8549 RET_LABEL37:(void)0;
8550 }
8551 }
8552 {
8553 { /* Inline abstract_text#FlatText#length (var36) on <var36:FlatString> */
8554 var41 = var36->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <var36:FlatString> */
8555 var39 = var41;
8556 RET_LABEL40:(void)0;
8557 }
8558 }
8559 {
8560 { /* Inline kernel#Int#- (var33,var39) on <var33:Int> */
8561 /* Covariant cast for argument 0 (i) <var39:Int> isa OTHER */
8562 /* <var39:Int> isa OTHER */
8563 var44 = 1; /* easy <var39:Int> isa OTHER*/
8564 if (unlikely(!var44)) {
8565 var_class_name47 = type_core__Int.name;
8566 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name47);
8567 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
8568 fatal_exit(1);
8569 }
8570 var48 = var33 - var39;
8571 var42 = var48;
8572 goto RET_LABEL43;
8573 RET_LABEL43:(void)0;
8574 }
8575 }
8576 {
8577 { /* Inline ropes#ReverseRopeSubstrings#pos= (var_,var42) on <var_:ReverseRopeSubstrings> */
8578 var_->attrs[COLOR_core__ropes__ReverseRopeSubstrings___pos].l = var42; /* _pos on <var_:ReverseRopeSubstrings> */
8579 RET_LABEL49:(void)0;
8580 }
8581 }
8582 {
8583 { /* Inline ropes#ReverseRopeSubstrings#iter= (self,var_curr) on <self:ReverseRopeSubstrings> */
8584 self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___iter].val = var_curr; /* _iter on <self:ReverseRopeSubstrings> */
8585 RET_LABEL50:(void)0;
8586 }
8587 }
8588 goto RET_LABEL;
8589 } else {
8590 }
8591 {
8592 { /* Inline ropes#RopeCharIteratorPiece#rdone (var_curr) on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
8593 var53 = var_curr->attrs[COLOR_core__ropes__RopeCharIteratorPiece___rdone].s; /* _rdone on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
8594 var51 = var53;
8595 RET_LABEL52:(void)0;
8596 }
8597 }
8598 var54 = !var51;
8599 if (var54){
8600 {
8601 { /* Inline ropes#RopeCharIteratorPiece#rdone= (var_curr,1) on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
8602 var_curr->attrs[COLOR_core__ropes__RopeCharIteratorPiece___rdone].s = 1; /* _rdone on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
8603 RET_LABEL55:(void)0;
8604 }
8605 }
8606 var56 = NEW_core__ropes__RopeCharIteratorPiece(&type_core__ropes__RopeCharIteratorPiece);
8607 var57 = var_currit->attrs[COLOR_core__ropes__Concat___right].val; /* _right on <var_currit:String(Concat)> */
8608 if (unlikely(var57 == NULL)) {
8609 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
8610 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 842);
8611 fatal_exit(1);
8612 }
8613 {
8614 ((void(*)(val* self, val* p0))(var56->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__node_61d]))(var56, var57); /* node= on <var56:RopeCharIteratorPiece>*/
8615 }
8616 {
8617 ((void(*)(val* self, short int p0))(var56->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__ldone_61d]))(var56, 0); /* ldone= on <var56:RopeCharIteratorPiece>*/
8618 }
8619 {
8620 ((void(*)(val* self, short int p0))(var56->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__rdone_61d]))(var56, 0); /* rdone= on <var56:RopeCharIteratorPiece>*/
8621 }
8622 {
8623 ((void(*)(val* self, val* p0))(var56->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__prev_61d]))(var56, var_curr); /* prev= on <var56:RopeCharIteratorPiece>*/
8624 }
8625 {
8626 ((void(*)(val* self))(var56->class->vft[COLOR_core__kernel__Object__init]))(var56); /* init on <var56:RopeCharIteratorPiece>*/
8627 }
8628 var_curr = var56;
8629 goto BREAK_label;
8630 } else {
8631 }
8632 {
8633 { /* Inline ropes#RopeCharIteratorPiece#ldone (var_curr) on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
8634 var60 = var_curr->attrs[COLOR_core__ropes__RopeCharIteratorPiece___ldone].s; /* _ldone on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
8635 var58 = var60;
8636 RET_LABEL59:(void)0;
8637 }
8638 }
8639 var61 = !var58;
8640 if (var61){
8641 {
8642 { /* Inline ropes#RopeCharIteratorPiece#ldone= (var_curr,1) on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
8643 var_curr->attrs[COLOR_core__ropes__RopeCharIteratorPiece___ldone].s = 1; /* _ldone on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
8644 RET_LABEL62:(void)0;
8645 }
8646 }
8647 var63 = NEW_core__ropes__RopeCharIteratorPiece(&type_core__ropes__RopeCharIteratorPiece);
8648 var64 = var_currit->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <var_currit:String(Concat)> */
8649 if (unlikely(var64 == NULL)) {
8650 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
8651 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 847);
8652 fatal_exit(1);
8653 }
8654 {
8655 ((void(*)(val* self, val* p0))(var63->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__node_61d]))(var63, var64); /* node= on <var63:RopeCharIteratorPiece>*/
8656 }
8657 {
8658 ((void(*)(val* self, short int p0))(var63->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__ldone_61d]))(var63, 0); /* ldone= on <var63:RopeCharIteratorPiece>*/
8659 }
8660 {
8661 ((void(*)(val* self, short int p0))(var63->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__rdone_61d]))(var63, 0); /* rdone= on <var63:RopeCharIteratorPiece>*/
8662 }
8663 {
8664 ((void(*)(val* self, val* p0))(var63->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__prev_61d]))(var63, var_curr); /* prev= on <var63:RopeCharIteratorPiece>*/
8665 }
8666 {
8667 ((void(*)(val* self))(var63->class->vft[COLOR_core__kernel__Object__init]))(var63); /* init on <var63:RopeCharIteratorPiece>*/
8668 }
8669 var_curr = var63;
8670 goto BREAK_label;
8671 } else {
8672 }
8673 {
8674 { /* Inline ropes#RopeCharIteratorPiece#prev (var_curr) on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
8675 var67 = var_curr->attrs[COLOR_core__ropes__RopeCharIteratorPiece___prev].val; /* _prev on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
8676 var65 = var67;
8677 RET_LABEL66:(void)0;
8678 }
8679 }
8680 var_curr = var65;
8681 } else {
8682 goto BREAK_label68;
8683 }
8684 BREAK_label: (void)0;
8685 }
8686 BREAK_label68: (void)0;
8687 {
8688 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
8689 var71 = -1l;
8690 var69 = var71;
8691 goto RET_LABEL70;
8692 RET_LABEL70:(void)0;
8693 }
8694 }
8695 {
8696 { /* Inline ropes#ReverseRopeSubstrings#pos= (self,var69) on <self:ReverseRopeSubstrings> */
8697 self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___pos].l = var69; /* _pos on <self:ReverseRopeSubstrings> */
8698 RET_LABEL72:(void)0;
8699 }
8700 }
8701 RET_LABEL:;
8702 }
8703 /* method ropes#RopeBufSubstringIterator#iter for (self: RopeBufSubstringIterator): Iterator[FlatText] */
8704 val* core__ropes___core__ropes__RopeBufSubstringIterator___iter(val* self) {
8705 val* var /* : Iterator[FlatText] */;
8706 val* var1 /* : Iterator[FlatText] */;
8707 var1 = self->attrs[COLOR_core__ropes__RopeBufSubstringIterator___iter].val; /* _iter on <self:RopeBufSubstringIterator> */
8708 if (unlikely(var1 == NULL)) {
8709 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
8710 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 859);
8711 fatal_exit(1);
8712 }
8713 var = var1;
8714 RET_LABEL:;
8715 return var;
8716 }
8717 /* method ropes#RopeBufSubstringIterator#iter= for (self: RopeBufSubstringIterator, Iterator[FlatText]) */
8718 void core__ropes___core__ropes__RopeBufSubstringIterator___iter_61d(val* self, val* p0) {
8719 self->attrs[COLOR_core__ropes__RopeBufSubstringIterator___iter].val = p0; /* _iter on <self:RopeBufSubstringIterator> */
8720 RET_LABEL:;
8721 }
8722 /* method ropes#RopeBufSubstringIterator#nsstr for (self: RopeBufSubstringIterator): FlatString */
8723 val* core__ropes___core__ropes__RopeBufSubstringIterator___nsstr(val* self) {
8724 val* var /* : FlatString */;
8725 val* var1 /* : FlatString */;
8726 var1 = self->attrs[COLOR_core__ropes__RopeBufSubstringIterator___nsstr].val; /* _nsstr on <self:RopeBufSubstringIterator> */
8727 if (unlikely(var1 == NULL)) {
8728 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _nsstr");
8729 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 861);
8730 fatal_exit(1);
8731 }
8732 var = var1;
8733 RET_LABEL:;
8734 return var;
8735 }
8736 /* method ropes#RopeBufSubstringIterator#nsstr= for (self: RopeBufSubstringIterator, FlatString) */
8737 void core__ropes___core__ropes__RopeBufSubstringIterator___nsstr_61d(val* self, val* p0) {
8738 self->attrs[COLOR_core__ropes__RopeBufSubstringIterator___nsstr].val = p0; /* _nsstr on <self:RopeBufSubstringIterator> */
8739 RET_LABEL:;
8740 }
8741 /* method ropes#RopeBufSubstringIterator#nsstr_done for (self: RopeBufSubstringIterator): Bool */
8742 short int core__ropes___core__ropes__RopeBufSubstringIterator___nsstr_done(val* self) {
8743 short int var /* : Bool */;
8744 short int var1 /* : Bool */;
8745 var1 = self->attrs[COLOR_core__ropes__RopeBufSubstringIterator___nsstr_done].s; /* _nsstr_done on <self:RopeBufSubstringIterator> */
8746 var = var1;
8747 RET_LABEL:;
8748 return var;
8749 }
8750 /* method ropes#RopeBufSubstringIterator#nsstr_done= for (self: RopeBufSubstringIterator, Bool) */
8751 void core__ropes___core__ropes__RopeBufSubstringIterator___nsstr_done_61d(val* self, short int p0) {
8752 self->attrs[COLOR_core__ropes__RopeBufSubstringIterator___nsstr_done].s = p0; /* _nsstr_done on <self:RopeBufSubstringIterator> */
8753 RET_LABEL:;
8754 }
8755 /* method ropes#RopeBufSubstringIterator#from for (self: RopeBufSubstringIterator, RopeBuffer) */
8756 void core__ropes___core__ropes__RopeBufSubstringIterator___from(val* self, val* p0) {
8757 val* var_str /* var str: RopeBuffer */;
8758 val* var /* : String */;
8759 val* var3 /* : String */;
8760 val* var4 /* : Iterator[FlatText] */;
8761 val* var6 /* : FlatString */;
8762 char* var7 /* : NativeString */;
8763 char* var9 /* : NativeString */;
8764 long var10 /* : Int */;
8765 long var12 /* : Int */;
8766 long var13 /* : Int */;
8767 long var15 /* : Int */;
8768 long var16 /* : Int */;
8769 short int var18 /* : Bool */;
8770 int cltype;
8771 int idtype;
8772 const char* var_class_name;
8773 long var19 /* : Int */;
8774 long var20 /* : Int */;
8775 long var22 /* : Int */;
8776 long var24 /* : Int */;
8777 short int var25 /* : Bool */;
8778 short int var27 /* : Bool */;
8779 {
8780 { /* Inline kernel#Object#init (self) on <self:RopeBufSubstringIterator> */
8781 RET_LABEL1:(void)0;
8782 }
8783 }
8784 var_str = p0;
8785 {
8786 { /* Inline ropes#RopeBuffer#str (var_str) on <var_str:RopeBuffer> */
8787 var3 = var_str->attrs[COLOR_core__ropes__RopeBuffer___str].val; /* _str on <var_str:RopeBuffer> */
8788 if (unlikely(var3 == NULL)) {
8789 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
8790 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 310);
8791 fatal_exit(1);
8792 }
8793 var = var3;
8794 RET_LABEL2:(void)0;
8795 }
8796 }
8797 {
8798 var4 = ((val*(*)(val* self))(var->class->vft[COLOR_core__abstract_text__Text__substrings]))(var); /* substrings on <var:String>*/
8799 }
8800 {
8801 { /* Inline ropes#RopeBufSubstringIterator#iter= (self,var4) on <self:RopeBufSubstringIterator> */
8802 self->attrs[COLOR_core__ropes__RopeBufSubstringIterator___iter].val = var4; /* _iter on <self:RopeBufSubstringIterator> */
8803 RET_LABEL5:(void)0;
8804 }
8805 }
8806 var6 = NEW_core__FlatString(&type_core__FlatString);
8807 {
8808 { /* Inline ropes#RopeBuffer#ns (var_str) on <var_str:RopeBuffer> */
8809 var9 = var_str->attrs[COLOR_core__ropes__RopeBuffer___ns].str; /* _ns on <var_str:RopeBuffer> */
8810 var7 = var9;
8811 RET_LABEL8:(void)0;
8812 }
8813 }
8814 {
8815 { /* Inline ropes#RopeBuffer#rpos (var_str) on <var_str:RopeBuffer> */
8816 var12 = var_str->attrs[COLOR_core__ropes__RopeBuffer___rpos].l; /* _rpos on <var_str:RopeBuffer> */
8817 var10 = var12;
8818 RET_LABEL11:(void)0;
8819 }
8820 }
8821 {
8822 { /* Inline ropes#RopeBuffer#dumped (var_str) on <var_str:RopeBuffer> */
8823 var15 = var_str->attrs[COLOR_core__ropes__RopeBuffer___dumped].l; /* _dumped on <var_str:RopeBuffer> */
8824 var13 = var15;
8825 RET_LABEL14:(void)0;
8826 }
8827 }
8828 {
8829 { /* Inline kernel#Int#- (var10,var13) on <var10:Int> */
8830 /* Covariant cast for argument 0 (i) <var13:Int> isa OTHER */
8831 /* <var13:Int> isa OTHER */
8832 var18 = 1; /* easy <var13:Int> isa OTHER*/
8833 if (unlikely(!var18)) {
8834 var_class_name = type_core__Int.name;
8835 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
8836 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
8837 fatal_exit(1);
8838 }
8839 var19 = var10 - var13;
8840 var16 = var19;
8841 goto RET_LABEL17;
8842 RET_LABEL17:(void)0;
8843 }
8844 }
8845 {
8846 { /* Inline ropes#RopeBuffer#dumped (var_str) on <var_str:RopeBuffer> */
8847 var22 = var_str->attrs[COLOR_core__ropes__RopeBuffer___dumped].l; /* _dumped on <var_str:RopeBuffer> */
8848 var20 = var22;
8849 RET_LABEL21:(void)0;
8850 }
8851 }
8852 {
8853 core___core__FlatString___with_infos(var6, var7, var16, var20); /* Direct call flat#FlatString#with_infos on <var6:FlatString>*/
8854 }
8855 {
8856 { /* Inline ropes#RopeBufSubstringIterator#nsstr= (self,var6) on <self:RopeBufSubstringIterator> */
8857 self->attrs[COLOR_core__ropes__RopeBufSubstringIterator___nsstr].val = var6; /* _nsstr on <self:RopeBufSubstringIterator> */
8858 RET_LABEL23:(void)0;
8859 }
8860 }
8861 {
8862 var24 = core___core__RopeBuffer___core__abstract_text__Text__length(var_str);
8863 }
8864 {
8865 { /* Inline kernel#Int#== (var24,0l) on <var24:Int> */
8866 var27 = var24 == 0l;
8867 var25 = var27;
8868 goto RET_LABEL26;
8869 RET_LABEL26:(void)0;
8870 }
8871 }
8872 if (var25){
8873 {
8874 { /* Inline ropes#RopeBufSubstringIterator#nsstr_done= (self,1) on <self:RopeBufSubstringIterator> */
8875 self->attrs[COLOR_core__ropes__RopeBufSubstringIterator___nsstr_done].s = 1; /* _nsstr_done on <self:RopeBufSubstringIterator> */
8876 RET_LABEL28:(void)0;
8877 }
8878 }
8879 } else {
8880 }
8881 RET_LABEL:;
8882 }
8883 /* method ropes#RopeBufSubstringIterator#is_ok for (self: RopeBufSubstringIterator): Bool */
8884 short int core__ropes___core__ropes__RopeBufSubstringIterator___core__abstract_collection__Iterator__is_ok(val* self) {
8885 short int var /* : Bool */;
8886 short int var1 /* : Bool */;
8887 val* var2 /* : Iterator[FlatText] */;
8888 val* var4 /* : Iterator[FlatText] */;
8889 short int var5 /* : Bool */;
8890 short int var_ /* var : Bool */;
8891 short int var6 /* : Bool */;
8892 short int var8 /* : Bool */;
8893 short int var9 /* : Bool */;
8894 {
8895 { /* Inline ropes#RopeBufSubstringIterator#iter (self) on <self:RopeBufSubstringIterator> */
8896 var4 = self->attrs[COLOR_core__ropes__RopeBufSubstringIterator___iter].val; /* _iter on <self:RopeBufSubstringIterator> */
8897 if (unlikely(var4 == NULL)) {
8898 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
8899 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 859);
8900 fatal_exit(1);
8901 }
8902 var2 = var4;
8903 RET_LABEL3:(void)0;
8904 }
8905 }
8906 {
8907 var5 = ((short int(*)(val* self))((((long)var2&3)?class_info[((long)var2&3)]:var2->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var2); /* is_ok on <var2:Iterator[FlatText]>*/
8908 }
8909 var_ = var5;
8910 if (var5){
8911 var1 = var_;
8912 } else {
8913 {
8914 { /* Inline ropes#RopeBufSubstringIterator#nsstr_done (self) on <self:RopeBufSubstringIterator> */
8915 var8 = self->attrs[COLOR_core__ropes__RopeBufSubstringIterator___nsstr_done].s; /* _nsstr_done on <self:RopeBufSubstringIterator> */
8916 var6 = var8;
8917 RET_LABEL7:(void)0;
8918 }
8919 }
8920 var9 = !var6;
8921 var1 = var9;
8922 }
8923 var = var1;
8924 goto RET_LABEL;
8925 RET_LABEL:;
8926 return var;
8927 }
8928 /* method ropes#RopeBufSubstringIterator#item for (self: RopeBufSubstringIterator): FlatText */
8929 val* core__ropes___core__ropes__RopeBufSubstringIterator___core__abstract_collection__Iterator__item(val* self) {
8930 val* var /* : FlatText */;
8931 short int var1 /* : Bool */;
8932 val* var2 /* : Iterator[FlatText] */;
8933 val* var4 /* : Iterator[FlatText] */;
8934 short int var5 /* : Bool */;
8935 val* var6 /* : Iterator[FlatText] */;
8936 val* var8 /* : Iterator[FlatText] */;
8937 val* var9 /* : nullable Object */;
8938 val* var10 /* : FlatString */;
8939 val* var12 /* : FlatString */;
8940 {
8941 var1 = core__ropes___core__ropes__RopeBufSubstringIterator___core__abstract_collection__Iterator__is_ok(self);
8942 }
8943 if (unlikely(!var1)) {
8944 PRINT_ERROR("Runtime error: %s", "Assert failed");
8945 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 875);
8946 fatal_exit(1);
8947 }
8948 {
8949 { /* Inline ropes#RopeBufSubstringIterator#iter (self) on <self:RopeBufSubstringIterator> */
8950 var4 = self->attrs[COLOR_core__ropes__RopeBufSubstringIterator___iter].val; /* _iter on <self:RopeBufSubstringIterator> */
8951 if (unlikely(var4 == NULL)) {
8952 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
8953 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 859);
8954 fatal_exit(1);
8955 }
8956 var2 = var4;
8957 RET_LABEL3:(void)0;
8958 }
8959 }
8960 {
8961 var5 = ((short int(*)(val* self))((((long)var2&3)?class_info[((long)var2&3)]:var2->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var2); /* is_ok on <var2:Iterator[FlatText]>*/
8962 }
8963 if (var5){
8964 {
8965 { /* Inline ropes#RopeBufSubstringIterator#iter (self) on <self:RopeBufSubstringIterator> */
8966 var8 = self->attrs[COLOR_core__ropes__RopeBufSubstringIterator___iter].val; /* _iter on <self:RopeBufSubstringIterator> */
8967 if (unlikely(var8 == NULL)) {
8968 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
8969 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 859);
8970 fatal_exit(1);
8971 }
8972 var6 = var8;
8973 RET_LABEL7:(void)0;
8974 }
8975 }
8976 {
8977 var9 = ((val*(*)(val* self))((((long)var6&3)?class_info[((long)var6&3)]:var6->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var6); /* item on <var6:Iterator[FlatText]>*/
8978 }
8979 var = var9;
8980 goto RET_LABEL;
8981 } else {
8982 }
8983 {
8984 { /* Inline ropes#RopeBufSubstringIterator#nsstr (self) on <self:RopeBufSubstringIterator> */
8985 var12 = self->attrs[COLOR_core__ropes__RopeBufSubstringIterator___nsstr].val; /* _nsstr on <self:RopeBufSubstringIterator> */
8986 if (unlikely(var12 == NULL)) {
8987 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _nsstr");
8988 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 861);
8989 fatal_exit(1);
8990 }
8991 var10 = var12;
8992 RET_LABEL11:(void)0;
8993 }
8994 }
8995 var = var10;
8996 goto RET_LABEL;
8997 RET_LABEL:;
8998 return var;
8999 }
9000 /* method ropes#RopeBufSubstringIterator#next for (self: RopeBufSubstringIterator) */
9001 void core__ropes___core__ropes__RopeBufSubstringIterator___core__abstract_collection__Iterator__next(val* self) {
9002 val* var /* : Iterator[FlatText] */;
9003 val* var2 /* : Iterator[FlatText] */;
9004 short int var3 /* : Bool */;
9005 val* var4 /* : Iterator[FlatText] */;
9006 val* var6 /* : Iterator[FlatText] */;
9007 {
9008 { /* Inline ropes#RopeBufSubstringIterator#iter (self) on <self:RopeBufSubstringIterator> */
9009 var2 = self->attrs[COLOR_core__ropes__RopeBufSubstringIterator___iter].val; /* _iter on <self:RopeBufSubstringIterator> */
9010 if (unlikely(var2 == NULL)) {
9011 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
9012 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 859);
9013 fatal_exit(1);
9014 }
9015 var = var2;
9016 RET_LABEL1:(void)0;
9017 }
9018 }
9019 {
9020 var3 = ((short int(*)(val* self))((((long)var&3)?class_info[((long)var&3)]:var->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var); /* is_ok on <var:Iterator[FlatText]>*/
9021 }
9022 if (var3){
9023 {
9024 { /* Inline ropes#RopeBufSubstringIterator#iter (self) on <self:RopeBufSubstringIterator> */
9025 var6 = self->attrs[COLOR_core__ropes__RopeBufSubstringIterator___iter].val; /* _iter on <self:RopeBufSubstringIterator> */
9026 if (unlikely(var6 == NULL)) {
9027 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
9028 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 859);
9029 fatal_exit(1);
9030 }
9031 var4 = var6;
9032 RET_LABEL5:(void)0;
9033 }
9034 }
9035 {
9036 ((void(*)(val* self))((((long)var4&3)?class_info[((long)var4&3)]:var4->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var4); /* next on <var4:Iterator[FlatText]>*/
9037 }
9038 goto RET_LABEL;
9039 } else {
9040 }
9041 {
9042 { /* Inline ropes#RopeBufSubstringIterator#nsstr_done= (self,1) on <self:RopeBufSubstringIterator> */
9043 self->attrs[COLOR_core__ropes__RopeBufSubstringIterator___nsstr_done].s = 1; /* _nsstr_done on <self:RopeBufSubstringIterator> */
9044 RET_LABEL7:(void)0;
9045 }
9046 }
9047 RET_LABEL:;
9048 }
9049 /* method ropes#RopeSubstrings#iter for (self: RopeSubstrings): RopeCharIteratorPiece */
9050 val* core__ropes___core__ropes__RopeSubstrings___iter(val* self) {
9051 val* var /* : RopeCharIteratorPiece */;
9052 val* var1 /* : RopeCharIteratorPiece */;
9053 var1 = self->attrs[COLOR_core__ropes__RopeSubstrings___iter].val; /* _iter on <self:RopeSubstrings> */
9054 if (unlikely(var1 == NULL)) {
9055 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
9056 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 893);
9057 fatal_exit(1);
9058 }
9059 var = var1;
9060 RET_LABEL:;
9061 return var;
9062 }
9063 /* method ropes#RopeSubstrings#iter= for (self: RopeSubstrings, RopeCharIteratorPiece) */
9064 void core__ropes___core__ropes__RopeSubstrings___iter_61d(val* self, val* p0) {
9065 self->attrs[COLOR_core__ropes__RopeSubstrings___iter].val = p0; /* _iter on <self:RopeSubstrings> */
9066 RET_LABEL:;
9067 }
9068 /* method ropes#RopeSubstrings#pos for (self: RopeSubstrings): Int */
9069 long core__ropes___core__ropes__RopeSubstrings___pos(val* self) {
9070 long var /* : Int */;
9071 long var1 /* : Int */;
9072 var1 = self->attrs[COLOR_core__ropes__RopeSubstrings___pos].l; /* _pos on <self:RopeSubstrings> */
9073 var = var1;
9074 RET_LABEL:;
9075 return var;
9076 }
9077 /* method ropes#RopeSubstrings#pos= for (self: RopeSubstrings, Int) */
9078 void core__ropes___core__ropes__RopeSubstrings___pos_61d(val* self, long p0) {
9079 self->attrs[COLOR_core__ropes__RopeSubstrings___pos].l = p0; /* _pos on <self:RopeSubstrings> */
9080 RET_LABEL:;
9081 }
9082 /* method ropes#RopeSubstrings#max for (self: RopeSubstrings): Int */
9083 long core__ropes___core__ropes__RopeSubstrings___max(val* self) {
9084 long var /* : Int */;
9085 long var1 /* : Int */;
9086 var1 = self->attrs[COLOR_core__ropes__RopeSubstrings___max].l; /* _max on <self:RopeSubstrings> */
9087 var = var1;
9088 RET_LABEL:;
9089 return var;
9090 }
9091 /* method ropes#RopeSubstrings#max= for (self: RopeSubstrings, Int) */
9092 void core__ropes___core__ropes__RopeSubstrings___max_61d(val* self, long p0) {
9093 self->attrs[COLOR_core__ropes__RopeSubstrings___max].l = p0; /* _max on <self:RopeSubstrings> */
9094 RET_LABEL:;
9095 }
9096 /* method ropes#RopeSubstrings#str for (self: RopeSubstrings): FlatString */
9097 val* core__ropes___core__ropes__RopeSubstrings___str(val* self) {
9098 val* var /* : FlatString */;
9099 val* var1 /* : FlatString */;
9100 var1 = self->attrs[COLOR_core__ropes__RopeSubstrings___str].val; /* _str on <self:RopeSubstrings> */
9101 if (unlikely(var1 == NULL)) {
9102 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
9103 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 900);
9104 fatal_exit(1);
9105 }
9106 var = var1;
9107 RET_LABEL:;
9108 return var;
9109 }
9110 /* method ropes#RopeSubstrings#str= for (self: RopeSubstrings, FlatString) */
9111 void core__ropes___core__ropes__RopeSubstrings___str_61d(val* self, val* p0) {
9112 self->attrs[COLOR_core__ropes__RopeSubstrings___str].val = p0; /* _str on <self:RopeSubstrings> */
9113 RET_LABEL:;
9114 }
9115 /* method ropes#RopeSubstrings#from for (self: RopeSubstrings, Concat, Int) */
9116 void core__ropes___core__ropes__RopeSubstrings___from(val* self, val* p0, long p1) {
9117 val* var_root /* var root: Concat */;
9118 long var_pos /* var pos: Int */;
9119 val* var /* : RopeCharIteratorPiece */;
9120 val* var_r /* var r: RopeCharIteratorPiece */;
9121 long var2 /* : Int */;
9122 long var4 /* : Int */;
9123 long var5 /* : Int */;
9124 short int var7 /* : Bool */;
9125 int cltype;
9126 int idtype;
9127 const char* var_class_name;
9128 long var8 /* : Int */;
9129 val* var_rnod /* var rnod: String */;
9130 long var_off /* var off: Int */;
9131 short int var10 /* : Bool */;
9132 int cltype11;
9133 int idtype12;
9134 val* var13 /* : String */;
9135 long var14 /* : Int */;
9136 short int var15 /* : Bool */;
9137 short int var17 /* : Bool */;
9138 int cltype18;
9139 int idtype19;
9140 const char* var_class_name20;
9141 short int var21 /* : Bool */;
9142 val* var23 /* : String */;
9143 long var24 /* : Int */;
9144 long var25 /* : Int */;
9145 short int var27 /* : Bool */;
9146 int cltype28;
9147 int idtype29;
9148 const char* var_class_name30;
9149 long var31 /* : Int */;
9150 val* var32 /* : String */;
9151 val* var33 /* : RopeCharIteratorPiece */;
9152 val* var34 /* : String */;
9153 val* var35 /* : RopeCharIteratorPiece */;
9154 short int var36 /* : Bool */;
9155 int cltype37;
9156 int idtype38;
9157 const char* var_class_name39;
9158 long var43 /* : Int */;
9159 short int var45 /* : Bool */;
9160 int cltype46;
9161 int idtype47;
9162 const char* var_class_name48;
9163 long var49 /* : Int */;
9164 {
9165 { /* Inline kernel#Object#init (self) on <self:RopeSubstrings> */
9166 RET_LABEL1:(void)0;
9167 }
9168 }
9169 var_root = p0;
9170 var_pos = p1;
9171 var = NEW_core__ropes__RopeCharIteratorPiece(&type_core__ropes__RopeCharIteratorPiece);
9172 {
9173 ((void(*)(val* self, val* p0))(var->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__node_61d]))(var, var_root); /* node= on <var:RopeCharIteratorPiece>*/
9174 }
9175 {
9176 ((void(*)(val* self, short int p0))(var->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__ldone_61d]))(var, 1); /* ldone= on <var:RopeCharIteratorPiece>*/
9177 }
9178 {
9179 ((void(*)(val* self, short int p0))(var->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__rdone_61d]))(var, 0); /* rdone= on <var:RopeCharIteratorPiece>*/
9180 }
9181 {
9182 ((void(*)(val* self, val* p0))(var->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__prev_61d]))(var, ((val*)NULL)); /* prev= on <var:RopeCharIteratorPiece>*/
9183 }
9184 {
9185 ((void(*)(val* self))(var->class->vft[COLOR_core__kernel__Object__init]))(var); /* init on <var:RopeCharIteratorPiece>*/
9186 }
9187 var_r = var;
9188 {
9189 { /* Inline ropes#Concat#length (var_root) on <var_root:Concat> */
9190 var4 = var_root->attrs[COLOR_core__ropes__Concat___length].l; /* _length on <var_root:Concat> */
9191 var2 = var4;
9192 RET_LABEL3:(void)0;
9193 }
9194 }
9195 {
9196 { /* Inline kernel#Int#- (var2,1l) on <var2:Int> */
9197 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
9198 /* <1l:Int> isa OTHER */
9199 var7 = 1; /* easy <1l:Int> isa OTHER*/
9200 if (unlikely(!var7)) {
9201 var_class_name = type_core__Int.name;
9202 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
9203 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
9204 fatal_exit(1);
9205 }
9206 var8 = var2 - 1l;
9207 var5 = var8;
9208 goto RET_LABEL6;
9209 RET_LABEL6:(void)0;
9210 }
9211 }
9212 {
9213 { /* Inline ropes#RopeSubstrings#max= (self,var5) on <self:RopeSubstrings> */
9214 self->attrs[COLOR_core__ropes__RopeSubstrings___max].l = var5; /* _max on <self:RopeSubstrings> */
9215 RET_LABEL9:(void)0;
9216 }
9217 }
9218 var_rnod = var_root;
9219 var_off = var_pos;
9220 for(;;) {
9221 /* <var_rnod:String> isa Concat */
9222 cltype11 = type_core__ropes__Concat.color;
9223 idtype12 = type_core__ropes__Concat.id;
9224 if(cltype11 >= var_rnod->type->table_size) {
9225 var10 = 0;
9226 } else {
9227 var10 = var_rnod->type->type_table[cltype11] == idtype12;
9228 }
9229 if (var10){
9230 var13 = var_rnod->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <var_rnod:String(Concat)> */
9231 if (unlikely(var13 == NULL)) {
9232 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
9233 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 910);
9234 fatal_exit(1);
9235 }
9236 {
9237 var14 = ((long(*)(val* self))(var13->class->vft[COLOR_core__abstract_text__Text__length]))(var13); /* length on <var13:String>*/
9238 }
9239 {
9240 { /* Inline kernel#Int#>= (var_off,var14) on <var_off:Int> */
9241 /* Covariant cast for argument 0 (i) <var14:Int> isa OTHER */
9242 /* <var14:Int> isa OTHER */
9243 var17 = 1; /* easy <var14:Int> isa OTHER*/
9244 if (unlikely(!var17)) {
9245 var_class_name20 = type_core__Int.name;
9246 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
9247 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
9248 fatal_exit(1);
9249 }
9250 var21 = var_off >= var14;
9251 var15 = var21;
9252 goto RET_LABEL16;
9253 RET_LABEL16:(void)0;
9254 }
9255 }
9256 if (var15){
9257 {
9258 { /* Inline ropes#RopeCharIteratorPiece#rdone= (var_r,1) on <var_r:RopeCharIteratorPiece> */
9259 var_r->attrs[COLOR_core__ropes__RopeCharIteratorPiece___rdone].s = 1; /* _rdone on <var_r:RopeCharIteratorPiece> */
9260 RET_LABEL22:(void)0;
9261 }
9262 }
9263 var23 = var_rnod->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <var_rnod:String(Concat)> */
9264 if (unlikely(var23 == NULL)) {
9265 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
9266 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 912);
9267 fatal_exit(1);
9268 }
9269 {
9270 var24 = ((long(*)(val* self))(var23->class->vft[COLOR_core__abstract_text__Text__length]))(var23); /* length on <var23:String>*/
9271 }
9272 {
9273 { /* Inline kernel#Int#- (var_off,var24) on <var_off:Int> */
9274 /* Covariant cast for argument 0 (i) <var24:Int> isa OTHER */
9275 /* <var24:Int> isa OTHER */
9276 var27 = 1; /* easy <var24:Int> isa OTHER*/
9277 if (unlikely(!var27)) {
9278 var_class_name30 = type_core__Int.name;
9279 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30);
9280 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
9281 fatal_exit(1);
9282 }
9283 var31 = var_off - var24;
9284 var25 = var31;
9285 goto RET_LABEL26;
9286 RET_LABEL26:(void)0;
9287 }
9288 }
9289 var_off = var25;
9290 var32 = var_rnod->attrs[COLOR_core__ropes__Concat___right].val; /* _right on <var_rnod:String(Concat)> */
9291 if (unlikely(var32 == NULL)) {
9292 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
9293 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 913);
9294 fatal_exit(1);
9295 }
9296 var_rnod = var32;
9297 var33 = NEW_core__ropes__RopeCharIteratorPiece(&type_core__ropes__RopeCharIteratorPiece);
9298 {
9299 ((void(*)(val* self, val* p0))(var33->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__node_61d]))(var33, var_rnod); /* node= on <var33:RopeCharIteratorPiece>*/
9300 }
9301 {
9302 ((void(*)(val* self, short int p0))(var33->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__ldone_61d]))(var33, 1); /* ldone= on <var33:RopeCharIteratorPiece>*/
9303 }
9304 {
9305 ((void(*)(val* self, short int p0))(var33->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__rdone_61d]))(var33, 0); /* rdone= on <var33:RopeCharIteratorPiece>*/
9306 }
9307 {
9308 ((void(*)(val* self, val* p0))(var33->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__prev_61d]))(var33, var_r); /* prev= on <var33:RopeCharIteratorPiece>*/
9309 }
9310 {
9311 ((void(*)(val* self))(var33->class->vft[COLOR_core__kernel__Object__init]))(var33); /* init on <var33:RopeCharIteratorPiece>*/
9312 }
9313 var_r = var33;
9314 } else {
9315 var34 = var_rnod->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <var_rnod:String(Concat)> */
9316 if (unlikely(var34 == NULL)) {
9317 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
9318 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 916);
9319 fatal_exit(1);
9320 }
9321 var_rnod = var34;
9322 var35 = NEW_core__ropes__RopeCharIteratorPiece(&type_core__ropes__RopeCharIteratorPiece);
9323 {
9324 ((void(*)(val* self, val* p0))(var35->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__node_61d]))(var35, var_rnod); /* node= on <var35:RopeCharIteratorPiece>*/
9325 }
9326 {
9327 ((void(*)(val* self, short int p0))(var35->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__ldone_61d]))(var35, 1); /* ldone= on <var35:RopeCharIteratorPiece>*/
9328 }
9329 {
9330 ((void(*)(val* self, short int p0))(var35->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__rdone_61d]))(var35, 0); /* rdone= on <var35:RopeCharIteratorPiece>*/
9331 }
9332 {
9333 ((void(*)(val* self, val* p0))(var35->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__prev_61d]))(var35, var_r); /* prev= on <var35:RopeCharIteratorPiece>*/
9334 }
9335 {
9336 ((void(*)(val* self))(var35->class->vft[COLOR_core__kernel__Object__init]))(var35); /* init on <var35:RopeCharIteratorPiece>*/
9337 }
9338 var_r = var35;
9339 }
9340 } else {
9341 /* <var_rnod:String> isa FlatString */
9342 cltype37 = type_core__FlatString.color;
9343 idtype38 = type_core__FlatString.id;
9344 if(cltype37 >= var_rnod->type->table_size) {
9345 var36 = 0;
9346 } else {
9347 var36 = var_rnod->type->type_table[cltype37] == idtype38;
9348 }
9349 if (unlikely(!var36)) {
9350 var_class_name39 = var_rnod == NULL ? "null" : var_rnod->type->name;
9351 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "FlatString", var_class_name39);
9352 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 920);
9353 fatal_exit(1);
9354 }
9355 {
9356 { /* Inline ropes#RopeSubstrings#str= (self,var_rnod) on <self:RopeSubstrings> */
9357 self->attrs[COLOR_core__ropes__RopeSubstrings___str].val = var_rnod; /* _str on <self:RopeSubstrings> */
9358 RET_LABEL40:(void)0;
9359 }
9360 }
9361 {
9362 { /* Inline ropes#RopeCharIteratorPiece#rdone= (var_r,1) on <var_r:RopeCharIteratorPiece> */
9363 var_r->attrs[COLOR_core__ropes__RopeCharIteratorPiece___rdone].s = 1; /* _rdone on <var_r:RopeCharIteratorPiece> */
9364 RET_LABEL41:(void)0;
9365 }
9366 }
9367 {
9368 { /* Inline ropes#RopeSubstrings#iter= (self,var_r) on <self:RopeSubstrings> */
9369 self->attrs[COLOR_core__ropes__RopeSubstrings___iter].val = var_r; /* _iter on <self:RopeSubstrings> */
9370 RET_LABEL42:(void)0;
9371 }
9372 }
9373 {
9374 { /* Inline kernel#Int#- (var_pos,var_off) on <var_pos:Int> */
9375 /* Covariant cast for argument 0 (i) <var_off:Int> isa OTHER */
9376 /* <var_off:Int> isa OTHER */
9377 var45 = 1; /* easy <var_off:Int> isa OTHER*/
9378 if (unlikely(!var45)) {
9379 var_class_name48 = type_core__Int.name;
9380 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48);
9381 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
9382 fatal_exit(1);
9383 }
9384 var49 = var_pos - var_off;
9385 var43 = var49;
9386 goto RET_LABEL44;
9387 RET_LABEL44:(void)0;
9388 }
9389 }
9390 {
9391 { /* Inline ropes#RopeSubstrings#pos= (self,var43) on <self:RopeSubstrings> */
9392 self->attrs[COLOR_core__ropes__RopeSubstrings___pos].l = var43; /* _pos on <self:RopeSubstrings> */
9393 RET_LABEL50:(void)0;
9394 }
9395 }
9396 goto BREAK_label;
9397 }
9398 }
9399 BREAK_label: (void)0;
9400 RET_LABEL:;
9401 }
9402 /* method ropes#RopeSubstrings#item for (self: RopeSubstrings): FlatString */
9403 val* core__ropes___core__ropes__RopeSubstrings___core__abstract_collection__Iterator__item(val* self) {
9404 val* var /* : FlatString */;
9405 val* var1 /* : FlatString */;
9406 val* var3 /* : FlatString */;
9407 {
9408 { /* Inline ropes#RopeSubstrings#str (self) on <self:RopeSubstrings> */
9409 var3 = self->attrs[COLOR_core__ropes__RopeSubstrings___str].val; /* _str on <self:RopeSubstrings> */
9410 if (unlikely(var3 == NULL)) {
9411 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
9412 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 900);
9413 fatal_exit(1);
9414 }
9415 var1 = var3;
9416 RET_LABEL2:(void)0;
9417 }
9418 }
9419 var = var1;
9420 goto RET_LABEL;
9421 RET_LABEL:;
9422 return var;
9423 }
9424 /* method ropes#RopeSubstrings#is_ok for (self: RopeSubstrings): Bool */
9425 short int core__ropes___core__ropes__RopeSubstrings___core__abstract_collection__Iterator__is_ok(val* self) {
9426 short int var /* : Bool */;
9427 long var1 /* : Int */;
9428 long var3 /* : Int */;
9429 long var4 /* : Int */;
9430 long var6 /* : Int */;
9431 short int var7 /* : Bool */;
9432 short int var9 /* : Bool */;
9433 int cltype;
9434 int idtype;
9435 const char* var_class_name;
9436 short int var10 /* : Bool */;
9437 {
9438 { /* Inline ropes#RopeSubstrings#pos (self) on <self:RopeSubstrings> */
9439 var3 = self->attrs[COLOR_core__ropes__RopeSubstrings___pos].l; /* _pos on <self:RopeSubstrings> */
9440 var1 = var3;
9441 RET_LABEL2:(void)0;
9442 }
9443 }
9444 {
9445 { /* Inline ropes#RopeSubstrings#max (self) on <self:RopeSubstrings> */
9446 var6 = self->attrs[COLOR_core__ropes__RopeSubstrings___max].l; /* _max on <self:RopeSubstrings> */
9447 var4 = var6;
9448 RET_LABEL5:(void)0;
9449 }
9450 }
9451 {
9452 { /* Inline kernel#Int#<= (var1,var4) on <var1:Int> */
9453 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
9454 /* <var4:Int> isa OTHER */
9455 var9 = 1; /* easy <var4:Int> isa OTHER*/
9456 if (unlikely(!var9)) {
9457 var_class_name = type_core__Int.name;
9458 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
9459 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
9460 fatal_exit(1);
9461 }
9462 var10 = var1 <= var4;
9463 var7 = var10;
9464 goto RET_LABEL8;
9465 RET_LABEL8:(void)0;
9466 }
9467 }
9468 var = var7;
9469 goto RET_LABEL;
9470 RET_LABEL:;
9471 return var;
9472 }
9473 /* method ropes#RopeSubstrings#index for (self: RopeSubstrings): Int */
9474 long core__ropes___core__ropes__RopeSubstrings___core__abstract_collection__IndexedIterator__index(val* self) {
9475 long var /* : Int */;
9476 long var1 /* : Int */;
9477 long var3 /* : Int */;
9478 {
9479 { /* Inline ropes#RopeSubstrings#pos (self) on <self:RopeSubstrings> */
9480 var3 = self->attrs[COLOR_core__ropes__RopeSubstrings___pos].l; /* _pos on <self:RopeSubstrings> */
9481 var1 = var3;
9482 RET_LABEL2:(void)0;
9483 }
9484 }
9485 var = var1;
9486 goto RET_LABEL;
9487 RET_LABEL:;
9488 return var;
9489 }
9490 /* method ropes#RopeSubstrings#next for (self: RopeSubstrings) */
9491 void core__ropes___core__ropes__RopeSubstrings___core__abstract_collection__Iterator__next(val* self) {
9492 val* var_ /* var : RopeSubstrings */;
9493 long var /* : Int */;
9494 long var2 /* : Int */;
9495 val* var3 /* : FlatString */;
9496 val* var5 /* : FlatString */;
9497 long var6 /* : Int */;
9498 long var8 /* : Int */;
9499 long var9 /* : Int */;
9500 short int var11 /* : Bool */;
9501 int cltype;
9502 int idtype;
9503 const char* var_class_name;
9504 long var12 /* : Int */;
9505 long var14 /* : Int */;
9506 long var16 /* : Int */;
9507 long var17 /* : Int */;
9508 long var19 /* : Int */;
9509 short int var20 /* : Bool */;
9510 short int var22 /* : Bool */;
9511 int cltype23;
9512 int idtype24;
9513 const char* var_class_name25;
9514 short int var26 /* : Bool */;
9515 val* var27 /* : RopeCharIteratorPiece */;
9516 val* var29 /* : RopeCharIteratorPiece */;
9517 val* var30 /* : nullable RopeCharIteratorPiece */;
9518 val* var32 /* : nullable RopeCharIteratorPiece */;
9519 val* var_it /* var it: nullable RopeCharIteratorPiece */;
9520 val* var33 /* : String */;
9521 val* var35 /* : String */;
9522 val* var_rnod /* var rnod: String */;
9523 short int var36 /* : Bool */;
9524 int cltype37;
9525 int idtype38;
9526 short int var39 /* : Bool */;
9527 short int var42 /* : Bool */;
9528 int cltype43;
9529 int idtype44;
9530 const char* var_class_name45;
9531 short int var48 /* : Bool */;
9532 short int var50 /* : Bool */;
9533 short int var51 /* : Bool */;
9534 val* var52 /* : String */;
9535 val* var54 /* : RopeCharIteratorPiece */;
9536 short int var55 /* : Bool */;
9537 short int var57 /* : Bool */;
9538 short int var58 /* : Bool */;
9539 val* var60 /* : String */;
9540 val* var61 /* : RopeCharIteratorPiece */;
9541 val* var62 /* : nullable RopeCharIteratorPiece */;
9542 val* var64 /* : nullable RopeCharIteratorPiece */;
9543 val* var65 /* : String */;
9544 val* var67 /* : String */;
9545 var_ = self;
9546 {
9547 { /* Inline ropes#RopeSubstrings#pos (var_) on <var_:RopeSubstrings> */
9548 var2 = var_->attrs[COLOR_core__ropes__RopeSubstrings___pos].l; /* _pos on <var_:RopeSubstrings> */
9549 var = var2;
9550 RET_LABEL1:(void)0;
9551 }
9552 }
9553 {
9554 { /* Inline ropes#RopeSubstrings#str (self) on <self:RopeSubstrings> */
9555 var5 = self->attrs[COLOR_core__ropes__RopeSubstrings___str].val; /* _str on <self:RopeSubstrings> */
9556 if (unlikely(var5 == NULL)) {
9557 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
9558 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 900);
9559 fatal_exit(1);
9560 }
9561 var3 = var5;
9562 RET_LABEL4:(void)0;
9563 }
9564 }
9565 {
9566 { /* Inline abstract_text#FlatText#length (var3) on <var3:FlatString> */
9567 var8 = var3->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <var3:FlatString> */
9568 var6 = var8;
9569 RET_LABEL7:(void)0;
9570 }
9571 }
9572 {
9573 { /* Inline kernel#Int#+ (var,var6) on <var:Int> */
9574 /* Covariant cast for argument 0 (i) <var6:Int> isa OTHER */
9575 /* <var6:Int> isa OTHER */
9576 var11 = 1; /* easy <var6:Int> isa OTHER*/
9577 if (unlikely(!var11)) {
9578 var_class_name = type_core__Int.name;
9579 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
9580 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
9581 fatal_exit(1);
9582 }
9583 var12 = var + var6;
9584 var9 = var12;
9585 goto RET_LABEL10;
9586 RET_LABEL10:(void)0;
9587 }
9588 }
9589 {
9590 { /* Inline ropes#RopeSubstrings#pos= (var_,var9) on <var_:RopeSubstrings> */
9591 var_->attrs[COLOR_core__ropes__RopeSubstrings___pos].l = var9; /* _pos on <var_:RopeSubstrings> */
9592 RET_LABEL13:(void)0;
9593 }
9594 }
9595 {
9596 { /* Inline ropes#RopeSubstrings#pos (self) on <self:RopeSubstrings> */
9597 var16 = self->attrs[COLOR_core__ropes__RopeSubstrings___pos].l; /* _pos on <self:RopeSubstrings> */
9598 var14 = var16;
9599 RET_LABEL15:(void)0;
9600 }
9601 }
9602 {
9603 { /* Inline ropes#RopeSubstrings#max (self) on <self:RopeSubstrings> */
9604 var19 = self->attrs[COLOR_core__ropes__RopeSubstrings___max].l; /* _max on <self:RopeSubstrings> */
9605 var17 = var19;
9606 RET_LABEL18:(void)0;
9607 }
9608 }
9609 {
9610 { /* Inline kernel#Int#> (var14,var17) on <var14:Int> */
9611 /* Covariant cast for argument 0 (i) <var17:Int> isa OTHER */
9612 /* <var17:Int> isa OTHER */
9613 var22 = 1; /* easy <var17:Int> isa OTHER*/
9614 if (unlikely(!var22)) {
9615 var_class_name25 = type_core__Int.name;
9616 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25);
9617 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
9618 fatal_exit(1);
9619 }
9620 var26 = var14 > var17;
9621 var20 = var26;
9622 goto RET_LABEL21;
9623 RET_LABEL21:(void)0;
9624 }
9625 }
9626 if (var20){
9627 goto RET_LABEL;
9628 } else {
9629 }
9630 {
9631 { /* Inline ropes#RopeSubstrings#iter (self) on <self:RopeSubstrings> */
9632 var29 = self->attrs[COLOR_core__ropes__RopeSubstrings___iter].val; /* _iter on <self:RopeSubstrings> */
9633 if (unlikely(var29 == NULL)) {
9634 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
9635 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 893);
9636 fatal_exit(1);
9637 }
9638 var27 = var29;
9639 RET_LABEL28:(void)0;
9640 }
9641 }
9642 {
9643 { /* Inline ropes#RopeCharIteratorPiece#prev (var27) on <var27:RopeCharIteratorPiece> */
9644 var32 = var27->attrs[COLOR_core__ropes__RopeCharIteratorPiece___prev].val; /* _prev on <var27:RopeCharIteratorPiece> */
9645 var30 = var32;
9646 RET_LABEL31:(void)0;
9647 }
9648 }
9649 var_it = var30;
9650 if (var_it == NULL) {
9651 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9652 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 939);
9653 fatal_exit(1);
9654 } else {
9655 { /* Inline ropes#RopeCharIteratorPiece#node (var_it) on <var_it:nullable RopeCharIteratorPiece> */
9656 if (unlikely(var_it == NULL)) {
9657 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9658 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 612);
9659 fatal_exit(1);
9660 }
9661 var35 = var_it->attrs[COLOR_core__ropes__RopeCharIteratorPiece___node].val; /* _node on <var_it:nullable RopeCharIteratorPiece> */
9662 if (unlikely(var35 == NULL)) {
9663 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _node");
9664 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 612);
9665 fatal_exit(1);
9666 }
9667 var33 = var35;
9668 RET_LABEL34:(void)0;
9669 }
9670 }
9671 var_rnod = var33;
9672 for(;;) {
9673 /* <var_rnod:String> isa Concat */
9674 cltype37 = type_core__ropes__Concat.color;
9675 idtype38 = type_core__ropes__Concat.id;
9676 if(cltype37 >= var_rnod->type->table_size) {
9677 var36 = 0;
9678 } else {
9679 var36 = var_rnod->type->type_table[cltype37] == idtype38;
9680 }
9681 var39 = !var36;
9682 if (var39){
9683 if (var_it == NULL) {
9684 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9685 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 942);
9686 fatal_exit(1);
9687 } else {
9688 { /* Inline ropes#RopeCharIteratorPiece#ldone= (var_it,1) on <var_it:nullable RopeCharIteratorPiece> */
9689 if (unlikely(var_it == NULL)) {
9690 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9691 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 614);
9692 fatal_exit(1);
9693 }
9694 var_it->attrs[COLOR_core__ropes__RopeCharIteratorPiece___ldone].s = 1; /* _ldone on <var_it:nullable RopeCharIteratorPiece> */
9695 RET_LABEL40:(void)0;
9696 }
9697 }
9698 if (var_it == NULL) {
9699 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9700 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 943);
9701 fatal_exit(1);
9702 } else {
9703 { /* Inline ropes#RopeCharIteratorPiece#rdone= (var_it,1) on <var_it:nullable RopeCharIteratorPiece> */
9704 if (unlikely(var_it == NULL)) {
9705 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9706 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 616);
9707 fatal_exit(1);
9708 }
9709 var_it->attrs[COLOR_core__ropes__RopeCharIteratorPiece___rdone].s = 1; /* _rdone on <var_it:nullable RopeCharIteratorPiece> */
9710 RET_LABEL41:(void)0;
9711 }
9712 }
9713 /* <var_rnod:String> isa FlatString */
9714 cltype43 = type_core__FlatString.color;
9715 idtype44 = type_core__FlatString.id;
9716 if(cltype43 >= var_rnod->type->table_size) {
9717 var42 = 0;
9718 } else {
9719 var42 = var_rnod->type->type_table[cltype43] == idtype44;
9720 }
9721 if (unlikely(!var42)) {
9722 var_class_name45 = var_rnod == NULL ? "null" : var_rnod->type->name;
9723 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "FlatString", var_class_name45);
9724 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 944);
9725 fatal_exit(1);
9726 }
9727 {
9728 { /* Inline ropes#RopeSubstrings#str= (self,var_rnod) on <self:RopeSubstrings> */
9729 self->attrs[COLOR_core__ropes__RopeSubstrings___str].val = var_rnod; /* _str on <self:RopeSubstrings> */
9730 RET_LABEL46:(void)0;
9731 }
9732 }
9733 if (unlikely(var_it == NULL)) {
9734 PRINT_ERROR("Runtime error: %s", "Cast failed");
9735 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 945);
9736 fatal_exit(1);
9737 }
9738 {
9739 { /* Inline ropes#RopeSubstrings#iter= (self,var_it) on <self:RopeSubstrings> */
9740 self->attrs[COLOR_core__ropes__RopeSubstrings___iter].val = var_it; /* _iter on <self:RopeSubstrings> */
9741 RET_LABEL47:(void)0;
9742 }
9743 }
9744 goto BREAK_label;
9745 } else {
9746 }
9747 if (var_it == NULL) {
9748 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9749 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 948);
9750 fatal_exit(1);
9751 } else {
9752 { /* Inline ropes#RopeCharIteratorPiece#ldone (var_it) on <var_it:nullable RopeCharIteratorPiece> */
9753 if (unlikely(var_it == NULL)) {
9754 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9755 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 614);
9756 fatal_exit(1);
9757 }
9758 var50 = var_it->attrs[COLOR_core__ropes__RopeCharIteratorPiece___ldone].s; /* _ldone on <var_it:nullable RopeCharIteratorPiece> */
9759 var48 = var50;
9760 RET_LABEL49:(void)0;
9761 }
9762 }
9763 var51 = !var48;
9764 if (var51){
9765 var52 = var_rnod->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <var_rnod:String(Concat)> */
9766 if (unlikely(var52 == NULL)) {
9767 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
9768 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 949);
9769 fatal_exit(1);
9770 }
9771 var_rnod = var52;
9772 if (var_it == NULL) {
9773 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9774 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 950);
9775 fatal_exit(1);
9776 } else {
9777 { /* Inline ropes#RopeCharIteratorPiece#ldone= (var_it,1) on <var_it:nullable RopeCharIteratorPiece> */
9778 if (unlikely(var_it == NULL)) {
9779 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9780 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 614);
9781 fatal_exit(1);
9782 }
9783 var_it->attrs[COLOR_core__ropes__RopeCharIteratorPiece___ldone].s = 1; /* _ldone on <var_it:nullable RopeCharIteratorPiece> */
9784 RET_LABEL53:(void)0;
9785 }
9786 }
9787 var54 = NEW_core__ropes__RopeCharIteratorPiece(&type_core__ropes__RopeCharIteratorPiece);
9788 {
9789 ((void(*)(val* self, val* p0))(var54->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__node_61d]))(var54, var_rnod); /* node= on <var54:RopeCharIteratorPiece>*/
9790 }
9791 {
9792 ((void(*)(val* self, short int p0))(var54->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__ldone_61d]))(var54, 0); /* ldone= on <var54:RopeCharIteratorPiece>*/
9793 }
9794 {
9795 ((void(*)(val* self, short int p0))(var54->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__rdone_61d]))(var54, 0); /* rdone= on <var54:RopeCharIteratorPiece>*/
9796 }
9797 {
9798 ((void(*)(val* self, val* p0))(var54->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__prev_61d]))(var54, var_it); /* prev= on <var54:RopeCharIteratorPiece>*/
9799 }
9800 {
9801 ((void(*)(val* self))(var54->class->vft[COLOR_core__kernel__Object__init]))(var54); /* init on <var54:RopeCharIteratorPiece>*/
9802 }
9803 var_it = var54;
9804 } else {
9805 if (var_it == NULL) {
9806 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9807 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 952);
9808 fatal_exit(1);
9809 } else {
9810 { /* Inline ropes#RopeCharIteratorPiece#rdone (var_it) on <var_it:nullable RopeCharIteratorPiece> */
9811 if (unlikely(var_it == NULL)) {
9812 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9813 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 616);
9814 fatal_exit(1);
9815 }
9816 var57 = var_it->attrs[COLOR_core__ropes__RopeCharIteratorPiece___rdone].s; /* _rdone on <var_it:nullable RopeCharIteratorPiece> */
9817 var55 = var57;
9818 RET_LABEL56:(void)0;
9819 }
9820 }
9821 var58 = !var55;
9822 if (var58){
9823 if (var_it == NULL) {
9824 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9825 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 953);
9826 fatal_exit(1);
9827 } else {
9828 { /* Inline ropes#RopeCharIteratorPiece#rdone= (var_it,1) on <var_it:nullable RopeCharIteratorPiece> */
9829 if (unlikely(var_it == NULL)) {
9830 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9831 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 616);
9832 fatal_exit(1);
9833 }
9834 var_it->attrs[COLOR_core__ropes__RopeCharIteratorPiece___rdone].s = 1; /* _rdone on <var_it:nullable RopeCharIteratorPiece> */
9835 RET_LABEL59:(void)0;
9836 }
9837 }
9838 var60 = var_rnod->attrs[COLOR_core__ropes__Concat___right].val; /* _right on <var_rnod:String(Concat)> */
9839 if (unlikely(var60 == NULL)) {
9840 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
9841 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 954);
9842 fatal_exit(1);
9843 }
9844 var_rnod = var60;
9845 var61 = NEW_core__ropes__RopeCharIteratorPiece(&type_core__ropes__RopeCharIteratorPiece);
9846 {
9847 ((void(*)(val* self, val* p0))(var61->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__node_61d]))(var61, var_rnod); /* node= on <var61:RopeCharIteratorPiece>*/
9848 }
9849 {
9850 ((void(*)(val* self, short int p0))(var61->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__ldone_61d]))(var61, 0); /* ldone= on <var61:RopeCharIteratorPiece>*/
9851 }
9852 {
9853 ((void(*)(val* self, short int p0))(var61->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__rdone_61d]))(var61, 0); /* rdone= on <var61:RopeCharIteratorPiece>*/
9854 }
9855 {
9856 ((void(*)(val* self, val* p0))(var61->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__prev_61d]))(var61, var_it); /* prev= on <var61:RopeCharIteratorPiece>*/
9857 }
9858 {
9859 ((void(*)(val* self))(var61->class->vft[COLOR_core__kernel__Object__init]))(var61); /* init on <var61:RopeCharIteratorPiece>*/
9860 }
9861 var_it = var61;
9862 } else {
9863 if (var_it == NULL) {
9864 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9865 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 957);
9866 fatal_exit(1);
9867 } else {
9868 { /* Inline ropes#RopeCharIteratorPiece#prev (var_it) on <var_it:nullable RopeCharIteratorPiece> */
9869 if (unlikely(var_it == NULL)) {
9870 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9871 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 618);
9872 fatal_exit(1);
9873 }
9874 var64 = var_it->attrs[COLOR_core__ropes__RopeCharIteratorPiece___prev].val; /* _prev on <var_it:nullable RopeCharIteratorPiece> */
9875 var62 = var64;
9876 RET_LABEL63:(void)0;
9877 }
9878 }
9879 var_it = var62;
9880 if (var_it == NULL) {
9881 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9882 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 958);
9883 fatal_exit(1);
9884 } else {
9885 { /* Inline ropes#RopeCharIteratorPiece#node (var_it) on <var_it:nullable RopeCharIteratorPiece> */
9886 if (unlikely(var_it == NULL)) {
9887 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9888 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 612);
9889 fatal_exit(1);
9890 }
9891 var67 = var_it->attrs[COLOR_core__ropes__RopeCharIteratorPiece___node].val; /* _node on <var_it:nullable RopeCharIteratorPiece> */
9892 if (unlikely(var67 == NULL)) {
9893 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _node");
9894 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 612);
9895 fatal_exit(1);
9896 }
9897 var65 = var67;
9898 RET_LABEL66:(void)0;
9899 }
9900 }
9901 var_rnod = var65;
9902 goto BREAK_label68;
9903 }
9904 }
9905 BREAK_label68: (void)0;
9906 }
9907 BREAK_label: (void)0;
9908 RET_LABEL:;
9909 }
9910 /* method ropes#RopeChars#[] for (self: RopeChars, Int): Char */
9911 uint32_t core__ropes___core__ropes__RopeChars___core__abstract_collection__SequenceRead___91d_93d(val* self, long p0) {
9912 uint32_t var /* : Char */;
9913 long var_i /* var i: Int */;
9914 val* var1 /* : Text */;
9915 val* var3 /* : Text */;
9916 uint32_t var4 /* : Char */;
9917 var_i = p0;
9918 {
9919 { /* Inline abstract_text#StringCharView#target (self) on <self:RopeChars> */
9920 var3 = self->attrs[COLOR_core__abstract_text__StringCharView___target].val; /* _target on <self:RopeChars> */
9921 if (unlikely(var3 == NULL)) {
9922 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
9923 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1138);
9924 fatal_exit(1);
9925 }
9926 var1 = var3;
9927 RET_LABEL2:(void)0;
9928 }
9929 }
9930 {
9931 var4 = core__ropes___core__ropes__Concat___core__abstract_text__Text___91d_93d(var1, var_i);
9932 }
9933 var = var4;
9934 goto RET_LABEL;
9935 RET_LABEL:;
9936 return var;
9937 }
9938 /* method ropes#RopeChars#[] for (self: SequenceRead[nullable Object], Int): nullable Object */
9939 val* VIRTUAL_core__ropes___core__ropes__RopeChars___core__abstract_collection__SequenceRead___91d_93d(val* self, long p0) {
9940 val* var /* : nullable Object */;
9941 uint32_t var1 /* : Char */;
9942 val* var2 /* : nullable Object */;
9943 var1 = core__ropes___core__ropes__RopeChars___core__abstract_collection__SequenceRead___91d_93d(self, p0);
9944 var2 = (val*)((long)(var1)<<2|2);
9945 var = var2;
9946 RET_LABEL:;
9947 return var;
9948 }
9949 /* method ropes#RopeChars#iterator_from for (self: RopeChars, Int): IndexedIterator[Char] */
9950 val* core__ropes___core__ropes__RopeChars___core__abstract_collection__SequenceRead__iterator_from(val* self, long p0) {
9951 val* var /* : IndexedIterator[Char] */;
9952 long var_i /* var i: Int */;
9953 val* var1 /* : RopeCharIterator */;
9954 val* var2 /* : Text */;
9955 val* var4 /* : Text */;
9956 var_i = p0;
9957 var1 = NEW_core__ropes__RopeCharIterator(&type_core__ropes__RopeCharIterator);
9958 {
9959 { /* Inline abstract_text#StringCharView#target (self) on <self:RopeChars> */
9960 var4 = self->attrs[COLOR_core__abstract_text__StringCharView___target].val; /* _target on <self:RopeChars> */
9961 if (unlikely(var4 == NULL)) {
9962 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
9963 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1138);
9964 fatal_exit(1);
9965 }
9966 var2 = var4;
9967 RET_LABEL3:(void)0;
9968 }
9969 }
9970 {
9971 core__ropes___core__ropes__RopeCharIterator___from(var1, var2, var_i); /* Direct call ropes#RopeCharIterator#from on <var1:RopeCharIterator>*/
9972 }
9973 var = var1;
9974 goto RET_LABEL;
9975 RET_LABEL:;
9976 return var;
9977 }