X-Git-Url: http://nitlanguage.org diff --git a/c_src/separate_compiler.sep.1.c b/c_src/separate_compiler.sep.1.c index 2d3af0d..562c279 100644 --- a/c_src/separate_compiler.sep.1.c +++ b/c_src/separate_compiler.sep.1.c @@ -6,7 +6,7 @@ val* var1 /* : OptionBool */; var1 = self->attrs[COLOR_separate_compiler__ToolContext___opt_separate].val; /* _opt_separate on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_separate"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 24); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 24); show_backtrace(1); } var = var1; @@ -22,7 +22,7 @@ val* var3 /* : OptionBool */; var3 = self->attrs[COLOR_separate_compiler__ToolContext___opt_separate].val; /* _opt_separate on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_separate"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 24); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 24); show_backtrace(1); } var1 = var3; @@ -39,7 +39,7 @@ val* var1 /* : OptionBool */; var1 = self->attrs[COLOR_separate_compiler__ToolContext___opt_no_inline_intern].val; /* _opt_no_inline_intern on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_inline_intern"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 26); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 26); show_backtrace(1); } var = var1; @@ -55,7 +55,7 @@ val* var3 /* : OptionBool */; var3 = self->attrs[COLOR_separate_compiler__ToolContext___opt_no_inline_intern].val; /* _opt_no_inline_intern on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_inline_intern"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 26); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 26); show_backtrace(1); } var1 = var3; @@ -72,7 +72,7 @@ val* var1 /* : OptionBool */; var1 = self->attrs[COLOR_separate_compiler__ToolContext___opt_no_union_attribute].val; /* _opt_no_union_attribute on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_union_attribute"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 28); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 28); show_backtrace(1); } var = var1; @@ -88,7 +88,7 @@ val* var3 /* : OptionBool */; var3 = self->attrs[COLOR_separate_compiler__ToolContext___opt_no_union_attribute].val; /* _opt_no_union_attribute on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_union_attribute"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 28); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 28); show_backtrace(1); } var1 = var3; @@ -105,7 +105,7 @@ val* var1 /* : OptionBool */; var1 = self->attrs[COLOR_separate_compiler__ToolContext___opt_no_shortcut_equate].val; /* _opt_no_shortcut_equate on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_shortcut_equate"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 30); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 30); show_backtrace(1); } var = var1; @@ -121,7 +121,7 @@ val* var3 /* : OptionBool */; var3 = self->attrs[COLOR_separate_compiler__ToolContext___opt_no_shortcut_equate].val; /* _opt_no_shortcut_equate on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_shortcut_equate"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 30); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 30); show_backtrace(1); } var1 = var3; @@ -138,7 +138,7 @@ val* var1 /* : OptionBool */; var1 = self->attrs[COLOR_separate_compiler__ToolContext___opt_inline_coloring_numbers].val; /* _opt_inline_coloring_numbers on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_coloring_numbers"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 32); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 32); show_backtrace(1); } var = var1; @@ -154,7 +154,7 @@ val* var3 /* : OptionBool */; var3 = self->attrs[COLOR_separate_compiler__ToolContext___opt_inline_coloring_numbers].val; /* _opt_inline_coloring_numbers on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_coloring_numbers"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 32); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 32); show_backtrace(1); } var1 = var3; @@ -171,7 +171,7 @@ val* var1 /* : OptionBool */; var1 = self->attrs[COLOR_separate_compiler__ToolContext___opt_inline_some_methods].val; /* _opt_inline_some_methods on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_some_methods"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 34); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 34); show_backtrace(1); } var = var1; @@ -187,7 +187,7 @@ val* var3 /* : OptionBool */; var3 = self->attrs[COLOR_separate_compiler__ToolContext___opt_inline_some_methods].val; /* _opt_inline_some_methods on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_some_methods"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 34); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 34); show_backtrace(1); } var1 = var3; @@ -204,7 +204,7 @@ val* var1 /* : OptionBool */; var1 = self->attrs[COLOR_separate_compiler__ToolContext___opt_direct_call_monomorph].val; /* _opt_direct_call_monomorph on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_direct_call_monomorph"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 36); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 36); show_backtrace(1); } var = var1; @@ -220,7 +220,7 @@ val* var3 /* : OptionBool */; var3 = self->attrs[COLOR_separate_compiler__ToolContext___opt_direct_call_monomorph].val; /* _opt_direct_call_monomorph on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_direct_call_monomorph"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 36); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 36); show_backtrace(1); } var1 = var3; @@ -237,7 +237,7 @@ val* var1 /* : OptionBool */; var1 = self->attrs[COLOR_separate_compiler__ToolContext___opt_skip_dead_methods].val; /* _opt_skip_dead_methods on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_skip_dead_methods"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 38); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 38); show_backtrace(1); } var = var1; @@ -253,7 +253,7 @@ val* var3 /* : OptionBool */; var3 = self->attrs[COLOR_separate_compiler__ToolContext___opt_skip_dead_methods].val; /* _opt_skip_dead_methods on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_skip_dead_methods"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 38); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 38); show_backtrace(1); } var1 = var3; @@ -270,7 +270,7 @@ val* var1 /* : OptionBool */; var1 = self->attrs[COLOR_separate_compiler__ToolContext___opt_semi_global].val; /* _opt_semi_global on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_semi_global"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 40); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 40); show_backtrace(1); } var = var1; @@ -286,7 +286,7 @@ val* var3 /* : OptionBool */; var3 = self->attrs[COLOR_separate_compiler__ToolContext___opt_semi_global].val; /* _opt_semi_global on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_semi_global"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 40); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 40); show_backtrace(1); } var1 = var3; @@ -303,7 +303,7 @@ val* var1 /* : OptionBool */; var1 = self->attrs[COLOR_separate_compiler__ToolContext___opt_colo_dead_methods].val; /* _opt_colo_dead_methods on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_colo_dead_methods"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 42); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 42); show_backtrace(1); } var = var1; @@ -319,7 +319,7 @@ val* var3 /* : OptionBool */; var3 = self->attrs[COLOR_separate_compiler__ToolContext___opt_colo_dead_methods].val; /* _opt_colo_dead_methods on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_colo_dead_methods"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 42); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 42); show_backtrace(1); } var1 = var3; @@ -336,7 +336,7 @@ val* var1 /* : OptionBool */; var1 = self->attrs[COLOR_separate_compiler__ToolContext___opt_tables_metrics].val; /* _opt_tables_metrics on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_tables_metrics"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 44); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 44); show_backtrace(1); } var = var1; @@ -352,7 +352,7 @@ val* var3 /* : OptionBool */; var3 = self->attrs[COLOR_separate_compiler__ToolContext___opt_tables_metrics].val; /* _opt_tables_metrics on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_tables_metrics"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 44); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 44); show_backtrace(1); } var1 = var3; @@ -429,7 +429,7 @@ val* var74 /* : NativeArray[Option] */; var2 = self->attrs[COLOR_toolcontext__ToolContext___option_context].val; /* _option_context on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context"); -PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 166); +PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231); show_backtrace(1); } var = var2; @@ -441,7 +441,7 @@ RET_LABEL1:(void)0; var5 = self->attrs[COLOR_separate_compiler__ToolContext___opt_separate].val; /* _opt_separate on */ if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_separate"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 24); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 24); show_backtrace(1); } var3 = var5; @@ -465,7 +465,7 @@ opts__OptionContext__add_option(var, var6); /* Direct call opts#OptionContext#ad var11 = self->attrs[COLOR_toolcontext__ToolContext___option_context].val; /* _option_context on */ if (unlikely(var11 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context"); -PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 166); +PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231); show_backtrace(1); } var9 = var11; @@ -477,7 +477,7 @@ RET_LABEL10:(void)0; var14 = self->attrs[COLOR_separate_compiler__ToolContext___opt_no_inline_intern].val; /* _opt_no_inline_intern on */ if (unlikely(var14 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_inline_intern"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 26); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 26); show_backtrace(1); } var12 = var14; @@ -501,7 +501,7 @@ opts__OptionContext__add_option(var9, var15); /* Direct call opts#OptionContext# var20 = self->attrs[COLOR_toolcontext__ToolContext___option_context].val; /* _option_context on */ if (unlikely(var20 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context"); -PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 166); +PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231); show_backtrace(1); } var18 = var20; @@ -513,7 +513,7 @@ RET_LABEL19:(void)0; var23 = self->attrs[COLOR_separate_compiler__ToolContext___opt_no_union_attribute].val; /* _opt_no_union_attribute on */ if (unlikely(var23 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_union_attribute"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 28); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 28); show_backtrace(1); } var21 = var23; @@ -537,7 +537,7 @@ opts__OptionContext__add_option(var18, var24); /* Direct call opts#OptionContext var29 = self->attrs[COLOR_toolcontext__ToolContext___option_context].val; /* _option_context on */ if (unlikely(var29 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context"); -PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 166); +PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231); show_backtrace(1); } var27 = var29; @@ -549,7 +549,7 @@ RET_LABEL28:(void)0; var32 = self->attrs[COLOR_separate_compiler__ToolContext___opt_no_shortcut_equate].val; /* _opt_no_shortcut_equate on */ if (unlikely(var32 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_shortcut_equate"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 30); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 30); show_backtrace(1); } var30 = var32; @@ -573,7 +573,7 @@ opts__OptionContext__add_option(var27, var33); /* Direct call opts#OptionContext var38 = self->attrs[COLOR_toolcontext__ToolContext___option_context].val; /* _option_context on */ if (unlikely(var38 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context"); -PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 166); +PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231); show_backtrace(1); } var36 = var38; @@ -585,7 +585,7 @@ RET_LABEL37:(void)0; var41 = self->attrs[COLOR_separate_compiler__ToolContext___opt_inline_coloring_numbers].val; /* _opt_inline_coloring_numbers on */ if (unlikely(var41 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_coloring_numbers"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 32); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 32); show_backtrace(1); } var39 = var41; @@ -597,7 +597,7 @@ RET_LABEL40:(void)0; var44 = self->attrs[COLOR_separate_compiler__ToolContext___opt_inline_some_methods].val; /* _opt_inline_some_methods on */ if (unlikely(var44 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_some_methods"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 34); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 34); show_backtrace(1); } var42 = var44; @@ -609,7 +609,7 @@ RET_LABEL43:(void)0; var47 = self->attrs[COLOR_separate_compiler__ToolContext___opt_direct_call_monomorph].val; /* _opt_direct_call_monomorph on */ if (unlikely(var47 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_direct_call_monomorph"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 36); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 36); show_backtrace(1); } var45 = var47; @@ -621,7 +621,7 @@ RET_LABEL46:(void)0; var50 = self->attrs[COLOR_separate_compiler__ToolContext___opt_skip_dead_methods].val; /* _opt_skip_dead_methods on */ if (unlikely(var50 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_skip_dead_methods"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 38); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 38); show_backtrace(1); } var48 = var50; @@ -633,7 +633,7 @@ RET_LABEL49:(void)0; var53 = self->attrs[COLOR_separate_compiler__ToolContext___opt_semi_global].val; /* _opt_semi_global on */ if (unlikely(var53 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_semi_global"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 40); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 40); show_backtrace(1); } var51 = var53; @@ -661,7 +661,7 @@ opts__OptionContext__add_option(var36, var54); /* Direct call opts#OptionContext var59 = self->attrs[COLOR_toolcontext__ToolContext___option_context].val; /* _option_context on */ if (unlikely(var59 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context"); -PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 166); +PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231); show_backtrace(1); } var57 = var59; @@ -673,7 +673,7 @@ RET_LABEL58:(void)0; var62 = self->attrs[COLOR_separate_compiler__ToolContext___opt_colo_dead_methods].val; /* _opt_colo_dead_methods on */ if (unlikely(var62 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_colo_dead_methods"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 42); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 42); show_backtrace(1); } var60 = var62; @@ -697,7 +697,7 @@ opts__OptionContext__add_option(var57, var63); /* Direct call opts#OptionContext var68 = self->attrs[COLOR_toolcontext__ToolContext___option_context].val; /* _option_context on */ if (unlikely(var68 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context"); -PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 166); +PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231); show_backtrace(1); } var66 = var68; @@ -709,7 +709,7 @@ RET_LABEL67:(void)0; var71 = self->attrs[COLOR_separate_compiler__ToolContext___opt_tables_metrics].val; /* _opt_tables_metrics on */ if (unlikely(var71 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_tables_metrics"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 44); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 44); show_backtrace(1); } var69 = var71; @@ -790,7 +790,7 @@ var_tc = self; var2 = var_tc->attrs[COLOR_separate_compiler__ToolContext___opt_semi_global].val; /* _opt_semi_global on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_semi_global"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 40); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 40); show_backtrace(1); } var = var2; @@ -811,7 +811,7 @@ if (var6){ var9 = var_tc->attrs[COLOR_separate_compiler__ToolContext___opt_inline_coloring_numbers].val; /* _opt_inline_coloring_numbers on */ if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_coloring_numbers"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 32); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 32); show_backtrace(1); } var7 = var9; @@ -834,7 +834,7 @@ var12 = (&type_kernel__Bool)->type_table[cltype] == idtype; if (unlikely(!var12)) { var_class_name = type_kernel__Bool.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/opts.nit", 40); +PRINT_ERROR(" (%s:%d)\n", "../lib/opts.nit", 40); show_backtrace(1); } var13 = BOX_kernel__Bool(var10); /* autobox from Bool to nullable Object */ @@ -847,7 +847,7 @@ RET_LABEL11:(void)0; var16 = var_tc->attrs[COLOR_separate_compiler__ToolContext___opt_inline_some_methods].val; /* _opt_inline_some_methods on */ if (unlikely(var16 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_some_methods"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 34); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 34); show_backtrace(1); } var14 = var16; @@ -870,7 +870,7 @@ var19 = (&type_kernel__Bool)->type_table[cltype20] == idtype21; if (unlikely(!var19)) { var_class_name23 = type_kernel__Bool.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name23); -PRINT_ERROR(" (%s:%d)\n", "lib/opts.nit", 40); +PRINT_ERROR(" (%s:%d)\n", "../lib/opts.nit", 40); show_backtrace(1); } var24 = BOX_kernel__Bool(var17); /* autobox from Bool to nullable Object */ @@ -883,7 +883,7 @@ RET_LABEL18:(void)0; var27 = var_tc->attrs[COLOR_separate_compiler__ToolContext___opt_direct_call_monomorph].val; /* _opt_direct_call_monomorph on */ if (unlikely(var27 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_direct_call_monomorph"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 36); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 36); show_backtrace(1); } var25 = var27; @@ -906,7 +906,7 @@ var30 = (&type_kernel__Bool)->type_table[cltype31] == idtype32; if (unlikely(!var30)) { var_class_name34 = type_kernel__Bool.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name34); -PRINT_ERROR(" (%s:%d)\n", "lib/opts.nit", 40); +PRINT_ERROR(" (%s:%d)\n", "../lib/opts.nit", 40); show_backtrace(1); } var35 = BOX_kernel__Bool(var28); /* autobox from Bool to nullable Object */ @@ -919,7 +919,7 @@ RET_LABEL29:(void)0; var38 = var_tc->attrs[COLOR_separate_compiler__ToolContext___opt_skip_dead_methods].val; /* _opt_skip_dead_methods on */ if (unlikely(var38 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_skip_dead_methods"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 38); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 38); show_backtrace(1); } var36 = var38; @@ -942,7 +942,7 @@ var41 = (&type_kernel__Bool)->type_table[cltype42] == idtype43; if (unlikely(!var41)) { var_class_name45 = type_kernel__Bool.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name45); -PRINT_ERROR(" (%s:%d)\n", "lib/opts.nit", 40); +PRINT_ERROR(" (%s:%d)\n", "../lib/opts.nit", 40); show_backtrace(1); } var46 = BOX_kernel__Bool(var39); /* autobox from Bool to nullable Object */ @@ -984,7 +984,7 @@ var_given_mmodules = p1; var2 = self->attrs[COLOR_phase__Phase___toolcontext].val; /* _toolcontext on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); -PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 145); +PRINT_ERROR(" (%s:%d)\n", "phase.nit", 162); show_backtrace(1); } var = var2; @@ -996,7 +996,7 @@ RET_LABEL1:(void)0; var5 = var->attrs[COLOR_separate_compiler__ToolContext___opt_separate].val; /* _opt_separate on */ if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_separate"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 24); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 24); show_backtrace(1); } var3 = var5; @@ -1021,7 +1021,7 @@ goto RET_LABEL; var13 = self->attrs[COLOR_phase__Phase___toolcontext].val; /* _toolcontext on */ if (unlikely(var13 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); -PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 145); +PRINT_ERROR(" (%s:%d)\n", "phase.nit", 162); show_backtrace(1); } var11 = var13; @@ -1051,7 +1051,7 @@ void separate_compiler__ModelBuilder__run_separate_compiler(val* self, val* p0, val* var_mainmodule /* var mainmodule: MModule */; val* var_runtime_type_analysis /* var runtime_type_analysis: nullable RapidTypeAnalysis */; long var /* : Int */; -long var2 /* : Int */; +long var2 /* : Int for extern */; long var_time0 /* var time0: Int */; val* var3 /* : ToolContext */; val* var5 /* : ToolContext */; @@ -1086,136 +1086,129 @@ val* var33 /* : CodeFile */; val* var34 /* : POSetElement[MModule] */; val* var36 /* : POSetElement[MModule] */; val* var37 /* : Collection[Object] */; +val* var_ /* var : Collection[MModule] */; val* var38 /* : Iterator[nullable Object] */; -short int var39 /* : Bool */; -val* var40 /* : nullable Object */; +val* var_39 /* var : Iterator[MModule] */; +short int var40 /* : Bool */; +val* var41 /* : nullable Object */; val* var_m /* var m: MModule */; -val* var41 /* : Array[MClass] */; -val* var43 /* : Array[MClass] */; -val* var44 /* : ArrayIterator[nullable Object] */; -short int var45 /* : Bool */; -val* var46 /* : nullable Object */; +val* var42 /* : Array[MClass] */; +val* var44 /* : Array[MClass] */; +val* var_45 /* var : Array[MClass] */; +val* var46 /* : ArrayIterator[nullable Object] */; +val* var_47 /* var : ArrayIterator[MClass] */; +short int var48 /* : Bool */; +val* var49 /* : nullable Object */; val* var_mclass /* var mclass: MClass */; -short int var47 /* : Bool */; -val* var48 /* : MClassKind */; -val* var50 /* : MClassKind */; -val* var51 /* : MClassKind */; -short int var52 /* : Bool */; -short int var53 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var55 /* : Bool */; -short int var57 /* : Bool */; -short int var_ /* var : Bool */; -val* var58 /* : MClassKind */; -val* var60 /* : MClassKind */; -val* var61 /* : MClassKind */; -short int var62 /* : Bool */; -short int var63 /* : Bool */; -short int var65 /* : Bool */; -short int var67 /* : Bool */; -val* var69 /* : String */; -val* var71 /* : String */; -static val* varonce72; -val* var73 /* : String */; -char* var74 /* : NativeString */; -long var75 /* : Int */; -val* var76 /* : FlatString */; -val* var77 /* : Array[Object] */; -long var78 /* : Int */; -val* var79 /* : NativeArray[Object] */; +val* var53 /* : String */; +val* var55 /* : String */; +static val* varonce56; +val* var57 /* : String */; +char* var58 /* : NativeString */; +long var59 /* : Int */; +val* var60 /* : FlatString */; +val* var61 /* : Array[Object] */; +long var62 /* : Int */; +val* var63 /* : NativeArray[Object] */; +val* var64 /* : String */; +val* var65 /* : CodeFile */; +val* var66 /* : POSetElement[MModule] */; +val* var68 /* : POSetElement[MModule] */; +val* var69 /* : Collection[Object] */; +val* var_70 /* var : Collection[MModule] */; +val* var71 /* : Iterator[nullable Object] */; +val* var_72 /* var : Iterator[MModule] */; +short int var73 /* : Bool */; +val* var74 /* : nullable Object */; +val* var_m75 /* var m: MModule */; +val* var76 /* : ToolContext */; +val* var78 /* : ToolContext */; +static val* varonce79; val* var80 /* : String */; -val* var81 /* : CodeFile */; -val* var82 /* : POSetElement[MModule] */; -val* var84 /* : POSetElement[MModule] */; -val* var85 /* : Collection[Object] */; -val* var86 /* : Iterator[nullable Object] */; -short int var87 /* : Bool */; -val* var88 /* : nullable Object */; -val* var_m89 /* var m: MModule */; -val* var90 /* : ToolContext */; -val* var92 /* : ToolContext */; -static val* varonce93; -val* var94 /* : String */; -char* var95 /* : NativeString */; -long var96 /* : Int */; -val* var97 /* : FlatString */; -val* var98 /* : Array[Object] */; -long var99 /* : Int */; -val* var100 /* : NativeArray[Object] */; -val* var101 /* : String */; -long var102 /* : Int */; -val* var103 /* : String */; -val* var105 /* : String */; -static val* varonce106; -val* var107 /* : String */; -char* var108 /* : NativeString */; -long var109 /* : Int */; -val* var110 /* : FlatString */; -val* var111 /* : Array[Object] */; +char* var81 /* : NativeString */; +long var82 /* : Int */; +val* var83 /* : FlatString */; +val* var84 /* : Array[Object] */; +long var85 /* : Int */; +val* var86 /* : NativeArray[Object] */; +val* var87 /* : String */; +long var88 /* : Int */; +val* var89 /* : String */; +val* var91 /* : String */; +static val* varonce92; +val* var93 /* : String */; +char* var94 /* : NativeString */; +long var95 /* : Int */; +val* var96 /* : FlatString */; +val* var97 /* : Array[Object] */; +long var98 /* : Int */; +val* var99 /* : NativeArray[Object] */; +val* var100 /* : String */; +val* var101 /* : CodeFile */; +val* var104 /* : ToolContext */; +val* var106 /* : ToolContext */; +static val* varonce107; +val* var108 /* : String */; +char* var109 /* : NativeString */; +long var110 /* : Int */; +val* var111 /* : FlatString */; long var112 /* : Int */; -val* var113 /* : NativeArray[Object] */; -val* var114 /* : String */; -val* var115 /* : CodeFile */; -val* var117 /* : ToolContext */; -val* var119 /* : ToolContext */; -static val* varonce120; -val* var121 /* : String */; -char* var122 /* : NativeString */; -long var123 /* : Int */; -val* var124 /* : FlatString */; -long var125 /* : Int */; -val* var126 /* : String */; -val* var128 /* : String */; -static val* varonce129; -val* var130 /* : String */; -char* var131 /* : NativeString */; -long var132 /* : Int */; -val* var133 /* : FlatString */; -val* var134 /* : Array[Object] */; -long var135 /* : Int */; -val* var136 /* : NativeArray[Object] */; -val* var137 /* : String */; -val* var138 /* : CodeFile */; -val* var139 /* : POSet[MType] */; +val* var113 /* : String */; +val* var115 /* : String */; +static val* varonce116; +val* var117 /* : String */; +char* var118 /* : NativeString */; +long var119 /* : Int */; +val* var120 /* : FlatString */; +val* var121 /* : Array[Object] */; +long var122 /* : Int */; +val* var123 /* : NativeArray[Object] */; +val* var124 /* : String */; +val* var125 /* : CodeFile */; +val* var126 /* : POSet[MType] */; val* var_mtypes /* var mtypes: POSet[MType] */; -val* var140 /* : Iterator[Object] */; -short int var141 /* : Bool */; -val* var142 /* : nullable Object */; +val* var_127 /* var : POSet[MType] */; +val* var128 /* : Iterator[Object] */; +val* var_129 /* var : Iterator[MType] */; +short int var130 /* : Bool */; +val* var131 /* : nullable Object */; val* var_t /* var t: MType */; -val* var144 /* : Set[MType] */; -val* var146 /* : Set[MType] */; -val* var147 /* : Iterator[nullable Object] */; -short int var148 /* : Bool */; -val* var149 /* : nullable Object */; -val* var_t150 /* var t: MType */; -short int var151 /* : Bool */; -long var153 /* : Int */; -long var155 /* : Int */; +val* var134 /* : Set[MType] */; +val* var136 /* : Set[MType] */; +val* var_137 /* var : Set[MType] */; +val* var138 /* : Iterator[nullable Object] */; +val* var_139 /* var : Iterator[MType] */; +short int var140 /* : Bool */; +val* var141 /* : nullable Object */; +val* var_t142 /* var t: MType */; +short int var143 /* : Bool */; +long var147 /* : Int */; +long var149 /* : Int for extern */; long var_time1 /* var time1: Int */; -val* var156 /* : ToolContext */; -val* var158 /* : ToolContext */; -static val* varonce159; -val* var160 /* : String */; -char* var161 /* : NativeString */; -long var162 /* : Int */; -val* var163 /* : FlatString */; -long var164 /* : Int */; -short int var166 /* : Bool */; +val* var150 /* : ToolContext */; +val* var152 /* : ToolContext */; +static val* varonce153; +val* var154 /* : String */; +char* var155 /* : NativeString */; +long var156 /* : Int */; +val* var157 /* : FlatString */; +long var158 /* : Int */; +short int var160 /* : Bool */; int cltype; int idtype; const char* var_class_name; -long var167 /* : Int */; -static val* varonce168; -val* var169 /* : String */; -char* var170 /* : NativeString */; -long var171 /* : Int */; -val* var172 /* : FlatString */; -val* var173 /* : Array[Object] */; -long var174 /* : Int */; -val* var175 /* : NativeArray[Object] */; -val* var176 /* : Object */; -val* var177 /* : String */; -long var178 /* : Int */; +long var161 /* : Int */; +static val* varonce162; +val* var163 /* : String */; +char* var164 /* : NativeString */; +long var165 /* : Int */; +val* var166 /* : FlatString */; +val* var167 /* : Array[Object] */; +long var168 /* : Int */; +val* var169 /* : NativeArray[Object] */; +val* var170 /* : Object */; +val* var171 /* : String */; +long var172 /* : Int */; var_mainmodule = p0; var_runtime_type_analysis = p1; { @@ -1232,7 +1225,7 @@ var_time0 = var; var5 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); -PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106); show_backtrace(1); } var3 = var5; @@ -1265,7 +1258,7 @@ abstract_compiler__AbstractCompiler__compile_header(var_compiler); /* Direct cal var14 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ if (unlikely(var14 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); -PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106); show_backtrace(1); } var12 = var14; @@ -1290,7 +1283,7 @@ toolcontext__ToolContext__info(var12, var16, var20); /* Direct call toolcontext# var23 = var_mainmodule->attrs[COLOR_mmodule__MModule___name].val; /* _name on */ if (unlikely(var23 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); -PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 86); +PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 78); show_backtrace(1); } var21 = var23; @@ -1322,7 +1315,6 @@ var32 = ((val* (*)(val*))(var29->class->vft[COLOR_string__Object__to_s]))(var29) { var33 = abstract_compiler__AbstractCompiler__new_file(var_compiler, var32); } -var33; { separate_compiler__SeparateCompiler__do_property_coloring(var_compiler); /* Direct call separate_compiler#SeparateCompiler#do_property_coloring on */ } @@ -1331,7 +1323,7 @@ separate_compiler__SeparateCompiler__do_property_coloring(var_compiler); /* Dire var36 = var_mainmodule->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on */ if (unlikely(var36 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation"); -PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 101); +PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 93); show_backtrace(1); } var34 = var36; @@ -1341,169 +1333,112 @@ RET_LABEL35:(void)0; { var37 = poset__POSetElement__greaters(var34); } +var_ = var37; { -var38 = ((val* (*)(val*))(var37->class->vft[COLOR_abstract_collection__Collection__iterator]))(var37) /* iterator on */; +var38 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on */; } +var_39 = var38; for(;;) { { -var39 = ((short int (*)(val*))(var38->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var38) /* is_ok on */; +var40 = ((short int (*)(val*))(var_39->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_39) /* is_ok on */; } -if(!var39) break; +if (var40){ { -var40 = ((val* (*)(val*))(var38->class->vft[COLOR_abstract_collection__Iterator__item]))(var38) /* item on */; +var41 = ((val* (*)(val*))(var_39->class->vft[COLOR_abstract_collection__Iterator__item]))(var_39) /* item on */; } -var_m = var40; +var_m = var41; { { /* Inline model#MModule#intro_mclasses (var_m) on */ -var43 = var_m->attrs[COLOR_model__MModule___intro_mclasses].val; /* _intro_mclasses on */ -if (unlikely(var43 == NULL)) { +var44 = var_m->attrs[COLOR_model__MModule___intro_mclasses].val; /* _intro_mclasses on */ +if (unlikely(var44 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclasses"); -PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 138); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 136); show_backtrace(1); } -var41 = var43; -RET_LABEL42:(void)0; +var42 = var44; +RET_LABEL43:(void)0; } } +var_45 = var42; { -var44 = array__AbstractArrayRead__iterator(var41); +var46 = array__AbstractArrayRead__iterator(var_45); } +var_47 = var46; for(;;) { { -var45 = array__ArrayIterator__is_ok(var44); +var48 = array__ArrayIterator__is_ok(var_47); } -if(!var45) break; +if (var48){ { -var46 = array__ArrayIterator__item(var44); -} -var_mclass = var46; -{ -{ /* Inline model#MClass#kind (var_mclass) on */ -var50 = var_mclass->attrs[COLOR_model__MClass___kind].val; /* _kind on */ -if (unlikely(var50 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind"); -PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355); -show_backtrace(1); -} -var48 = var50; -RET_LABEL49:(void)0; -} +var49 = array__ArrayIterator__item(var_47); } +var_mclass = var49; { -var51 = model__Object__abstract_kind(self); +((void (*)(val*, val*))(var_compiler->class->vft[COLOR_separate_compiler__SeparateCompiler__compile_class_to_c]))(var_compiler, var_mclass) /* compile_class_to_c on */; } { -{ /* Inline kernel#Object#== (var48,var51) on */ -var_other = var51; -{ -{ /* Inline kernel#Object#is_same_instance (var48,var_other) on */ -var57 = var48 == var_other; -var55 = var57; -goto RET_LABEL56; -RET_LABEL56:(void)0; -} -} -var53 = var55; -goto RET_LABEL54; -RET_LABEL54:(void)0; -} -var52 = var53; +array__ArrayIterator__next(var_47); /* Direct call array#ArrayIterator#next on */ } -var_ = var52; -if (var52){ -var47 = var_; } else { -{ -{ /* Inline model#MClass#kind (var_mclass) on */ -var60 = var_mclass->attrs[COLOR_model__MClass___kind].val; /* _kind on */ -if (unlikely(var60 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind"); -PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355); -show_backtrace(1); -} -var58 = var60; -RET_LABEL59:(void)0; +goto BREAK_label; } } +BREAK_label: (void)0; { -var61 = model__Object__interface_kind(self); -} -{ -{ /* Inline kernel#Object#== (var58,var61) on */ -var_other = var61; -{ -{ /* Inline kernel#Object#is_same_instance (var58,var_other) on */ -var67 = var58 == var_other; -var65 = var67; -goto RET_LABEL66; -RET_LABEL66:(void)0; -} -} -var63 = var65; -goto RET_LABEL64; -RET_LABEL64:(void)0; +{ /* Inline abstract_collection#Iterator#finish (var_47) on */ +RET_LABEL50:(void)0; } -var62 = var63; -} -var47 = var62; -} -if (var47){ -goto CONTINUE_label; -} else { } { -((void (*)(val*, val*))(var_compiler->class->vft[COLOR_separate_compiler__SeparateCompiler__compile_class_to_c]))(var_compiler, var_mclass) /* compile_class_to_c on */; +((void (*)(val*))(var_39->class->vft[COLOR_abstract_collection__Iterator__next]))(var_39) /* next on */; } -CONTINUE_label: (void)0; -{ -array__ArrayIterator__next(var44); /* Direct call array#ArrayIterator#next on */ +} else { +goto BREAK_label51; } } -BREAK_label: (void)0; -CONTINUE_label68: (void)0; +BREAK_label51: (void)0; { -((void (*)(val*))(var38->class->vft[COLOR_abstract_collection__Iterator__next]))(var38) /* next on */; +{ /* Inline abstract_collection#Iterator#finish (var_39) on */ +RET_LABEL52:(void)0; } } -BREAK_label68: (void)0; { { /* Inline mmodule#MModule#name (var_mainmodule) on */ -var71 = var_mainmodule->attrs[COLOR_mmodule__MModule___name].val; /* _name on */ -if (unlikely(var71 == NULL)) { +var55 = var_mainmodule->attrs[COLOR_mmodule__MModule___name].val; /* _name on */ +if (unlikely(var55 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); -PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 86); +PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 78); show_backtrace(1); } -var69 = var71; -RET_LABEL70:(void)0; +var53 = var55; +RET_LABEL54:(void)0; } } -if (varonce72) { -var73 = varonce72; +if (varonce56) { +var57 = varonce56; } else { -var74 = ".main"; -var75 = 5; -var76 = string__NativeString__to_s_with_length(var74, var75); -var73 = var76; -varonce72 = var73; +var58 = ".main"; +var59 = 5; +var60 = string__NativeString__to_s_with_length(var58, var59); +var57 = var60; +varonce56 = var57; } -var77 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var77 = array_instance Array[Object] */ -var78 = 2; -var79 = NEW_array__NativeArray(var78, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var79)->values[0] = (val*) var69; -((struct instance_array__NativeArray*)var79)->values[1] = (val*) var73; +var61 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var61 = array_instance Array[Object] */ +var62 = 2; +var63 = NEW_array__NativeArray(var62, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var63)->values[0] = (val*) var53; +((struct instance_array__NativeArray*)var63)->values[1] = (val*) var57; { -((void (*)(val*, val*, long))(var77->class->vft[COLOR_array__Array__with_native]))(var77, var79, var78) /* with_native on */; +((void (*)(val*, val*, long))(var61->class->vft[COLOR_array__Array__with_native]))(var61, var63, var62) /* with_native on */; } } { -var80 = ((val* (*)(val*))(var77->class->vft[COLOR_string__Object__to_s]))(var77) /* to_s on */; +var64 = ((val* (*)(val*))(var61->class->vft[COLOR_string__Object__to_s]))(var61) /* to_s on */; } { -var81 = abstract_compiler__AbstractCompiler__new_file(var_compiler, var80); +var65 = abstract_compiler__AbstractCompiler__new_file(var_compiler, var64); } -var81; { abstract_compiler__AbstractCompiler__compile_nitni_global_ref_functions(var_compiler); /* Direct call abstract_compiler#AbstractCompiler#compile_nitni_global_ref_functions on */ } @@ -1511,322 +1446,351 @@ abstract_compiler__AbstractCompiler__compile_nitni_global_ref_functions(var_comp abstract_compiler__AbstractCompiler__compile_main_function(var_compiler); /* Direct call abstract_compiler#AbstractCompiler#compile_main_function on */ } { +abstract_compiler__AbstractCompiler__compile_finalizer_function(var_compiler); /* Direct call abstract_compiler#AbstractCompiler#compile_finalizer_function on */ +} +{ { /* Inline mmodule#MModule#in_importation (var_mainmodule) on */ -var84 = var_mainmodule->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on */ -if (unlikely(var84 == NULL)) { +var68 = var_mainmodule->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on */ +if (unlikely(var68 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation"); -PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 101); +PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 93); show_backtrace(1); } -var82 = var84; -RET_LABEL83:(void)0; +var66 = var68; +RET_LABEL67:(void)0; } } { -var85 = poset__POSetElement__greaters(var82); +var69 = poset__POSetElement__greaters(var66); } +var_70 = var69; { -var86 = ((val* (*)(val*))(var85->class->vft[COLOR_abstract_collection__Collection__iterator]))(var85) /* iterator on */; +var71 = ((val* (*)(val*))(var_70->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_70) /* iterator on */; } +var_72 = var71; for(;;) { { -var87 = ((short int (*)(val*))(var86->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var86) /* is_ok on */; +var73 = ((short int (*)(val*))(var_72->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_72) /* is_ok on */; } -if(!var87) break; +if (var73){ { -var88 = ((val* (*)(val*))(var86->class->vft[COLOR_abstract_collection__Iterator__item]))(var86) /* item on */; +var74 = ((val* (*)(val*))(var_72->class->vft[COLOR_abstract_collection__Iterator__item]))(var_72) /* item on */; } -var_m89 = var88; +var_m75 = var74; { { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on */ -var92 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ -if (unlikely(var92 == NULL)) { +var78 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var78 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); -PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106); show_backtrace(1); } -var90 = var92; -RET_LABEL91:(void)0; +var76 = var78; +RET_LABEL77:(void)0; } } -if (varonce93) { -var94 = varonce93; +if (varonce79) { +var80 = varonce79; } else { -var95 = "Generate C for module "; -var96 = 22; -var97 = string__NativeString__to_s_with_length(var95, var96); -var94 = var97; -varonce93 = var94; +var81 = "Generate C for module "; +var82 = 22; +var83 = string__NativeString__to_s_with_length(var81, var82); +var80 = var83; +varonce79 = var80; } -var98 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var98 = array_instance Array[Object] */ -var99 = 2; -var100 = NEW_array__NativeArray(var99, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var100)->values[0] = (val*) var94; -((struct instance_array__NativeArray*)var100)->values[1] = (val*) var_m89; +var84 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var84 = array_instance Array[Object] */ +var85 = 2; +var86 = NEW_array__NativeArray(var85, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var86)->values[0] = (val*) var80; +((struct instance_array__NativeArray*)var86)->values[1] = (val*) var_m75; { -((void (*)(val*, val*, long))(var98->class->vft[COLOR_array__Array__with_native]))(var98, var100, var99) /* with_native on */; +((void (*)(val*, val*, long))(var84->class->vft[COLOR_array__Array__with_native]))(var84, var86, var85) /* with_native on */; } } { -var101 = ((val* (*)(val*))(var98->class->vft[COLOR_string__Object__to_s]))(var98) /* to_s on */; +var87 = ((val* (*)(val*))(var84->class->vft[COLOR_string__Object__to_s]))(var84) /* to_s on */; } -var102 = 2; +var88 = 2; { -toolcontext__ToolContext__info(var90, var101, var102); /* Direct call toolcontext#ToolContext#info on */ +toolcontext__ToolContext__info(var76, var87, var88); /* Direct call toolcontext#ToolContext#info on */ } { -{ /* Inline mmodule#MModule#name (var_m89) on */ -var105 = var_m89->attrs[COLOR_mmodule__MModule___name].val; /* _name on */ -if (unlikely(var105 == NULL)) { +{ /* Inline mmodule#MModule#name (var_m75) on */ +var91 = var_m75->attrs[COLOR_mmodule__MModule___name].val; /* _name on */ +if (unlikely(var91 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); -PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 86); +PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 78); show_backtrace(1); } -var103 = var105; -RET_LABEL104:(void)0; +var89 = var91; +RET_LABEL90:(void)0; } } -if (varonce106) { -var107 = varonce106; +if (varonce92) { +var93 = varonce92; } else { -var108 = ".sep"; -var109 = 4; -var110 = string__NativeString__to_s_with_length(var108, var109); -var107 = var110; -varonce106 = var107; +var94 = ".sep"; +var95 = 4; +var96 = string__NativeString__to_s_with_length(var94, var95); +var93 = var96; +varonce92 = var93; } -var111 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var111 = array_instance Array[Object] */ -var112 = 2; -var113 = NEW_array__NativeArray(var112, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var113)->values[0] = (val*) var103; -((struct instance_array__NativeArray*)var113)->values[1] = (val*) var107; +var97 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var97 = array_instance Array[Object] */ +var98 = 2; +var99 = NEW_array__NativeArray(var98, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var99)->values[0] = (val*) var89; +((struct instance_array__NativeArray*)var99)->values[1] = (val*) var93; { -((void (*)(val*, val*, long))(var111->class->vft[COLOR_array__Array__with_native]))(var111, var113, var112) /* with_native on */; +((void (*)(val*, val*, long))(var97->class->vft[COLOR_array__Array__with_native]))(var97, var99, var98) /* with_native on */; } } { -var114 = ((val* (*)(val*))(var111->class->vft[COLOR_string__Object__to_s]))(var111) /* to_s on */; +var100 = ((val* (*)(val*))(var97->class->vft[COLOR_string__Object__to_s]))(var97) /* to_s on */; } { -var115 = abstract_compiler__AbstractCompiler__new_file(var_compiler, var114); +var101 = abstract_compiler__AbstractCompiler__new_file(var_compiler, var100); } -var115; { -separate_compiler__SeparateCompiler__compile_module_to_c(var_compiler, var_m89); /* Direct call separate_compiler#SeparateCompiler#compile_module_to_c on */ +separate_compiler__SeparateCompiler__compile_module_to_c(var_compiler, var_m75); /* Direct call separate_compiler#SeparateCompiler#compile_module_to_c on */ } -CONTINUE_label116: (void)0; { -((void (*)(val*))(var86->class->vft[COLOR_abstract_collection__Iterator__next]))(var86) /* next on */; +((void (*)(val*))(var_72->class->vft[COLOR_abstract_collection__Iterator__next]))(var_72) /* next on */; +} +} else { +goto BREAK_label102; +} +} +BREAK_label102: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_72) on */ +RET_LABEL103:(void)0; } } -BREAK_label116: (void)0; { { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on */ -var119 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ -if (unlikely(var119 == NULL)) { +var106 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var106 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); -PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106); show_backtrace(1); } -var117 = var119; -RET_LABEL118:(void)0; +var104 = var106; +RET_LABEL105:(void)0; } } -if (varonce120) { -var121 = varonce120; +if (varonce107) { +var108 = varonce107; } else { -var122 = "Type coloring"; -var123 = 13; -var124 = string__NativeString__to_s_with_length(var122, var123); -var121 = var124; -varonce120 = var121; +var109 = "Type coloring"; +var110 = 13; +var111 = string__NativeString__to_s_with_length(var109, var110); +var108 = var111; +varonce107 = var108; } -var125 = 2; +var112 = 2; { -toolcontext__ToolContext__info(var117, var121, var125); /* Direct call toolcontext#ToolContext#info on */ +toolcontext__ToolContext__info(var104, var108, var112); /* Direct call toolcontext#ToolContext#info on */ } { { /* Inline mmodule#MModule#name (var_mainmodule) on */ -var128 = var_mainmodule->attrs[COLOR_mmodule__MModule___name].val; /* _name on */ -if (unlikely(var128 == NULL)) { +var115 = var_mainmodule->attrs[COLOR_mmodule__MModule___name].val; /* _name on */ +if (unlikely(var115 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); -PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 86); +PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 78); show_backtrace(1); } -var126 = var128; -RET_LABEL127:(void)0; +var113 = var115; +RET_LABEL114:(void)0; } } -if (varonce129) { -var130 = varonce129; +if (varonce116) { +var117 = varonce116; } else { -var131 = ".types"; -var132 = 6; -var133 = string__NativeString__to_s_with_length(var131, var132); -var130 = var133; -varonce129 = var130; +var118 = ".types"; +var119 = 6; +var120 = string__NativeString__to_s_with_length(var118, var119); +var117 = var120; +varonce116 = var117; } -var134 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var134 = array_instance Array[Object] */ -var135 = 2; -var136 = NEW_array__NativeArray(var135, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var136)->values[0] = (val*) var126; -((struct instance_array__NativeArray*)var136)->values[1] = (val*) var130; +var121 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var121 = array_instance Array[Object] */ +var122 = 2; +var123 = NEW_array__NativeArray(var122, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var123)->values[0] = (val*) var113; +((struct instance_array__NativeArray*)var123)->values[1] = (val*) var117; { -((void (*)(val*, val*, long))(var134->class->vft[COLOR_array__Array__with_native]))(var134, var136, var135) /* with_native on */; +((void (*)(val*, val*, long))(var121->class->vft[COLOR_array__Array__with_native]))(var121, var123, var122) /* with_native on */; } } { -var137 = ((val* (*)(val*))(var134->class->vft[COLOR_string__Object__to_s]))(var134) /* to_s on */; +var124 = ((val* (*)(val*))(var121->class->vft[COLOR_string__Object__to_s]))(var121) /* to_s on */; } { -var138 = abstract_compiler__AbstractCompiler__new_file(var_compiler, var137); +var125 = abstract_compiler__AbstractCompiler__new_file(var_compiler, var124); } -var138; { -var139 = separate_compiler__SeparateCompiler__do_type_coloring(var_compiler); +var126 = separate_compiler__SeparateCompiler__do_type_coloring(var_compiler); } -var_mtypes = var139; +var_mtypes = var126; +var_127 = var_mtypes; { -var140 = poset__POSet__iterator(var_mtypes); +var128 = poset__POSet__iterator(var_127); } +var_129 = var128; for(;;) { { -var141 = ((short int (*)(val*))(var140->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var140) /* is_ok on */; +var130 = ((short int (*)(val*))(var_129->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_129) /* is_ok on */; } -if(!var141) break; +if (var130){ { -var142 = ((val* (*)(val*))(var140->class->vft[COLOR_abstract_collection__Iterator__item]))(var140) /* item on */; +var131 = ((val* (*)(val*))(var_129->class->vft[COLOR_abstract_collection__Iterator__item]))(var_129) /* item on */; } -var_t = var142; +var_t = var131; { separate_compiler__SeparateCompiler__compile_type_to_c(var_compiler, var_t); /* Direct call separate_compiler#SeparateCompiler#compile_type_to_c on */ } -CONTINUE_label143: (void)0; { -((void (*)(val*))(var140->class->vft[COLOR_abstract_collection__Iterator__next]))(var140) /* next on */; +((void (*)(val*))(var_129->class->vft[COLOR_abstract_collection__Iterator__next]))(var_129) /* next on */; +} +} else { +goto BREAK_label132; +} +} +BREAK_label132: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_129) on */ +RET_LABEL133:(void)0; } } -BREAK_label143: (void)0; { { /* Inline separate_compiler#SeparateCompiler#undead_types (var_compiler) on */ -var146 = var_compiler->attrs[COLOR_separate_compiler__SeparateCompiler___undead_types].val; /* _undead_types on */ -if (unlikely(var146 == NULL)) { +var136 = var_compiler->attrs[COLOR_separate_compiler__SeparateCompiler___undead_types].val; /* _undead_types on */ +if (unlikely(var136 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _undead_types"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 155); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 156); show_backtrace(1); } -var144 = var146; -RET_LABEL145:(void)0; +var134 = var136; +RET_LABEL135:(void)0; } } +var_137 = var134; { -var147 = ((val* (*)(val*))(var144->class->vft[COLOR_abstract_collection__Collection__iterator]))(var144) /* iterator on */; +var138 = ((val* (*)(val*))(var_137->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_137) /* iterator on */; } +var_139 = var138; for(;;) { { -var148 = ((short int (*)(val*))(var147->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var147) /* is_ok on */; +var140 = ((short int (*)(val*))(var_139->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_139) /* is_ok on */; } -if(!var148) break; +if (var140){ { -var149 = ((val* (*)(val*))(var147->class->vft[COLOR_abstract_collection__Iterator__item]))(var147) /* item on */; +var141 = ((val* (*)(val*))(var_139->class->vft[COLOR_abstract_collection__Iterator__item]))(var_139) /* item on */; } -var_t150 = var149; +var_t142 = var141; { -var151 = poset__POSet__has(var_mtypes, var_t150); +var143 = poset__POSet__has(var_mtypes, var_t142); } -if (var151){ -goto CONTINUE_label152; +if (var143){ +goto BREAK_label144; } else { } { -separate_compiler__SeparateCompiler__compile_type_to_c(var_compiler, var_t150); /* Direct call separate_compiler#SeparateCompiler#compile_type_to_c on */ +separate_compiler__SeparateCompiler__compile_type_to_c(var_compiler, var_t142); /* Direct call separate_compiler#SeparateCompiler#compile_type_to_c on */ } -CONTINUE_label152: (void)0; +BREAK_label144: (void)0; { -((void (*)(val*))(var147->class->vft[COLOR_abstract_collection__Iterator__next]))(var147) /* next on */; +((void (*)(val*))(var_139->class->vft[COLOR_abstract_collection__Iterator__next]))(var_139) /* next on */; +} +} else { +goto BREAK_label145; +} +} +BREAK_label145: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_139) on */ +RET_LABEL146:(void)0; } } -BREAK_label152: (void)0; { separate_compiler__SeparateCompiler__display_stats(var_compiler); /* Direct call separate_compiler#SeparateCompiler#display_stats on */ } { { /* Inline time#Object#get_time (self) on */ -var155 = kernel_Any_Any_get_time_0(self); -var153 = var155; -goto RET_LABEL154; -RET_LABEL154:(void)0; +var149 = kernel_Any_Any_get_time_0(self); +var147 = var149; +goto RET_LABEL148; +RET_LABEL148:(void)0; } } -var_time1 = var153; +var_time1 = var147; { { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on */ -var158 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ -if (unlikely(var158 == NULL)) { +var152 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var152 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); -PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106); show_backtrace(1); } -var156 = var158; -RET_LABEL157:(void)0; +var150 = var152; +RET_LABEL151:(void)0; } } -if (varonce159) { -var160 = varonce159; +if (varonce153) { +var154 = varonce153; } else { -var161 = "*** END GENERATING C: "; -var162 = 22; -var163 = string__NativeString__to_s_with_length(var161, var162); -var160 = var163; -varonce159 = var160; +var155 = "*** END GENERATING C: "; +var156 = 22; +var157 = string__NativeString__to_s_with_length(var155, var156); +var154 = var157; +varonce153 = var154; } { { /* Inline kernel#Int#- (var_time1,var_time0) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var166 = 1; /* easy isa OTHER*/ -if (unlikely(!var166)) { +var160 = 1; /* easy isa OTHER*/ +if (unlikely(!var160)) { var_class_name = type_kernel__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377); show_backtrace(1); } -var167 = var_time1 - var_time0; -var164 = var167; -goto RET_LABEL165; -RET_LABEL165:(void)0; +var161 = var_time1 - var_time0; +var158 = var161; +goto RET_LABEL159; +RET_LABEL159:(void)0; } } -if (varonce168) { -var169 = varonce168; +if (varonce162) { +var163 = varonce162; } else { -var170 = " ***"; -var171 = 4; -var172 = string__NativeString__to_s_with_length(var170, var171); -var169 = var172; -varonce168 = var169; +var164 = " ***"; +var165 = 4; +var166 = string__NativeString__to_s_with_length(var164, var165); +var163 = var166; +varonce162 = var163; } -var173 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var173 = array_instance Array[Object] */ -var174 = 3; -var175 = NEW_array__NativeArray(var174, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var175)->values[0] = (val*) var160; -var176 = BOX_kernel__Int(var164); /* autobox from Int to Object */ -((struct instance_array__NativeArray*)var175)->values[1] = (val*) var176; -((struct instance_array__NativeArray*)var175)->values[2] = (val*) var169; +var167 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var167 = array_instance Array[Object] */ +var168 = 3; +var169 = NEW_array__NativeArray(var168, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var169)->values[0] = (val*) var154; +var170 = BOX_kernel__Int(var158); /* autobox from Int to Object */ +((struct instance_array__NativeArray*)var169)->values[1] = (val*) var170; +((struct instance_array__NativeArray*)var169)->values[2] = (val*) var163; { -((void (*)(val*, val*, long))(var173->class->vft[COLOR_array__Array__with_native]))(var173, var175, var174) /* with_native on */; +((void (*)(val*, val*, long))(var167->class->vft[COLOR_array__Array__with_native]))(var167, var169, var168) /* with_native on */; } } { -var177 = ((val* (*)(val*))(var173->class->vft[COLOR_string__Object__to_s]))(var173) /* to_s on */; +var171 = ((val* (*)(val*))(var167->class->vft[COLOR_string__Object__to_s]))(var167) /* to_s on */; } -var178 = 2; +var172 = 2; { -toolcontext__ToolContext__info(var156, var177, var178); /* Direct call toolcontext#ToolContext#info on */ +toolcontext__ToolContext__info(var150, var171, var172); /* Direct call toolcontext#ToolContext#info on */ } { abstract_compiler__ModelBuilder__write_and_make(self, var_compiler); /* Direct call abstract_compiler#ModelBuilder#write_and_make on */ @@ -1989,7 +1953,7 @@ val* var1 /* : Set[MType] */; var1 = self->attrs[COLOR_separate_compiler__SeparateCompiler___undead_types].val; /* _undead_types on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _undead_types"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 155); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 156); show_backtrace(1); } var = var1; @@ -2005,7 +1969,7 @@ val* var3 /* : Set[MType] */; var3 = self->attrs[COLOR_separate_compiler__SeparateCompiler___undead_types].val; /* _undead_types on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _undead_types"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 155); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 156); show_backtrace(1); } var1 = var3; @@ -2022,7 +1986,7 @@ val* var1 /* : Map[MClassDef, Set[MType]] */; var1 = self->attrs[COLOR_separate_compiler__SeparateCompiler___live_unresolved_types].val; /* _live_unresolved_types on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 156); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 157); show_backtrace(1); } var = var1; @@ -2038,7 +2002,7 @@ val* var3 /* : Map[MClassDef, Set[MType]] */; var3 = self->attrs[COLOR_separate_compiler__SeparateCompiler___live_unresolved_types].val; /* _live_unresolved_types on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 156); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 157); show_backtrace(1); } var1 = var3; @@ -2055,7 +2019,7 @@ val* var1 /* : Map[MType, Int] */; var1 = self->attrs[COLOR_separate_compiler__SeparateCompiler___type_ids].val; /* _type_ids on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 158); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 159); show_backtrace(1); } var = var1; @@ -2071,7 +2035,7 @@ val* var3 /* : Map[MType, Int] */; var3 = self->attrs[COLOR_separate_compiler__SeparateCompiler___type_ids].val; /* _type_ids on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 158); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 159); show_backtrace(1); } var1 = var3; @@ -2101,7 +2065,7 @@ val* var1 /* : Map[MType, Int] */; var1 = self->attrs[COLOR_separate_compiler__SeparateCompiler___type_colors].val; /* _type_colors on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_colors"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 159); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 160); show_backtrace(1); } var = var1; @@ -2117,7 +2081,7 @@ val* var3 /* : Map[MType, Int] */; var3 = self->attrs[COLOR_separate_compiler__SeparateCompiler___type_colors].val; /* _type_colors on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_colors"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 159); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 160); show_backtrace(1); } var1 = var3; @@ -2147,7 +2111,7 @@ val* var1 /* : Map[MType, Int] */; var1 = self->attrs[COLOR_separate_compiler__SeparateCompiler___opentype_colors].val; /* _opentype_colors on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opentype_colors"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 160); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 161); show_backtrace(1); } var = var1; @@ -2163,7 +2127,7 @@ val* var3 /* : Map[MType, Int] */; var3 = self->attrs[COLOR_separate_compiler__SeparateCompiler___opentype_colors].val; /* _opentype_colors on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opentype_colors"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 160); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 161); show_backtrace(1); } var1 = var3; @@ -2193,7 +2157,7 @@ val* var1 /* : Map[PropertyLayoutElement, Int] */; var1 = self->attrs[COLOR_separate_compiler__SeparateCompiler___method_colors].val; /* _method_colors on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_colors"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 161); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 162); show_backtrace(1); } var = var1; @@ -2209,7 +2173,7 @@ val* var3 /* : Map[PropertyLayoutElement, Int] */; var3 = self->attrs[COLOR_separate_compiler__SeparateCompiler___method_colors].val; /* _method_colors on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_colors"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 161); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 162); show_backtrace(1); } var1 = var3; @@ -2239,7 +2203,7 @@ val* var1 /* : Map[MAttribute, Int] */; var1 = self->attrs[COLOR_separate_compiler__SeparateCompiler___attr_colors].val; /* _attr_colors on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_colors"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 162); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 163); show_backtrace(1); } var = var1; @@ -2255,7 +2219,7 @@ val* var3 /* : Map[MAttribute, Int] */; var3 = self->attrs[COLOR_separate_compiler__SeparateCompiler___attr_colors].val; /* _attr_colors on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_colors"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 162); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 163); show_backtrace(1); } var1 = var3; @@ -2385,7 +2349,7 @@ val* var46 /* : FlatString */; var2 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___header].val; /* _header on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506); show_backtrace(1); } var = var2; @@ -2412,7 +2376,7 @@ separate_compiler__SeparateCompiler__compile_header_attribute_structs(self); /* var9 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___header].val; /* _header on */ if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506); show_backtrace(1); } var7 = var9; @@ -2436,7 +2400,7 @@ abstract_compiler__CodeWriter__add_decl(var7, var11); /* Direct call abstract_co var17 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___header].val; /* _header on */ if (unlikely(var17 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506); show_backtrace(1); } var15 = var17; @@ -2460,7 +2424,7 @@ abstract_compiler__CodeWriter__add_decl(var15, var19); /* Direct call abstract_c var25 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___header].val; /* _header on */ if (unlikely(var25 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506); show_backtrace(1); } var23 = var25; @@ -2484,7 +2448,7 @@ abstract_compiler__CodeWriter__add_decl(var23, var27); /* Direct call abstract_c var33 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___header].val; /* _header on */ if (unlikely(var33 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506); show_backtrace(1); } var31 = var33; @@ -2508,7 +2472,7 @@ abstract_compiler__CodeWriter__add_decl(var31, var35); /* Direct call abstract_c var41 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___header].val; /* _header on */ if (unlikely(var41 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506); show_backtrace(1); } var39 = var41; @@ -2568,47 +2532,60 @@ long var34 /* : Int */; val* var35 /* : FlatString */; val* var36 /* : HashMap[MClass, Int] */; val* var38 /* : HashMap[MClass, Int] */; +val* var_ /* var : HashMap[MClass, Int] */; val* var39 /* : HashMapIterator[Object, nullable Object] */; -short int var40 /* : Bool */; -val* var41 /* : Object */; +val* var_40 /* var : HashMapIterator[MClass, Int] */; +short int var41 /* : Bool */; +val* var42 /* : Object */; val* var_c /* var c: MClass */; -val* var42 /* : nullable Object */; +val* var43 /* : nullable Object */; +long var44 /* : Int */; long var_v /* var v: Int */; -long var43 /* : Int */; -val* var44 /* : MClassType */; -val* var46 /* : MClassType */; +val* var45 /* : MClassType */; +val* var47 /* : MClassType */; val* var_t /* var t: MClassType */; -val* var47 /* : CodeWriter */; -val* var49 /* : CodeWriter */; -val* var50 /* : String */; -static val* varonce51; -val* var52 /* : String */; -char* var53 /* : NativeString */; -long var54 /* : Int */; -val* var55 /* : FlatString */; -val* var56 /* : String */; -static val* varonce57; -val* var58 /* : String */; -char* var59 /* : NativeString */; -long var60 /* : Int */; -val* var61 /* : FlatString */; -val* var62 /* : Array[Object] */; -long var63 /* : Int */; -val* var64 /* : NativeArray[Object] */; -val* var65 /* : String */; -val* var66 /* : CodeWriter */; -val* var68 /* : CodeWriter */; -static val* varonce69; +val* var48 /* : MClass */; +val* var50 /* : MClass */; +val* var51 /* : String */; +val* var53 /* : String */; +static val* varonce54; +val* var55 /* : String */; +char* var56 /* : NativeString */; +long var57 /* : Int */; +val* var58 /* : FlatString */; +short int var59 /* : Bool */; +short int var60 /* : Bool */; +val* var61 /* : CodeWriter */; +val* var63 /* : CodeWriter */; +val* var64 /* : String */; +static val* varonce65; +val* var66 /* : String */; +char* var67 /* : NativeString */; +long var68 /* : Int */; +val* var69 /* : FlatString */; val* var70 /* : String */; -char* var71 /* : NativeString */; -long var72 /* : Int */; -val* var73 /* : FlatString */; +static val* varonce71; +val* var72 /* : String */; +char* var73 /* : NativeString */; +long var74 /* : Int */; +val* var75 /* : FlatString */; +val* var76 /* : Array[Object] */; +long var77 /* : Int */; +val* var78 /* : NativeArray[Object] */; +val* var79 /* : String */; +val* var82 /* : CodeWriter */; +val* var84 /* : CodeWriter */; +static val* varonce85; +val* var86 /* : String */; +char* var87 /* : NativeString */; +long var88 /* : Int */; +val* var89 /* : FlatString */; { { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on */ var2 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 443); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 470); show_backtrace(1); } var = var2; @@ -2620,7 +2597,7 @@ RET_LABEL1:(void)0; var5 = var->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); -PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106); show_backtrace(1); } var3 = var5; @@ -2632,7 +2609,7 @@ RET_LABEL4:(void)0; var8 = var3->attrs[COLOR_separate_compiler__ToolContext___opt_no_union_attribute].val; /* _opt_no_union_attribute on */ if (unlikely(var8 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_union_attribute"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 28); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 28); show_backtrace(1); } var6 = var8; @@ -2653,7 +2630,7 @@ if (var12){ var15 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___header].val; /* _header on */ if (unlikely(var15 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506); show_backtrace(1); } var13 = var15; @@ -2678,7 +2655,7 @@ abstract_compiler__CodeWriter__add_decl(var13, var16); /* Direct call abstract_c var22 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___header].val; /* _header on */ if (unlikely(var22 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506); show_backtrace(1); } var20 = var22; @@ -2702,7 +2679,7 @@ abstract_compiler__CodeWriter__add_decl(var20, var24); /* Direct call abstract_c var30 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___header].val; /* _header on */ if (unlikely(var30 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506); show_backtrace(1); } var28 = var30; @@ -2726,126 +2703,177 @@ abstract_compiler__CodeWriter__add_decl(var28, var32); /* Direct call abstract_c var38 = self->attrs[COLOR_separate_compiler__SeparateCompiler___box_kinds].val; /* _box_kinds on */ if (unlikely(var38 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 211); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 216); show_backtrace(1); } var36 = var38; RET_LABEL37:(void)0; } } +var_ = var36; { -var39 = hash_collection__HashMap__iterator(var36); +var39 = hash_collection__HashMap__iterator(var_); } +var_40 = var39; for(;;) { { -var40 = hash_collection__HashMapIterator__is_ok(var39); +var41 = hash_collection__HashMapIterator__is_ok(var_40); } -if(!var40) break; +if (var41){ { -var41 = hash_collection__HashMapIterator__key(var39); +var42 = hash_collection__HashMapIterator__key(var_40); } -var_c = var41; +var_c = var42; { -var42 = hash_collection__HashMapIterator__item(var39); +var43 = hash_collection__HashMapIterator__item(var_40); } -var43 = ((struct instance_kernel__Int*)var42)->value; /* autounbox from nullable Object to Int */; -var_v = var43; +var44 = ((struct instance_kernel__Int*)var43)->value; /* autounbox from nullable Object to Int */; +var_v = var44; { { /* Inline model#MClass#mclass_type (var_c) on */ -var46 = var_c->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on */ -if (unlikely(var46 == NULL)) { +var47 = var_c->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var47 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); -PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435); +show_backtrace(1); +} +var45 = var47; +RET_LABEL46:(void)0; +} +} +var_t = var45; +{ +{ /* Inline model#MClassType#mclass (var_t) on */ +var50 = var_t->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var50 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986); +show_backtrace(1); +} +var48 = var50; +RET_LABEL49:(void)0; +} +} +{ +{ /* Inline model#MClass#name (var48) on */ +var53 = var48->attrs[COLOR_model__MClass___name].val; /* _name on */ +if (unlikely(var53 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 352); show_backtrace(1); } -var44 = var46; -RET_LABEL45:(void)0; +var51 = var53; +RET_LABEL52:(void)0; +} +} +if (varonce54) { +var55 = varonce54; +} else { +var56 = "Pointer"; +var57 = 7; +var58 = string__NativeString__to_s_with_length(var56, var57); +var55 = var58; +varonce54 = var55; +} +{ +var60 = string__FlatString___61d_61d(var51, var55); +var59 = var60; } +if (var59){ +goto BREAK_label; +} else { } -var_t = var44; { { /* Inline abstract_compiler#AbstractCompiler#header (self) on */ -var49 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___header].val; /* _header on */ -if (unlikely(var49 == NULL)) { +var63 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___header].val; /* _header on */ +if (unlikely(var63 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506); show_backtrace(1); } -var47 = var49; -RET_LABEL48:(void)0; +var61 = var63; +RET_LABEL62:(void)0; } } { -var50 = abstract_compiler__MClassType__ctype(var_t); +var64 = abstract_compiler__MClassType__ctype_extern(var_t); } -if (varonce51) { -var52 = varonce51; +if (varonce65) { +var66 = varonce65; } else { -var53 = " "; -var54 = 1; -var55 = string__NativeString__to_s_with_length(var53, var54); -var52 = var55; -varonce51 = var52; +var67 = " "; +var68 = 1; +var69 = string__NativeString__to_s_with_length(var67, var68); +var66 = var69; +varonce65 = var66; } { -var56 = abstract_compiler__MClassType__ctypename(var_t); +var70 = abstract_compiler__MClassType__ctypename(var_t); } -if (varonce57) { -var58 = varonce57; +if (varonce71) { +var72 = varonce71; } else { -var59 = ";"; -var60 = 1; -var61 = string__NativeString__to_s_with_length(var59, var60); -var58 = var61; -varonce57 = var58; +var73 = ";"; +var74 = 1; +var75 = string__NativeString__to_s_with_length(var73, var74); +var72 = var75; +varonce71 = var72; } -var62 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var62 = array_instance Array[Object] */ -var63 = 4; -var64 = NEW_array__NativeArray(var63, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var64)->values[0] = (val*) var50; -((struct instance_array__NativeArray*)var64)->values[1] = (val*) var52; -((struct instance_array__NativeArray*)var64)->values[2] = (val*) var56; -((struct instance_array__NativeArray*)var64)->values[3] = (val*) var58; +var76 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var76 = array_instance Array[Object] */ +var77 = 4; +var78 = NEW_array__NativeArray(var77, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var78)->values[0] = (val*) var64; +((struct instance_array__NativeArray*)var78)->values[1] = (val*) var66; +((struct instance_array__NativeArray*)var78)->values[2] = (val*) var70; +((struct instance_array__NativeArray*)var78)->values[3] = (val*) var72; { -((void (*)(val*, val*, long))(var62->class->vft[COLOR_array__Array__with_native]))(var62, var64, var63) /* with_native on */; +((void (*)(val*, val*, long))(var76->class->vft[COLOR_array__Array__with_native]))(var76, var78, var77) /* with_native on */; } } { -var65 = ((val* (*)(val*))(var62->class->vft[COLOR_string__Object__to_s]))(var62) /* to_s on */; +var79 = ((val* (*)(val*))(var76->class->vft[COLOR_string__Object__to_s]))(var76) /* to_s on */; } { -abstract_compiler__CodeWriter__add_decl(var47, var65); /* Direct call abstract_compiler#CodeWriter#add_decl on */ +abstract_compiler__CodeWriter__add_decl(var61, var79); /* Direct call abstract_compiler#CodeWriter#add_decl on */ } -CONTINUE_label: (void)0; +BREAK_label: (void)0; { -hash_collection__HashMapIterator__next(var39); /* Direct call hash_collection#HashMapIterator#next on */ +hash_collection__HashMapIterator__next(var_40); /* Direct call hash_collection#HashMapIterator#next on */ +} +} else { +goto BREAK_label80; +} +} +BREAK_label80: (void)0; +{ +{ /* Inline abstract_collection#MapIterator#finish (var_40) on */ +RET_LABEL81:(void)0; } } -BREAK_label: (void)0; { { /* Inline abstract_compiler#AbstractCompiler#header (self) on */ -var68 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___header].val; /* _header on */ -if (unlikely(var68 == NULL)) { +var84 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___header].val; /* _header on */ +if (unlikely(var84 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506); show_backtrace(1); } -var66 = var68; -RET_LABEL67:(void)0; +var82 = var84; +RET_LABEL83:(void)0; } } -if (varonce69) { -var70 = varonce69; +if (varonce85) { +var86 = varonce85; } else { -var71 = "} nitattribute_t; /* general C type representing a Nit attribute. */"; -var72 = 68; -var73 = string__NativeString__to_s_with_length(var71, var72); -var70 = var73; -varonce69 = var70; +var87 = "} nitattribute_t; /* general C type representing a Nit attribute. */"; +var88 = 68; +var89 = string__NativeString__to_s_with_length(var87, var88); +var86 = var89; +varonce85 = var86; } { -abstract_compiler__CodeWriter__add_decl(var66, var70); /* Direct call abstract_compiler#CodeWriter#add_decl on */ +abstract_compiler__CodeWriter__add_decl(var82, var86); /* Direct call abstract_compiler#CodeWriter#add_decl on */ } } RET_LABEL:; @@ -2890,44 +2918,47 @@ val* var27 /* : String */; char* var28 /* : NativeString */; long var29 /* : Int */; val* var30 /* : FlatString */; -val* var31 /* : ArrayIterator[nullable Object] */; -short int var32 /* : Bool */; -val* var33 /* : nullable Object */; +val* var_31 /* var : Array[String] */; +val* var32 /* : ArrayIterator[nullable Object] */; +val* var_33 /* var : ArrayIterator[String] */; +short int var34 /* : Bool */; +val* var35 /* : nullable Object */; val* var_classname /* var classname: String */; -val* var34 /* : MModule */; val* var36 /* : MModule */; -val* var37 /* : Model */; +val* var38 /* : MModule */; val* var39 /* : Model */; -val* var40 /* : nullable Array[MClass] */; +val* var41 /* : Model */; +val* var42 /* : nullable Array[MClass] */; val* var_classes /* var classes: nullable Array[MClass] */; -val* var41 /* : null */; -short int var42 /* : Bool */; -short int var43 /* : Bool */; -long var44 /* : Int */; -long var45 /* : Int */; -short int var46 /* : Bool */; -short int var47 /* : Bool */; -short int var49 /* : Bool */; -static val* varonce50; -val* var51 /* : String */; -char* var52 /* : NativeString */; -long var53 /* : Int */; -val* var54 /* : FlatString */; +val* var43 /* : null */; +short int var44 /* : Bool */; +short int var45 /* : Bool */; +long var46 /* : Int */; +long var48 /* : Int */; +long var49 /* : Int */; +short int var50 /* : Bool */; +short int var51 /* : Bool */; +short int var53 /* : Bool */; +static val* varonce54; val* var55 /* : String */; -val* var56 /* : HashMap[MClass, Int] */; -val* var58 /* : HashMap[MClass, Int] */; -val* var59 /* : nullable Object */; +char* var56 /* : NativeString */; +long var57 /* : Int */; +val* var58 /* : FlatString */; +val* var59 /* : String */; val* var60 /* : HashMap[MClass, Int] */; val* var62 /* : HashMap[MClass, Int] */; -long var63 /* : Int */; -long var64 /* : Int */; -long var65 /* : Int */; -short int var67 /* : Bool */; +val* var63 /* : nullable Object */; +val* var64 /* : HashMap[MClass, Int] */; +val* var66 /* : HashMap[MClass, Int] */; +long var67 /* : Int */; +long var68 /* : Int */; +long var69 /* : Int */; +short int var71 /* : Bool */; int cltype; int idtype; const char* var_class_name; -long var68 /* : Int */; -val* var69 /* : nullable Object */; +long var72 /* : Int */; +val* var73 /* : nullable Object */; var = NEW_array__Array(&type_array__Arraystring__String); var1 = 6; { @@ -3006,151 +3037,165 @@ varonce26 = var27; { array__AbstractArray__push(var_, var27); /* Direct call array#AbstractArray#push on */ } +var_31 = var_; { -var31 = array__AbstractArrayRead__iterator(var_); +var32 = array__AbstractArrayRead__iterator(var_31); } +var_33 = var32; for(;;) { { -var32 = array__ArrayIterator__is_ok(var31); +var34 = array__ArrayIterator__is_ok(var_33); } -if(!var32) break; +if (var34){ { -var33 = array__ArrayIterator__item(var31); +var35 = array__ArrayIterator__item(var_33); } -var_classname = var33; +var_classname = var35; { { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on */ -var36 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ -if (unlikely(var36 == NULL)) { +var38 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ +if (unlikely(var38 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 436); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463); show_backtrace(1); } -var34 = var36; -RET_LABEL35:(void)0; +var36 = var38; +RET_LABEL37:(void)0; } } { -{ /* Inline mmodule#MModule#model (var34) on */ -var39 = var34->attrs[COLOR_mmodule__MModule___model].val; /* _model on */ -if (unlikely(var39 == NULL)) { +{ /* Inline mmodule#MModule#model (var36) on */ +var41 = var36->attrs[COLOR_mmodule__MModule___model].val; /* _model on */ +if (unlikely(var41 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); -PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 74); +PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 72); show_backtrace(1); } -var37 = var39; -RET_LABEL38:(void)0; +var39 = var41; +RET_LABEL40:(void)0; } } { -var40 = model__Model__get_mclasses_by_name(var37, var_classname); +var42 = model__Model__get_mclasses_by_name(var39, var_classname); } -var_classes = var40; -var41 = NULL; +var_classes = var42; +var43 = NULL; if (var_classes == NULL) { -var42 = 1; /* is null */ +var44 = 1; /* is null */ } else { -var42 = 0; /* arg is null but recv is not */ +var44 = 0; /* arg is null but recv is not */ } if (0) { -var43 = abstract_collection__SequenceRead___61d_61d(var_classes, var41); -var42 = var43; +var45 = array__Array___61d_61d(var_classes, var43); +var44 = var45; } -if (var42){ -goto CONTINUE_label; +if (var44){ +goto BREAK_label; } else { } { -var44 = array__AbstractArrayRead__length(var_classes); +{ /* Inline array#AbstractArrayRead#length (var_classes) on */ +var48 = var_classes->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ +var46 = var48; +RET_LABEL47:(void)0; } -var45 = 1; +} +var49 = 1; { -{ /* Inline kernel#Int#== (var44,var45) on */ -var49 = var44 == var45; -var47 = var49; -goto RET_LABEL48; -RET_LABEL48:(void)0; +{ /* Inline kernel#Int#== (var46,var49) on */ +var53 = var46 == var49; +var51 = var53; +goto RET_LABEL52; +RET_LABEL52:(void)0; } -var46 = var47; +var50 = var51; } -if (unlikely(!var46)) { -if (varonce50) { -var51 = varonce50; +if (unlikely(!var50)) { +if (varonce54) { +var55 = varonce54; } else { -var52 = ", "; -var53 = 2; -var54 = string__NativeString__to_s_with_length(var52, var53); -var51 = var54; -varonce50 = var51; +var56 = ", "; +var57 = 2; +var58 = string__NativeString__to_s_with_length(var56, var57); +var55 = var58; +varonce54 = var55; } { -var55 = string__Collection__join(var_classes, var51); +var59 = string__Collection__join(var_classes, var55); } { -file__Object__print(self, var55); /* Direct call file#Object#print on */ +file__Object__print(self, var59); /* Direct call file#Object#print on */ } PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 206); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 211); show_backtrace(1); } { { /* Inline separate_compiler#SeparateCompiler#box_kinds (self) on */ -var58 = self->attrs[COLOR_separate_compiler__SeparateCompiler___box_kinds].val; /* _box_kinds on */ -if (unlikely(var58 == NULL)) { +var62 = self->attrs[COLOR_separate_compiler__SeparateCompiler___box_kinds].val; /* _box_kinds on */ +if (unlikely(var62 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 211); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 216); show_backtrace(1); } -var56 = var58; -RET_LABEL57:(void)0; +var60 = var62; +RET_LABEL61:(void)0; } } { -var59 = abstract_collection__SequenceRead__first(var_classes); +var63 = abstract_collection__SequenceRead__first(var_classes); } { { /* Inline separate_compiler#SeparateCompiler#box_kinds (self) on */ -var62 = self->attrs[COLOR_separate_compiler__SeparateCompiler___box_kinds].val; /* _box_kinds on */ -if (unlikely(var62 == NULL)) { +var66 = self->attrs[COLOR_separate_compiler__SeparateCompiler___box_kinds].val; /* _box_kinds on */ +if (unlikely(var66 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 211); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 216); show_backtrace(1); } -var60 = var62; -RET_LABEL61:(void)0; +var64 = var66; +RET_LABEL65:(void)0; } } { -var63 = hash_collection__HashMap__length(var60); +var67 = hash_collection__HashMap__length(var64); } -var64 = 1; +var68 = 1; { -{ /* Inline kernel#Int#+ (var63,var64) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var67 = 1; /* easy isa OTHER*/ -if (unlikely(!var67)) { +{ /* Inline kernel#Int#+ (var67,var68) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var71 = 1; /* easy isa OTHER*/ +if (unlikely(!var71)) { var_class_name = type_kernel__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); show_backtrace(1); } -var68 = var63 + var64; -var65 = var68; -goto RET_LABEL66; -RET_LABEL66:(void)0; +var72 = var67 + var68; +var69 = var72; +goto RET_LABEL70; +RET_LABEL70:(void)0; } } { -var69 = BOX_kernel__Int(var65); /* autobox from Int to nullable Object */ -hash_collection__HashMap___91d_93d_61d(var56, var59, var69); /* Direct call hash_collection#HashMap#[]= on */ +var73 = BOX_kernel__Int(var69); /* autobox from Int to nullable Object */ +hash_collection__HashMap___91d_93d_61d(var60, var63, var73); /* Direct call hash_collection#HashMap#[]= on */ } -CONTINUE_label: (void)0; +BREAK_label: (void)0; { -array__ArrayIterator__next(var31); /* Direct call array#ArrayIterator#next on */ +array__ArrayIterator__next(var_33); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label74; +} +} +BREAK_label74: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_33) on */ +RET_LABEL75:(void)0; } } -BREAK_label: (void)0; RET_LABEL:; } /* method separate_compiler#SeparateCompiler#compile_box_kinds for (self: Object) */ @@ -3165,7 +3210,7 @@ val* var1 /* : HashMap[MClass, Int] */; var1 = self->attrs[COLOR_separate_compiler__SeparateCompiler___box_kinds].val; /* _box_kinds on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 211); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 216); show_backtrace(1); } var = var1; @@ -3181,7 +3226,7 @@ val* var3 /* : HashMap[MClass, Int] */; var3 = self->attrs[COLOR_separate_compiler__SeparateCompiler___box_kinds].val; /* _box_kinds on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 211); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 216); show_backtrace(1); } var1 = var3; @@ -3206,37 +3251,52 @@ val* var8 /* : FlatString */; short int var9 /* : Bool */; short int var10 /* : Bool */; long var11 /* : Int */; -val* var12 /* : MClassKind */; -val* var14 /* : MClassKind */; +short int var12 /* : Bool */; +val* var13 /* : MClassKind */; val* var15 /* : MClassKind */; -short int var16 /* : Bool */; +val* var16 /* : MClassKind */; short int var17 /* : Bool */; +short int var18 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var19 /* : Bool */; -short int var21 /* : Bool */; -val* var22 /* : HashMap[MClass, Int] */; -val* var24 /* : HashMap[MClass, Int] */; -val* var25 /* : MModule */; -val* var27 /* : MModule */; -static val* varonce28; -val* var29 /* : String */; -char* var30 /* : NativeString */; -long var31 /* : Int */; -val* var32 /* : FlatString */; -val* var33 /* : MClass */; -val* var34 /* : nullable Object */; -long var35 /* : Int */; -val* var36 /* : HashMap[MClass, Int] */; +short int var20 /* : Bool */; +short int var22 /* : Bool */; +short int var_ /* var : Bool */; +val* var23 /* : String */; +val* var25 /* : String */; +static val* varonce26; +val* var27 /* : String */; +char* var28 /* : NativeString */; +long var29 /* : Int */; +val* var30 /* : FlatString */; +short int var31 /* : Bool */; +short int var32 /* : Bool */; +val* var_other34 /* var other: nullable Object */; +short int var35 /* : Bool */; +short int var36 /* : Bool */; +short int var37 /* : Bool */; val* var38 /* : HashMap[MClass, Int] */; -val* var39 /* : nullable Object */; -long var40 /* : Int */; +val* var40 /* : HashMap[MClass, Int] */; +val* var41 /* : MModule */; +val* var43 /* : MModule */; +static val* varonce44; +val* var45 /* : String */; +char* var46 /* : NativeString */; +long var47 /* : Int */; +val* var48 /* : FlatString */; +val* var49 /* : MClass */; +val* var50 /* : nullable Object */; +long var51 /* : Int */; +val* var52 /* : HashMap[MClass, Int] */; +val* var54 /* : HashMap[MClass, Int] */; +val* var55 /* : nullable Object */; +long var56 /* : Int */; var_mclass = p0; { { /* Inline model#MClass#mclass_type (var_mclass) on */ var3 = var_mclass->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); -PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435); show_backtrace(1); } var1 = var3; @@ -3244,7 +3304,7 @@ RET_LABEL2:(void)0; } } { -var4 = abstract_compiler__MClassType__ctype(var1); +var4 = abstract_compiler__MClassType__ctype_extern(var1); } if (varonce) { var5 = varonce; @@ -3266,97 +3326,138 @@ goto RET_LABEL; } else { { { /* Inline model#MClass#kind (var_mclass) on */ -var14 = var_mclass->attrs[COLOR_model__MClass___kind].val; /* _kind on */ -if (unlikely(var14 == NULL)) { +var15 = var_mclass->attrs[COLOR_model__MClass___kind].val; /* _kind on */ +if (unlikely(var15 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind"); -PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371); show_backtrace(1); } -var12 = var14; -RET_LABEL13:(void)0; +var13 = var15; +RET_LABEL14:(void)0; } } { -var15 = model__Object__extern_kind(self); +var16 = model__Object__extern_kind(self); } { -{ /* Inline kernel#Object#== (var12,var15) on */ -var_other = var15; +{ /* Inline kernel#Object#== (var13,var16) on */ +var_other = var16; { -{ /* Inline kernel#Object#is_same_instance (var12,var_other) on */ -var21 = var12 == var_other; -var19 = var21; -goto RET_LABEL20; -RET_LABEL20:(void)0; +{ /* Inline kernel#Object#is_same_instance (var13,var_other) on */ +var22 = var13 == var_other; +var20 = var22; +goto RET_LABEL21; +RET_LABEL21:(void)0; } } -var17 = var19; -goto RET_LABEL18; -RET_LABEL18:(void)0; +var18 = var20; +goto RET_LABEL19; +RET_LABEL19:(void)0; +} +var17 = var18; +} +var_ = var17; +if (var17){ +{ +{ /* Inline model#MClass#name (var_mclass) on */ +var25 = var_mclass->attrs[COLOR_model__MClass___name].val; /* _name on */ +if (unlikely(var25 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 352); +show_backtrace(1); +} +var23 = var25; +RET_LABEL24:(void)0; +} +} +if (varonce26) { +var27 = varonce26; +} else { +var28 = "NativeString"; +var29 = 12; +var30 = string__NativeString__to_s_with_length(var28, var29); +var27 = var30; +varonce26 = var27; } -var16 = var17; +{ +{ /* Inline kernel#Object#!= (var23,var27) on */ +var_other34 = var27; +{ +var36 = ((short int (*)(val*, val*))(var23->class->vft[COLOR_kernel__Object___61d_61d]))(var23, var_other34) /* == on */; +var35 = var36; +} +var37 = !var35; +var32 = var37; +goto RET_LABEL33; +RET_LABEL33:(void)0; } -if (var16){ +var31 = var32; +} +var12 = var31; +} else { +var12 = var_; +} +if (var12){ { { /* Inline separate_compiler#SeparateCompiler#box_kinds (self) on */ -var24 = self->attrs[COLOR_separate_compiler__SeparateCompiler___box_kinds].val; /* _box_kinds on */ -if (unlikely(var24 == NULL)) { +var40 = self->attrs[COLOR_separate_compiler__SeparateCompiler___box_kinds].val; /* _box_kinds on */ +if (unlikely(var40 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 211); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 216); show_backtrace(1); } -var22 = var24; -RET_LABEL23:(void)0; +var38 = var40; +RET_LABEL39:(void)0; } } { { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on */ -var27 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ -if (unlikely(var27 == NULL)) { +var43 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ +if (unlikely(var43 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 436); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463); show_backtrace(1); } -var25 = var27; -RET_LABEL26:(void)0; +var41 = var43; +RET_LABEL42:(void)0; } } -if (varonce28) { -var29 = varonce28; +if (varonce44) { +var45 = varonce44; } else { -var30 = "Pointer"; -var31 = 7; -var32 = string__NativeString__to_s_with_length(var30, var31); -var29 = var32; -varonce28 = var29; +var46 = "Pointer"; +var47 = 7; +var48 = string__NativeString__to_s_with_length(var46, var47); +var45 = var48; +varonce44 = var45; } { -var33 = model__MModule__get_primitive_class(var25, var29); +var49 = model__MModule__get_primitive_class(var41, var45); } { -var34 = hash_collection__HashMap___91d_93d(var22, var33); +var50 = hash_collection__HashMap___91d_93d(var38, var49); } -var35 = ((struct instance_kernel__Int*)var34)->value; /* autounbox from nullable Object to Int */; -var = var35; +var51 = ((struct instance_kernel__Int*)var50)->value; /* autounbox from nullable Object to Int */; +var = var51; goto RET_LABEL; } else { { { /* Inline separate_compiler#SeparateCompiler#box_kinds (self) on */ -var38 = self->attrs[COLOR_separate_compiler__SeparateCompiler___box_kinds].val; /* _box_kinds on */ -if (unlikely(var38 == NULL)) { +var54 = self->attrs[COLOR_separate_compiler__SeparateCompiler___box_kinds].val; /* _box_kinds on */ +if (unlikely(var54 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 211); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 216); show_backtrace(1); } -var36 = var38; -RET_LABEL37:(void)0; +var52 = var54; +RET_LABEL53:(void)0; } } { -var39 = hash_collection__HashMap___91d_93d(var36, var_mclass); +var55 = hash_collection__HashMap___91d_93d(var52, var_mclass); } -var40 = ((struct instance_kernel__Int*)var39)->value; /* autounbox from nullable Object to Int */; -var = var40; +var56 = ((struct instance_kernel__Int*)var55)->value; /* autounbox from nullable Object to Int */; +var = var56; goto RET_LABEL; } } @@ -3377,44 +3478,55 @@ void separate_compiler__SeparateCompiler__compile_color_consts(val* self, val* p val* var_colors /* var colors: Map[Object, Int] */; val* var /* : AbstractCompilerVisitor */; val* var_v /* var v: SeparateCompilerVisitor */; +val* var_ /* var : Map[Object, Int] */; val* var1 /* : MapIterator[Object, nullable Object] */; -short int var2 /* : Bool */; -val* var3 /* : Object */; +val* var_2 /* var : MapIterator[Object, Int] */; +short int var3 /* : Bool */; +val* var4 /* : Object */; val* var_m /* var m: Object */; -val* var4 /* : nullable Object */; +val* var5 /* : nullable Object */; +long var6 /* : Int */; long var_c /* var c: Int */; -long var5 /* : Int */; var_colors = p0; { var = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__new_visitor]))(self) /* new_visitor on */; } var_v = var; +var_ = var_colors; { -var1 = ((val* (*)(val*))(var_colors->class->vft[COLOR_abstract_collection__MapRead__iterator]))(var_colors) /* iterator on */; +var1 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__MapRead__iterator]))(var_) /* iterator on */; } +var_2 = var1; for(;;) { { -var2 = ((short int (*)(val*))(var1->class->vft[COLOR_abstract_collection__MapIterator__is_ok]))(var1) /* is_ok on */; +var3 = ((short int (*)(val*))(var_2->class->vft[COLOR_abstract_collection__MapIterator__is_ok]))(var_2) /* is_ok on */; } -if(!var2) break; +if (var3){ { -var3 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__MapIterator__key]))(var1) /* key on */; +var4 = ((val* (*)(val*))(var_2->class->vft[COLOR_abstract_collection__MapIterator__key]))(var_2) /* key on */; } -var_m = var3; +var_m = var4; { -var4 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__MapIterator__item]))(var1) /* item on */; +var5 = ((val* (*)(val*))(var_2->class->vft[COLOR_abstract_collection__MapIterator__item]))(var_2) /* item on */; } -var5 = ((struct instance_kernel__Int*)var4)->value; /* autounbox from nullable Object to Int */; -var_c = var5; +var6 = ((struct instance_kernel__Int*)var5)->value; /* autounbox from nullable Object to Int */; +var_c = var6; { separate_compiler__SeparateCompiler__compile_color_const(self, var_v, var_m, var_c); /* Direct call separate_compiler#SeparateCompiler#compile_color_const on */ } -CONTINUE_label: (void)0; { -((void (*)(val*))(var1->class->vft[COLOR_abstract_collection__MapIterator__next]))(var1) /* next on */; +((void (*)(val*))(var_2->class->vft[COLOR_abstract_collection__MapIterator__next]))(var_2) /* next on */; +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; +{ +{ /* Inline abstract_collection#MapIterator#finish (var_2) on */ +RET_LABEL7:(void)0; +} +} RET_LABEL:; } /* method separate_compiler#SeparateCompiler#compile_color_consts for (self: Object, Map[Object, Int]) */ @@ -3638,7 +3750,7 @@ var_color = p2; var2 = self->attrs[COLOR_separate_compiler__SeparateCompiler___color_consts_done].val; /* _color_consts_done on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _color_consts_done"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 259); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 266); show_backtrace(1); } var = var2; @@ -3666,7 +3778,7 @@ if (var4){ var7 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ if (unlikely(var7 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 443); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 470); show_backtrace(1); } var5 = var7; @@ -3678,7 +3790,7 @@ RET_LABEL6:(void)0; var10 = var5->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ if (unlikely(var10 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); -PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106); show_backtrace(1); } var8 = var10; @@ -3690,7 +3802,7 @@ RET_LABEL9:(void)0; var13 = var8->attrs[COLOR_separate_compiler__ToolContext___opt_inline_coloring_numbers].val; /* _opt_inline_coloring_numbers on */ if (unlikely(var13 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_coloring_numbers"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 32); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 32); show_backtrace(1); } var11 = var13; @@ -3857,7 +3969,7 @@ if (var71){ var76 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ if (unlikely(var76 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 443); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 470); show_backtrace(1); } var74 = var76; @@ -3869,7 +3981,7 @@ RET_LABEL75:(void)0; var79 = var74->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ if (unlikely(var79 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); -PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106); show_backtrace(1); } var77 = var79; @@ -3881,7 +3993,7 @@ RET_LABEL78:(void)0; var82 = var77->attrs[COLOR_separate_compiler__ToolContext___opt_inline_coloring_numbers].val; /* _opt_inline_coloring_numbers on */ if (unlikely(var82 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_coloring_numbers"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 32); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 32); show_backtrace(1); } var80 = var82; @@ -4048,7 +4160,7 @@ if (var141){ var146 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ if (unlikely(var146 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 443); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 470); show_backtrace(1); } var144 = var146; @@ -4060,7 +4172,7 @@ RET_LABEL145:(void)0; var149 = var144->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ if (unlikely(var149 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); -PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106); show_backtrace(1); } var147 = var149; @@ -4072,7 +4184,7 @@ RET_LABEL148:(void)0; var152 = var147->attrs[COLOR_separate_compiler__ToolContext___opt_inline_coloring_numbers].val; /* _opt_inline_coloring_numbers on */ if (unlikely(var152 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_coloring_numbers"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 32); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 32); show_backtrace(1); } var150 = var152; @@ -4233,7 +4345,7 @@ abstract_compiler__AbstractCompilerVisitor__add(var_v, var210); /* Direct call a var213 = self->attrs[COLOR_separate_compiler__SeparateCompiler___color_consts_done].val; /* _color_consts_done on */ if (unlikely(var213 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _color_consts_done"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 259); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 266); show_backtrace(1); } var211 = var213; @@ -4257,7 +4369,7 @@ val* var1 /* : HashSet[Object] */; var1 = self->attrs[COLOR_separate_compiler__SeparateCompiler___color_consts_done].val; /* _color_consts_done on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _color_consts_done"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 259); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 266); show_backtrace(1); } var = var1; @@ -4273,7 +4385,7 @@ val* var3 /* : HashSet[Object] */; var3 = self->attrs[COLOR_separate_compiler__SeparateCompiler___color_consts_done].val; /* _color_consts_done on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _color_consts_done"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 259); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 266); show_backtrace(1); } var1 = var3; @@ -4296,13 +4408,15 @@ val* var7 /* : HashSet[MClass] */; val* var_mclasses /* var mclasses: HashSet[MClass] */; val* var8 /* : POSetColorer[MClass] */; val* var_colorer /* var colorer: POSetColorer[MClass] */; -val* var10 /* : Array[MMethod] */; +val* var9 /* : Array[MMethod] */; val* var_dead_methods /* var dead_methods: Array[MMethod] */; -val* var11 /* : HashMap[MClass, Set[PropertyLayoutElement]] */; +val* var10 /* : HashMap[MClass, Set[PropertyLayoutElement]] */; val* var_mmethods /* var mmethods: HashMap[MClass, Set[PropertyLayoutElement]] */; -val* var12 /* : HashMap[MClass, Set[MAttribute]] */; +val* var11 /* : HashMap[MClass, Set[MAttribute]] */; val* var_mattributes /* var mattributes: HashMap[MClass, Set[MAttribute]] */; -val* var13 /* : Iterator[Object] */; +val* var_ /* var : HashSet[MClass] */; +val* var12 /* : Iterator[Object] */; +val* var_13 /* var : Iterator[MClass] */; short int var14 /* : Bool */; val* var15 /* : nullable Object */; val* var_mclass /* var mclass: MClass */; @@ -4311,131 +4425,147 @@ val* var17 /* : HashSet[MAttribute] */; val* var18 /* : MModule */; val* var20 /* : MModule */; val* var21 /* : Set[MProperty] */; -val* var22 /* : Iterator[nullable Object] */; -short int var23 /* : Bool */; -val* var24 /* : nullable Object */; -val* var_mprop /* var mprop: MProperty */; +val* var_22 /* var : Set[MProperty] */; +val* var23 /* : Iterator[nullable Object] */; +val* var_24 /* var : Iterator[MProperty] */; short int var25 /* : Bool */; +val* var26 /* : nullable Object */; +val* var_mprop /* var mprop: MProperty */; +short int var27 /* : Bool */; int cltype; int idtype; -short int var26 /* : Bool */; -short int var27 /* : Bool */; -val* var28 /* : ModelBuilder */; +short int var28 /* : Bool */; +short int var29 /* : Bool */; val* var30 /* : ModelBuilder */; -val* var31 /* : ToolContext */; +val* var32 /* : ModelBuilder */; val* var33 /* : ToolContext */; -val* var34 /* : OptionBool */; +val* var35 /* : ToolContext */; val* var36 /* : OptionBool */; -val* var37 /* : nullable Object */; +val* var38 /* : OptionBool */; val* var39 /* : nullable Object */; -short int var40 /* : Bool */; -short int var41 /* : Bool */; -short int var_ /* var : Bool */; -val* var42 /* : null */; +val* var41 /* : nullable Object */; +short int var42 /* : Bool */; short int var43 /* : Bool */; -short int var44 /* : Bool */; -val* var_other /* var other: nullable Object */; +short int var_44 /* var : Bool */; +val* var45 /* : null */; short int var46 /* : Bool */; short int var47 /* : Bool */; -short int var48 /* : Bool */; -short int var_49 /* var : Bool */; -val* var50 /* : HashSet[MMethod] */; -val* var52 /* : HashSet[MMethod] */; -short int var53 /* : Bool */; -short int var54 /* : Bool */; -val* var55 /* : nullable Object */; +val* var_other /* var other: nullable Object */; +short int var49 /* : Bool */; +short int var50 /* : Bool */; +short int var51 /* : Bool */; +short int var_52 /* var : Bool */; +val* var53 /* : HashSet[MMethod] */; +val* var55 /* : HashSet[MMethod] */; short int var56 /* : Bool */; -int cltype57; -int idtype58; -val* var59 /* : nullable Object */; -val* var61 /* : HashSet[MMethodDef] */; +short int var57 /* : Bool */; +val* var58 /* : nullable Object */; +short int var59 /* : Bool */; +int cltype60; +int idtype61; +val* var62 /* : nullable Object */; +val* var67 /* : HashSet[MMethodDef] */; val* var_all_super_calls /* var all_super_calls: HashSet[MMethodDef] */; -val* var62 /* : MModule */; -val* var64 /* : MModule */; -val* var65 /* : POSetElement[MModule] */; -val* var67 /* : POSetElement[MModule] */; -val* var68 /* : Collection[Object] */; -val* var69 /* : Iterator[nullable Object] */; -short int var70 /* : Bool */; -val* var71 /* : nullable Object */; +val* var68 /* : MModule */; +val* var70 /* : MModule */; +val* var71 /* : POSetElement[MModule] */; +val* var73 /* : POSetElement[MModule] */; +val* var74 /* : Collection[Object] */; +val* var_75 /* var : Collection[MModule] */; +val* var76 /* : Iterator[nullable Object] */; +val* var_77 /* var : Iterator[MModule] */; +short int var78 /* : Bool */; +val* var79 /* : nullable Object */; val* var_mmodule /* var mmodule: MModule */; -val* var72 /* : Array[MClassDef] */; -val* var74 /* : Array[MClassDef] */; -val* var75 /* : ArrayIterator[nullable Object] */; -short int var76 /* : Bool */; -val* var77 /* : nullable Object */; +val* var80 /* : Array[MClassDef] */; +val* var82 /* : Array[MClassDef] */; +val* var_83 /* var : Array[MClassDef] */; +val* var84 /* : ArrayIterator[nullable Object] */; +val* var_85 /* var : ArrayIterator[MClassDef] */; +short int var86 /* : Bool */; +val* var87 /* : nullable Object */; val* var_mclassdef /* var mclassdef: MClassDef */; -val* var78 /* : Array[MPropDef] */; -val* var80 /* : Array[MPropDef] */; -val* var81 /* : ArrayIterator[nullable Object] */; -short int var82 /* : Bool */; -val* var83 /* : nullable Object */; +val* var88 /* : Array[MPropDef] */; +val* var90 /* : Array[MPropDef] */; +val* var_91 /* var : Array[MPropDef] */; +val* var92 /* : ArrayIterator[nullable Object] */; +val* var_93 /* var : ArrayIterator[MPropDef] */; +short int var94 /* : Bool */; +val* var95 /* : nullable Object */; val* var_mpropdef /* var mpropdef: MPropDef */; -short int var84 /* : Bool */; -int cltype85; -int idtype86; -short int var87 /* : Bool */; -short int var89 /* : Bool */; -short int var91 /* : Bool */; -val* var94 /* : null */; -short int var95 /* : Bool */; short int var96 /* : Bool */; -short int var98 /* : Bool */; +int cltype97; +int idtype98; short int var99 /* : Bool */; -short int var100 /* : Bool */; -val* var101 /* : HashSet[MMethodDef] */; -val* var103 /* : HashSet[MMethodDef] */; +short int var101 /* : Bool */; +short int var103 /* : Bool */; +val* var110 /* : null */; +short int var111 /* : Bool */; +short int var112 /* : Bool */; +short int var114 /* : Bool */; +short int var115 /* : Bool */; +short int var116 /* : Bool */; +val* var117 /* : HashSet[MMethodDef] */; +val* var119 /* : HashSet[MMethodDef] */; val* var_super_calls /* var super_calls: nullable Object */; -val* var104 /* : Iterator[Object] */; -short int var105 /* : Bool */; -val* var106 /* : nullable Object */; +val* var_120 /* var : HashSet[MMethodDef] */; +val* var121 /* : Iterator[Object] */; +val* var_122 /* var : Iterator[MMethodDef] */; +short int var123 /* : Bool */; +val* var124 /* : nullable Object */; val* var_mmethoddef /* var mmethoddef: MMethodDef */; -val* var107 /* : MClassDef */; -val* var109 /* : MClassDef */; -val* var110 /* : MClass */; -val* var112 /* : MClass */; -val* var_mclass113 /* var mclass: MClass */; -val* var114 /* : nullable Object */; -val* var115 /* : MModule */; -val* var117 /* : MModule */; -val* var118 /* : POSetElement[MClass] */; -val* var119 /* : Collection[Object] */; -val* var120 /* : Iterator[nullable Object] */; -short int var121 /* : Bool */; -val* var122 /* : nullable Object */; +val* var125 /* : MClassDef */; +val* var127 /* : MClassDef */; +val* var128 /* : MClass */; +val* var130 /* : MClass */; +val* var_mclass131 /* var mclass: MClass */; +val* var132 /* : nullable Object */; +val* var133 /* : MModule */; +val* var135 /* : MModule */; +val* var136 /* : POSetElement[MClass] */; +val* var137 /* : Collection[Object] */; +val* var_138 /* var : Collection[MClass] */; +val* var139 /* : Iterator[nullable Object] */; +val* var_140 /* var : Iterator[MClass] */; +short int var141 /* : Bool */; +val* var142 /* : nullable Object */; val* var_descendant /* var descendant: MClass */; -val* var123 /* : nullable Object */; -val* var126 /* : POSetBucketsColorer[MClass, PropertyLayoutElement] */; -val* var127 /* : Map[Object, Set[Object]] */; +val* var143 /* : nullable Object */; +val* var148 /* : POSetBucketsColorer[MClass, PropertyLayoutElement] */; +val* var149 /* : Map[Object, Set[Object]] */; val* var_meth_colorer /* var meth_colorer: POSetBucketsColorer[MClass, PropertyLayoutElement] */; -val* var128 /* : Map[Object, Int] */; -val* var130 /* : Map[MClass, Array[nullable MPropDef]] */; -val* var132 /* : Map[PropertyLayoutElement, Int] */; -val* var134 /* : Map[PropertyLayoutElement, Int] */; -val* var135 /* : ArrayIterator[nullable Object] */; -short int var136 /* : Bool */; -val* var137 /* : nullable Object */; +val* var150 /* : Map[Object, Int] */; +val* var152 /* : Map[MClass, Array[nullable MPropDef]] */; +val* var154 /* : Map[PropertyLayoutElement, Int] */; +val* var156 /* : Map[PropertyLayoutElement, Int] */; +val* var_157 /* var : Array[MMethod] */; +val* var158 /* : ArrayIterator[nullable Object] */; +val* var_159 /* var : ArrayIterator[MMethod] */; +short int var160 /* : Bool */; +val* var161 /* : nullable Object */; val* var_mproperty /* var mproperty: MMethod */; -val* var138 /* : AbstractCompilerVisitor */; -long var139 /* : Int */; -long var140 /* : Int */; -long var142 /* : Int */; -val* var144 /* : Iterator[Object] */; -short int var145 /* : Bool */; -val* var146 /* : nullable Object */; -val* var_mpropdef147 /* var mpropdef: MMethodDef */; -short int var148 /* : Bool */; -val* var150 /* : AbstractCompilerVisitor */; -long var151 /* : Int */; -long var152 /* : Int */; -long var154 /* : Int */; -val* var155 /* : POSetBucketsColorer[MClass, MAttribute] */; -val* var156 /* : Map[Object, Set[Object]] */; +val* var162 /* : AbstractCompilerVisitor */; +long var163 /* : Int */; +long var164 /* : Int */; +long var166 /* : Int */; +val* var_169 /* var : HashSet[MMethodDef] */; +val* var170 /* : Iterator[Object] */; +val* var_171 /* var : Iterator[MMethodDef] */; +short int var172 /* : Bool */; +val* var173 /* : nullable Object */; +val* var_mpropdef174 /* var mpropdef: MMethodDef */; +short int var175 /* : Bool */; +val* var177 /* : AbstractCompilerVisitor */; +long var178 /* : Int */; +long var179 /* : Int */; +long var181 /* : Int */; +val* var184 /* : POSetBucketsColorer[MClass, MAttribute] */; +val* var185 /* : Map[Object, Set[Object]] */; val* var_attr_colorer /* var attr_colorer: POSetBucketsColorer[MClass, MAttribute] */; -val* var157 /* : Map[Object, Int] */; -val* var159 /* : Map[MClass, Array[nullable MPropDef]] */; -val* var161 /* : Map[MAttribute, Int] */; -val* var163 /* : Map[MAttribute, Int] */; +val* var186 /* : Map[Object, Int] */; +val* var188 /* : Map[MClass, Array[nullable MPropDef]] */; +val* var190 /* : Map[MAttribute, Int] */; +val* var192 /* : Map[MAttribute, Int] */; { { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on */ var2 = self->attrs[COLOR_separate_compiler__SeparateCompiler___runtime_type_analysis].val; /* _runtime_type_analysis on */ @@ -4449,7 +4579,7 @@ var_rta = var; var5 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 436); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463); show_backtrace(1); } var3 = var5; @@ -4467,51 +4597,51 @@ hash_collection__HashSet__from(var7, var_poset); /* Direct call hash_collection# var_mclasses = var7; var8 = NEW_coloring__POSetColorer(&type_coloring__POSetColorermodel__MClass); { -{ /* Inline coloring#POSetColorer#init (var8) on */ -RET_LABEL9:(void)0; -} +((void (*)(val*))(var8->class->vft[COLOR_kernel__Object__init]))(var8) /* init on */; } var_colorer = var8; { coloring__POSetColorer__colorize(var_colorer, var_poset); /* Direct call coloring#POSetColorer#colorize on */ } -var10 = NEW_array__Array(&type_array__Arraymodel__MMethod); +var9 = NEW_array__Array(&type_array__Arraymodel__MMethod); { -array__Array__init(var10); /* Direct call array#Array#init on */ +((void (*)(val*))(var9->class->vft[COLOR_kernel__Object__init]))(var9) /* init on */; } -var_dead_methods = var10; -var11 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassabstract_collection__Setseparate_compiler__PropertyLayoutElement); +var_dead_methods = var9; +var10 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassabstract_collection__Setseparate_compiler__PropertyLayoutElement); { -hash_collection__HashMap__init(var11); /* Direct call hash_collection#HashMap#init on */ +((void (*)(val*))(var10->class->vft[COLOR_kernel__Object__init]))(var10) /* init on */; } -var_mmethods = var11; -var12 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MAttribute); +var_mmethods = var10; +var11 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MAttribute); { -hash_collection__HashMap__init(var12); /* Direct call hash_collection#HashMap#init on */ +((void (*)(val*))(var11->class->vft[COLOR_kernel__Object__init]))(var11) /* init on */; } -var_mattributes = var12; +var_mattributes = var11; +var_ = var_mclasses; { -var13 = hash_collection__HashSet__iterator(var_mclasses); +var12 = hash_collection__HashSet__iterator(var_); } +var_13 = var12; for(;;) { { -var14 = ((short int (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var13) /* is_ok on */; +var14 = ((short int (*)(val*))(var_13->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_13) /* is_ok on */; } -if(!var14) break; +if (var14){ { -var15 = ((val* (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__item]))(var13) /* item on */; +var15 = ((val* (*)(val*))(var_13->class->vft[COLOR_abstract_collection__Iterator__item]))(var_13) /* item on */; } var_mclass = var15; var16 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetseparate_compiler__PropertyLayoutElement); { -hash_collection__HashSet__init(var16); /* Direct call hash_collection#HashSet#init on */ +((void (*)(val*))(var16->class->vft[COLOR_kernel__Object__init]))(var16) /* init on */; } { hash_collection__HashMap___91d_93d_61d(var_mmethods, var_mclass, var16); /* Direct call hash_collection#HashMap#[]= on */ } var17 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MAttribute); { -hash_collection__HashSet__init(var17); /* Direct call hash_collection#HashSet#init on */ +((void (*)(val*))(var17->class->vft[COLOR_kernel__Object__init]))(var17) /* init on */; } { hash_collection__HashMap___91d_93d_61d(var_mattributes, var_mclass, var17); /* Direct call hash_collection#HashMap#[]= on */ @@ -4521,7 +4651,7 @@ hash_collection__HashMap___91d_93d_61d(var_mattributes, var_mclass, var17); /* D var20 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ if (unlikely(var20 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 436); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463); show_backtrace(1); } var18 = var20; @@ -4531,582 +4661,664 @@ RET_LABEL19:(void)0; { var21 = abstract_compiler__MModule__properties(var18, var_mclass); } +var_22 = var21; { -var22 = ((val* (*)(val*))(var21->class->vft[COLOR_abstract_collection__Collection__iterator]))(var21) /* iterator on */; +var23 = ((val* (*)(val*))(var_22->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_22) /* iterator on */; } +var_24 = var23; for(;;) { { -var23 = ((short int (*)(val*))(var22->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var22) /* is_ok on */; +var25 = ((short int (*)(val*))(var_24->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_24) /* is_ok on */; } -if(!var23) break; +if (var25){ { -var24 = ((val* (*)(val*))(var22->class->vft[COLOR_abstract_collection__Iterator__item]))(var22) /* item on */; +var26 = ((val* (*)(val*))(var_24->class->vft[COLOR_abstract_collection__Iterator__item]))(var_24) /* item on */; } -var_mprop = var24; +var_mprop = var26; /* isa MMethod */ cltype = type_model__MMethod.color; idtype = type_model__MMethod.id; if(cltype >= var_mprop->type->table_size) { -var25 = 0; +var27 = 0; } else { -var25 = var_mprop->type->type_table[cltype] == idtype; +var27 = var_mprop->type->type_table[cltype] == idtype; } -if (var25){ +if (var27){ { { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on */ -var30 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ -if (unlikely(var30 == NULL)) { +var32 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ +if (unlikely(var32 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 443); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 470); show_backtrace(1); } -var28 = var30; -RET_LABEL29:(void)0; +var30 = var32; +RET_LABEL31:(void)0; } } { -{ /* Inline modelbuilder#ModelBuilder#toolcontext (var28) on */ -var33 = var28->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ -if (unlikely(var33 == NULL)) { +{ /* Inline modelbuilder#ModelBuilder#toolcontext (var30) on */ +var35 = var30->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var35 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); -PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106); show_backtrace(1); } -var31 = var33; -RET_LABEL32:(void)0; +var33 = var35; +RET_LABEL34:(void)0; } } { -{ /* Inline separate_compiler#ToolContext#opt_colo_dead_methods (var31) on */ -var36 = var31->attrs[COLOR_separate_compiler__ToolContext___opt_colo_dead_methods].val; /* _opt_colo_dead_methods on */ -if (unlikely(var36 == NULL)) { +{ /* Inline separate_compiler#ToolContext#opt_colo_dead_methods (var33) on */ +var38 = var33->attrs[COLOR_separate_compiler__ToolContext___opt_colo_dead_methods].val; /* _opt_colo_dead_methods on */ +if (unlikely(var38 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_colo_dead_methods"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 42); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 42); show_backtrace(1); } -var34 = var36; -RET_LABEL35:(void)0; +var36 = var38; +RET_LABEL37:(void)0; } } { -{ /* Inline opts#Option#value (var34) on */ -var39 = var34->attrs[COLOR_opts__Option___value].val; /* _value on */ -var37 = var39; -RET_LABEL38:(void)0; +{ /* Inline opts#Option#value (var36) on */ +var41 = var36->attrs[COLOR_opts__Option___value].val; /* _value on */ +var39 = var41; +RET_LABEL40:(void)0; } } -var40 = ((struct instance_kernel__Bool*)var37)->value; /* autounbox from nullable Object to Bool */; -var41 = !var40; -var_ = var41; -if (var41){ -var42 = NULL; +var42 = ((struct instance_kernel__Bool*)var39)->value; /* autounbox from nullable Object to Bool */; +var43 = !var42; +var_44 = var43; +if (var43){ +var45 = NULL; if (var_rta == NULL) { -var43 = 0; /* is null */ +var46 = 0; /* is null */ } else { -var43 = 1; /* arg is null and recv is not */ +var46 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_rta,var42) on */ -var_other = var42; +{ /* Inline kernel#Object#!= (var_rta,var45) on */ +var_other = var45; { -var47 = ((short int (*)(val*, val*))(var_rta->class->vft[COLOR_kernel__Object___61d_61d]))(var_rta, var_other) /* == on */; -var46 = var47; +var50 = ((short int (*)(val*, val*))(var_rta->class->vft[COLOR_kernel__Object___61d_61d]))(var_rta, var_other) /* == on */; +var49 = var50; } -var48 = !var46; -var44 = var48; -goto RET_LABEL45; -RET_LABEL45:(void)0; +var51 = !var49; +var47 = var51; +goto RET_LABEL48; +RET_LABEL48:(void)0; } -var43 = var44; +var46 = var47; } -var27 = var43; +var29 = var46; } else { -var27 = var_; +var29 = var_44; } -var_49 = var27; -if (var27){ +var_52 = var29; +if (var29){ { { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methods (var_rta) on */ -var52 = var_rta->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_methods].val; /* _live_methods on */ -if (unlikely(var52 == NULL)) { +var55 = var_rta->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_methods].val; /* _live_methods on */ +if (unlikely(var55 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methods"); -PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 77); +PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 75); show_backtrace(1); } -var50 = var52; -RET_LABEL51:(void)0; +var53 = var55; +RET_LABEL54:(void)0; } } { -var53 = hash_collection__HashSet__has(var50, var_mprop); +var56 = hash_collection__HashSet__has(var53, var_mprop); } -var54 = !var53; -var26 = var54; +var57 = !var56; +var28 = var57; } else { -var26 = var_49; +var28 = var_52; } -if (var26){ +if (var28){ { array__Array__add(var_dead_methods, var_mprop); /* Direct call array#Array#add on */ } -goto CONTINUE_label; +goto BREAK_label; } else { } { -var55 = hash_collection__HashMap___91d_93d(var_mmethods, var_mclass); +var58 = hash_collection__HashMap___91d_93d(var_mmethods, var_mclass); } { -((void (*)(val*, val*))(var55->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var55, var_mprop) /* add on */; +((void (*)(val*, val*))(var58->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var58, var_mprop) /* add on */; } } else { /* isa MAttribute */ -cltype57 = type_model__MAttribute.color; -idtype58 = type_model__MAttribute.id; -if(cltype57 >= var_mprop->type->table_size) { -var56 = 0; +cltype60 = type_model__MAttribute.color; +idtype61 = type_model__MAttribute.id; +if(cltype60 >= var_mprop->type->table_size) { +var59 = 0; } else { -var56 = var_mprop->type->type_table[cltype57] == idtype58; +var59 = var_mprop->type->type_table[cltype60] == idtype61; } -if (var56){ +if (var59){ { -var59 = hash_collection__HashMap___91d_93d(var_mattributes, var_mclass); +var62 = hash_collection__HashMap___91d_93d(var_mattributes, var_mclass); } { -((void (*)(val*, val*))(var59->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var59, var_mprop) /* add on */; +((void (*)(val*, val*))(var62->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var62, var_mprop) /* add on */; } } else { } } -CONTINUE_label: (void)0; +BREAK_label: (void)0; { -((void (*)(val*))(var22->class->vft[COLOR_abstract_collection__Iterator__next]))(var22) /* next on */; +((void (*)(val*))(var_24->class->vft[COLOR_abstract_collection__Iterator__next]))(var_24) /* next on */; } +} else { +goto BREAK_label63; } -BREAK_label: (void)0; -CONTINUE_label60: (void)0; +} +BREAK_label63: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_24) on */ +RET_LABEL64:(void)0; +} +} +{ +((void (*)(val*))(var_13->class->vft[COLOR_abstract_collection__Iterator__next]))(var_13) /* next on */; +} +} else { +goto BREAK_label65; +} +} +BREAK_label65: (void)0; { -((void (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__next]))(var13) /* next on */; +{ /* Inline abstract_collection#Iterator#finish (var_13) on */ +RET_LABEL66:(void)0; } } -BREAK_label60: (void)0; -var61 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MMethodDef); +var67 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MMethodDef); { -hash_collection__HashSet__init(var61); /* Direct call hash_collection#HashSet#init on */ +((void (*)(val*))(var67->class->vft[COLOR_kernel__Object__init]))(var67) /* init on */; } -var_all_super_calls = var61; +var_all_super_calls = var67; { { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on */ -var64 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ -if (unlikely(var64 == NULL)) { +var70 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ +if (unlikely(var70 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 436); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463); show_backtrace(1); } -var62 = var64; -RET_LABEL63:(void)0; +var68 = var70; +RET_LABEL69:(void)0; } } { -{ /* Inline mmodule#MModule#in_importation (var62) on */ -var67 = var62->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on */ -if (unlikely(var67 == NULL)) { +{ /* Inline mmodule#MModule#in_importation (var68) on */ +var73 = var68->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on */ +if (unlikely(var73 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation"); -PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 101); +PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 93); show_backtrace(1); } -var65 = var67; -RET_LABEL66:(void)0; +var71 = var73; +RET_LABEL72:(void)0; } } { -var68 = poset__POSetElement__greaters(var65); +var74 = poset__POSetElement__greaters(var71); } +var_75 = var74; { -var69 = ((val* (*)(val*))(var68->class->vft[COLOR_abstract_collection__Collection__iterator]))(var68) /* iterator on */; +var76 = ((val* (*)(val*))(var_75->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_75) /* iterator on */; } +var_77 = var76; for(;;) { { -var70 = ((short int (*)(val*))(var69->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var69) /* is_ok on */; +var78 = ((short int (*)(val*))(var_77->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_77) /* is_ok on */; } -if(!var70) break; +if (var78){ { -var71 = ((val* (*)(val*))(var69->class->vft[COLOR_abstract_collection__Iterator__item]))(var69) /* item on */; +var79 = ((val* (*)(val*))(var_77->class->vft[COLOR_abstract_collection__Iterator__item]))(var_77) /* item on */; } -var_mmodule = var71; +var_mmodule = var79; { { /* Inline model#MModule#mclassdefs (var_mmodule) on */ -var74 = var_mmodule->attrs[COLOR_model__MModule___mclassdefs].val; /* _mclassdefs on */ -if (unlikely(var74 == NULL)) { +var82 = var_mmodule->attrs[COLOR_model__MModule___mclassdefs].val; /* _mclassdefs on */ +if (unlikely(var82 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs"); -PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 141); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 139); show_backtrace(1); } -var72 = var74; -RET_LABEL73:(void)0; +var80 = var82; +RET_LABEL81:(void)0; } } +var_83 = var80; { -var75 = array__AbstractArrayRead__iterator(var72); +var84 = array__AbstractArrayRead__iterator(var_83); } +var_85 = var84; for(;;) { { -var76 = array__ArrayIterator__is_ok(var75); +var86 = array__ArrayIterator__is_ok(var_85); } -if(!var76) break; +if (var86){ { -var77 = array__ArrayIterator__item(var75); +var87 = array__ArrayIterator__item(var_85); } -var_mclassdef = var77; +var_mclassdef = var87; { { /* Inline model#MClassDef#mpropdefs (var_mclassdef) on */ -var80 = var_mclassdef->attrs[COLOR_model__MClassDef___mpropdefs].val; /* _mpropdefs on */ -if (unlikely(var80 == NULL)) { +var90 = var_mclassdef->attrs[COLOR_model__MClassDef___mpropdefs].val; /* _mpropdefs on */ +if (unlikely(var90 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs"); -PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 574); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 591); show_backtrace(1); } -var78 = var80; -RET_LABEL79:(void)0; +var88 = var90; +RET_LABEL89:(void)0; } } +var_91 = var88; { -var81 = array__AbstractArrayRead__iterator(var78); +var92 = array__AbstractArrayRead__iterator(var_91); } +var_93 = var92; for(;;) { { -var82 = array__ArrayIterator__is_ok(var81); +var94 = array__ArrayIterator__is_ok(var_93); } -if(!var82) break; +if (var94){ { -var83 = array__ArrayIterator__item(var81); +var95 = array__ArrayIterator__item(var_93); } -var_mpropdef = var83; +var_mpropdef = var95; /* isa MMethodDef */ -cltype85 = type_model__MMethodDef.color; -idtype86 = type_model__MMethodDef.id; -if(cltype85 >= var_mpropdef->type->table_size) { -var84 = 0; +cltype97 = type_model__MMethodDef.color; +idtype98 = type_model__MMethodDef.id; +if(cltype97 >= var_mpropdef->type->table_size) { +var96 = 0; } else { -var84 = var_mpropdef->type->type_table[cltype85] == idtype86; +var96 = var_mpropdef->type->type_table[cltype97] == idtype98; } -var87 = !var84; -if (var87){ -goto CONTINUE_label88; +var99 = !var96; +if (var99){ +goto BREAK_label100; } else { } { { /* Inline modelize_property#MPropDef#has_supercall (var_mpropdef) on */ -var91 = var_mpropdef->attrs[COLOR_modelize_property__MPropDef___has_supercall].s; /* _has_supercall on */ -var89 = var91; -RET_LABEL90:(void)0; +var103 = var_mpropdef->attrs[COLOR_modelize_property__MPropDef___has_supercall].s; /* _has_supercall on */ +var101 = var103; +RET_LABEL102:(void)0; } } -if (var89){ +if (var101){ { hash_collection__HashSet__add(var_all_super_calls, var_mpropdef); /* Direct call hash_collection#HashSet#add on */ } } else { } -CONTINUE_label88: (void)0; +BREAK_label100: (void)0; +{ +array__ArrayIterator__next(var_93); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label104; +} +} +BREAK_label104: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_93) on */ +RET_LABEL105:(void)0; +} +} +{ +array__ArrayIterator__next(var_85); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label106; +} +} +BREAK_label106: (void)0; { -array__ArrayIterator__next(var81); /* Direct call array#ArrayIterator#next on */ +{ /* Inline abstract_collection#Iterator#finish (var_85) on */ +RET_LABEL107:(void)0; } } -BREAK_label88: (void)0; -CONTINUE_label92: (void)0; { -array__ArrayIterator__next(var75); /* Direct call array#ArrayIterator#next on */ +((void (*)(val*))(var_77->class->vft[COLOR_abstract_collection__Iterator__next]))(var_77) /* next on */; +} +} else { +goto BREAK_label108; } } -BREAK_label92: (void)0; -CONTINUE_label93: (void)0; +BREAK_label108: (void)0; { -((void (*)(val*))(var69->class->vft[COLOR_abstract_collection__Iterator__next]))(var69) /* next on */; +{ /* Inline abstract_collection#Iterator#finish (var_77) on */ +RET_LABEL109:(void)0; } } -BREAK_label93: (void)0; -var94 = NULL; +var110 = NULL; if (var_rta == NULL) { -var95 = 0; /* is null */ +var111 = 0; /* is null */ } else { -var95 = 1; /* arg is null and recv is not */ +var111 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_rta,var94) on */ -var_other = var94; +{ /* Inline kernel#Object#!= (var_rta,var110) on */ +var_other = var110; { -var99 = ((short int (*)(val*, val*))(var_rta->class->vft[COLOR_kernel__Object___61d_61d]))(var_rta, var_other) /* == on */; -var98 = var99; +var115 = ((short int (*)(val*, val*))(var_rta->class->vft[COLOR_kernel__Object___61d_61d]))(var_rta, var_other) /* == on */; +var114 = var115; } -var100 = !var98; -var96 = var100; -goto RET_LABEL97; -RET_LABEL97:(void)0; +var116 = !var114; +var112 = var116; +goto RET_LABEL113; +RET_LABEL113:(void)0; } -var95 = var96; +var111 = var112; } -if (var95){ +if (var111){ { { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (var_rta) on */ -var103 = var_rta->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_super_sends].val; /* _live_super_sends on */ -if (unlikely(var103 == NULL)) { +var119 = var_rta->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_super_sends].val; /* _live_super_sends on */ +if (unlikely(var119 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends"); -PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 110); +PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 108); show_backtrace(1); } -var101 = var103; -RET_LABEL102:(void)0; +var117 = var119; +RET_LABEL118:(void)0; } } -var_super_calls = var101; +var_super_calls = var117; } else { var_super_calls = var_all_super_calls; } +var_120 = var_super_calls; { -var104 = hash_collection__HashSet__iterator(var_super_calls); +var121 = hash_collection__HashSet__iterator(var_120); } +var_122 = var121; for(;;) { { -var105 = ((short int (*)(val*))(var104->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var104) /* is_ok on */; +var123 = ((short int (*)(val*))(var_122->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_122) /* is_ok on */; } -if(!var105) break; +if (var123){ { -var106 = ((val* (*)(val*))(var104->class->vft[COLOR_abstract_collection__Iterator__item]))(var104) /* item on */; +var124 = ((val* (*)(val*))(var_122->class->vft[COLOR_abstract_collection__Iterator__item]))(var_122) /* item on */; } -var_mmethoddef = var106; +var_mmethoddef = var124; { { /* Inline model#MPropDef#mclassdef (var_mmethoddef) on */ -var109 = var_mmethoddef->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on */ -if (unlikely(var109 == NULL)) { +var127 = var_mmethoddef->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on */ +if (unlikely(var127 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); -PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895); show_backtrace(1); } -var107 = var109; -RET_LABEL108:(void)0; +var125 = var127; +RET_LABEL126:(void)0; } } { -{ /* Inline model#MClassDef#mclass (var107) on */ -var112 = var107->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var112 == NULL)) { +{ /* Inline model#MClassDef#mclass (var125) on */ +var130 = var125->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ +if (unlikely(var130 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492); show_backtrace(1); } -var110 = var112; -RET_LABEL111:(void)0; +var128 = var130; +RET_LABEL129:(void)0; } } -var_mclass113 = var110; +var_mclass131 = var128; { -var114 = hash_collection__HashMap___91d_93d(var_mmethods, var_mclass113); +var132 = hash_collection__HashMap___91d_93d(var_mmethods, var_mclass131); } { -((void (*)(val*, val*))(var114->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var114, var_mmethoddef) /* add on */; +((void (*)(val*, val*))(var132->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var132, var_mmethoddef) /* add on */; } { { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on */ -var117 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ -if (unlikely(var117 == NULL)) { +var135 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ +if (unlikely(var135 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 436); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463); show_backtrace(1); } -var115 = var117; -RET_LABEL116:(void)0; +var133 = var135; +RET_LABEL134:(void)0; } } { -var118 = model__MClass__in_hierarchy(var_mclass113, var115); +var136 = model__MClass__in_hierarchy(var_mclass131, var133); } { -var119 = poset__POSetElement__smallers(var118); +var137 = poset__POSetElement__smallers(var136); } +var_138 = var137; { -var120 = ((val* (*)(val*))(var119->class->vft[COLOR_abstract_collection__Collection__iterator]))(var119) /* iterator on */; +var139 = ((val* (*)(val*))(var_138->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_138) /* iterator on */; } +var_140 = var139; for(;;) { { -var121 = ((short int (*)(val*))(var120->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var120) /* is_ok on */; +var141 = ((short int (*)(val*))(var_140->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_140) /* is_ok on */; } -if(!var121) break; +if (var141){ +{ +var142 = ((val* (*)(val*))(var_140->class->vft[COLOR_abstract_collection__Iterator__item]))(var_140) /* item on */; +} +var_descendant = var142; { -var122 = ((val* (*)(val*))(var120->class->vft[COLOR_abstract_collection__Iterator__item]))(var120) /* item on */; +var143 = hash_collection__HashMap___91d_93d(var_mmethods, var_descendant); } -var_descendant = var122; { -var123 = hash_collection__HashMap___91d_93d(var_mmethods, var_descendant); +((void (*)(val*, val*))(var143->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var143, var_mmethoddef) /* add on */; } { -((void (*)(val*, val*))(var123->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var123, var_mmethoddef) /* add on */; +((void (*)(val*))(var_140->class->vft[COLOR_abstract_collection__Iterator__next]))(var_140) /* next on */; +} +} else { +goto BREAK_label144; +} } -CONTINUE_label124: (void)0; +BREAK_label144: (void)0; { -((void (*)(val*))(var120->class->vft[COLOR_abstract_collection__Iterator__next]))(var120) /* next on */; +{ /* Inline abstract_collection#Iterator#finish (var_140) on */ +RET_LABEL145:(void)0; } } -BREAK_label124: (void)0; -CONTINUE_label125: (void)0; { -((void (*)(val*))(var104->class->vft[COLOR_abstract_collection__Iterator__next]))(var104) /* next on */; +((void (*)(val*))(var_122->class->vft[COLOR_abstract_collection__Iterator__next]))(var_122) /* next on */; +} +} else { +goto BREAK_label146; } } -BREAK_label125: (void)0; -var126 = NEW_coloring__POSetBucketsColorer(&type_coloring__POSetBucketsColorermodel__MClassseparate_compiler__PropertyLayoutElement); +BREAK_label146: (void)0; { -var127 = coloring__POSetColorer__conflicts(var_colorer); +{ /* Inline abstract_collection#Iterator#finish (var_122) on */ +RET_LABEL147:(void)0; +} } +var148 = NEW_coloring__POSetBucketsColorer(&type_coloring__POSetBucketsColorermodel__MClassseparate_compiler__PropertyLayoutElement); { -coloring__POSetBucketsColorer__init(var126, var_poset, var127); /* Direct call coloring#POSetBucketsColorer#init on */ +var149 = coloring__POSetColorer__conflicts(var_colorer); } -var_meth_colorer = var126; { -var128 = coloring__POSetBucketsColorer__colorize(var_meth_colorer, var_mmethods); +coloring__POSetBucketsColorer__init(var148, var_poset, var149); /* Direct call coloring#POSetBucketsColorer#init on */ } +var_meth_colorer = var148; { -{ /* Inline separate_compiler#SeparateCompiler#method_colors= (self,var128) on */ -self->attrs[COLOR_separate_compiler__SeparateCompiler___method_colors].val = var128; /* _method_colors on */ -RET_LABEL129:(void)0; +var150 = coloring__POSetBucketsColorer__colorize(var_meth_colorer, var_mmethods); +} +{ +{ /* Inline separate_compiler#SeparateCompiler#method_colors= (self,var150) on */ +self->attrs[COLOR_separate_compiler__SeparateCompiler___method_colors].val = var150; /* _method_colors on */ +RET_LABEL151:(void)0; } } { -var130 = separate_compiler__SeparateCompiler__build_method_tables(self, var_mclasses, var_super_calls); +var152 = separate_compiler__SeparateCompiler__build_method_tables(self, var_mclasses, var_super_calls); } { -{ /* Inline separate_compiler#SeparateCompiler#method_tables= (self,var130) on */ -self->attrs[COLOR_separate_compiler__SeparateCompiler___method_tables].val = var130; /* _method_tables on */ -RET_LABEL131:(void)0; +{ /* Inline separate_compiler#SeparateCompiler#method_tables= (self,var152) on */ +self->attrs[COLOR_separate_compiler__SeparateCompiler___method_tables].val = var152; /* _method_tables on */ +RET_LABEL153:(void)0; } } { { /* Inline separate_compiler#SeparateCompiler#method_colors (self) on */ -var134 = self->attrs[COLOR_separate_compiler__SeparateCompiler___method_colors].val; /* _method_colors on */ -if (unlikely(var134 == NULL)) { +var156 = self->attrs[COLOR_separate_compiler__SeparateCompiler___method_colors].val; /* _method_colors on */ +if (unlikely(var156 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_colors"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 161); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 162); show_backtrace(1); } -var132 = var134; -RET_LABEL133:(void)0; +var154 = var156; +RET_LABEL155:(void)0; } } { -separate_compiler__SeparateCompiler__compile_color_consts(self, var132); /* Direct call separate_compiler#SeparateCompiler#compile_color_consts on */ +separate_compiler__SeparateCompiler__compile_color_consts(self, var154); /* Direct call separate_compiler#SeparateCompiler#compile_color_consts on */ } +var_157 = var_dead_methods; { -var135 = array__AbstractArrayRead__iterator(var_dead_methods); +var158 = array__AbstractArrayRead__iterator(var_157); } +var_159 = var158; for(;;) { { -var136 = array__ArrayIterator__is_ok(var135); +var160 = array__ArrayIterator__is_ok(var_159); } -if(!var136) break; +if (var160){ { -var137 = array__ArrayIterator__item(var135); +var161 = array__ArrayIterator__item(var_159); } -var_mproperty = var137; +var_mproperty = var161; { -var138 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__new_visitor]))(self) /* new_visitor on */; +var162 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__new_visitor]))(self) /* new_visitor on */; } -var139 = 1; +var163 = 1; { -{ /* Inline kernel#Int#unary - (var139) on */ -var142 = -var139; -var140 = var142; -goto RET_LABEL141; -RET_LABEL141:(void)0; +{ /* Inline kernel#Int#unary - (var163) on */ +var166 = -var163; +var164 = var166; +goto RET_LABEL165; +RET_LABEL165:(void)0; +} } +{ +separate_compiler__SeparateCompiler__compile_color_const(self, var162, var_mproperty, var164); /* Direct call separate_compiler#SeparateCompiler#compile_color_const on */ } { -separate_compiler__SeparateCompiler__compile_color_const(self, var138, var_mproperty, var140); /* Direct call separate_compiler#SeparateCompiler#compile_color_const on */ +array__ArrayIterator__next(var_159); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label167; +} } -CONTINUE_label143: (void)0; +BREAK_label167: (void)0; { -array__ArrayIterator__next(var135); /* Direct call array#ArrayIterator#next on */ +{ /* Inline abstract_collection#Iterator#finish (var_159) on */ +RET_LABEL168:(void)0; } } -BREAK_label143: (void)0; +var_169 = var_all_super_calls; { -var144 = hash_collection__HashSet__iterator(var_all_super_calls); +var170 = hash_collection__HashSet__iterator(var_169); } +var_171 = var170; for(;;) { { -var145 = ((short int (*)(val*))(var144->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var144) /* is_ok on */; +var172 = ((short int (*)(val*))(var_171->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_171) /* is_ok on */; } -if(!var145) break; +if (var172){ { -var146 = ((val* (*)(val*))(var144->class->vft[COLOR_abstract_collection__Iterator__item]))(var144) /* item on */; +var173 = ((val* (*)(val*))(var_171->class->vft[COLOR_abstract_collection__Iterator__item]))(var_171) /* item on */; } -var_mpropdef147 = var146; +var_mpropdef174 = var173; { -var148 = hash_collection__HashSet__has(var_super_calls, var_mpropdef147); +var175 = hash_collection__HashSet__has(var_super_calls, var_mpropdef174); } -if (var148){ -goto CONTINUE_label149; +if (var175){ +goto BREAK_label176; } else { } { -var150 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__new_visitor]))(self) /* new_visitor on */; +var177 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__new_visitor]))(self) /* new_visitor on */; } -var151 = 1; +var178 = 1; { -{ /* Inline kernel#Int#unary - (var151) on */ -var154 = -var151; -var152 = var154; -goto RET_LABEL153; -RET_LABEL153:(void)0; +{ /* Inline kernel#Int#unary - (var178) on */ +var181 = -var178; +var179 = var181; +goto RET_LABEL180; +RET_LABEL180:(void)0; +} } +{ +separate_compiler__SeparateCompiler__compile_color_const(self, var177, var_mpropdef174, var179); /* Direct call separate_compiler#SeparateCompiler#compile_color_const on */ } +BREAK_label176: (void)0; { -separate_compiler__SeparateCompiler__compile_color_const(self, var150, var_mpropdef147, var152); /* Direct call separate_compiler#SeparateCompiler#compile_color_const on */ +((void (*)(val*))(var_171->class->vft[COLOR_abstract_collection__Iterator__next]))(var_171) /* next on */; +} +} else { +goto BREAK_label182; +} } -CONTINUE_label149: (void)0; +BREAK_label182: (void)0; { -((void (*)(val*))(var144->class->vft[COLOR_abstract_collection__Iterator__next]))(var144) /* next on */; +{ /* Inline abstract_collection#Iterator#finish (var_171) on */ +RET_LABEL183:(void)0; } } -BREAK_label149: (void)0; -var155 = NEW_coloring__POSetBucketsColorer(&type_coloring__POSetBucketsColorermodel__MClassmodel__MAttribute); +var184 = NEW_coloring__POSetBucketsColorer(&type_coloring__POSetBucketsColorermodel__MClassmodel__MAttribute); { -var156 = coloring__POSetColorer__conflicts(var_colorer); +var185 = coloring__POSetColorer__conflicts(var_colorer); } { -coloring__POSetBucketsColorer__init(var155, var_poset, var156); /* Direct call coloring#POSetBucketsColorer#init on */ +coloring__POSetBucketsColorer__init(var184, var_poset, var185); /* Direct call coloring#POSetBucketsColorer#init on */ } -var_attr_colorer = var155; +var_attr_colorer = var184; { -var157 = coloring__POSetBucketsColorer__colorize(var_attr_colorer, var_mattributes); +var186 = coloring__POSetBucketsColorer__colorize(var_attr_colorer, var_mattributes); } { -{ /* Inline separate_compiler#SeparateCompiler#attr_colors= (self,var157) on */ -self->attrs[COLOR_separate_compiler__SeparateCompiler___attr_colors].val = var157; /* _attr_colors on */ -RET_LABEL158:(void)0; +{ /* Inline separate_compiler#SeparateCompiler#attr_colors= (self,var186) on */ +self->attrs[COLOR_separate_compiler__SeparateCompiler___attr_colors].val = var186; /* _attr_colors on */ +RET_LABEL187:(void)0; } } { -var159 = separate_compiler__SeparateCompiler__build_attr_tables(self, var_mclasses); +var188 = separate_compiler__SeparateCompiler__build_attr_tables(self, var_mclasses); } { -{ /* Inline separate_compiler#SeparateCompiler#attr_tables= (self,var159) on */ -self->attrs[COLOR_separate_compiler__SeparateCompiler___attr_tables].val = var159; /* _attr_tables on */ -RET_LABEL160:(void)0; +{ /* Inline separate_compiler#SeparateCompiler#attr_tables= (self,var188) on */ +self->attrs[COLOR_separate_compiler__SeparateCompiler___attr_tables].val = var188; /* _attr_tables on */ +RET_LABEL189:(void)0; } } { { /* Inline separate_compiler#SeparateCompiler#attr_colors (self) on */ -var163 = self->attrs[COLOR_separate_compiler__SeparateCompiler___attr_colors].val; /* _attr_colors on */ -if (unlikely(var163 == NULL)) { +var192 = self->attrs[COLOR_separate_compiler__SeparateCompiler___attr_colors].val; /* _attr_colors on */ +if (unlikely(var192 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_colors"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 162); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 163); show_backtrace(1); } -var161 = var163; -RET_LABEL162:(void)0; +var190 = var192; +RET_LABEL191:(void)0; } } { -separate_compiler__SeparateCompiler__compile_color_consts(self, var161); /* Direct call separate_compiler#SeparateCompiler#compile_color_consts on */ +separate_compiler__SeparateCompiler__compile_color_consts(self, var190); /* Direct call separate_compiler#SeparateCompiler#compile_color_consts on */ } RET_LABEL:; } @@ -5122,444 +5334,525 @@ val* var_mclasses /* var mclasses: Set[MClass] */; val* var_super_calls /* var super_calls: Set[MMethodDef] */; val* var1 /* : HashMap[MClass, Array[nullable MPropDef]] */; val* var_tables /* var tables: HashMap[MClass, Array[nullable MPropDef]] */; +val* var_ /* var : Set[MClass] */; val* var2 /* : Iterator[nullable Object] */; -short int var3 /* : Bool */; -val* var4 /* : nullable Object */; +val* var_3 /* var : Iterator[MClass] */; +short int var4 /* : Bool */; +val* var5 /* : nullable Object */; val* var_mclass /* var mclass: MClass */; -val* var5 /* : Array[nullable MPropDef] */; +val* var6 /* : Array[nullable MPropDef] */; val* var_table /* var table: Array[nullable MPropDef] */; -val* var6 /* : MModule */; -val* var8 /* : MModule */; -val* var9 /* : Set[MProperty] */; +val* var7 /* : MModule */; +val* var9 /* : MModule */; +val* var10 /* : Set[MProperty] */; val* var_mproperties /* var mproperties: Set[MProperty] */; -val* var10 /* : MClassDef */; -val* var11 /* : MClassType */; -val* var13 /* : MClassType */; +val* var11 /* : MClassDef */; +val* var13 /* : MClassDef */; +val* var14 /* : MClassType */; +val* var16 /* : MClassType */; val* var_mtype /* var mtype: MClassType */; -val* var14 /* : Iterator[nullable Object] */; -short int var15 /* : Bool */; -val* var16 /* : nullable Object */; +val* var_17 /* var : Set[MProperty] */; +val* var18 /* : Iterator[nullable Object] */; +val* var_19 /* var : Iterator[MProperty] */; +short int var20 /* : Bool */; +val* var21 /* : nullable Object */; val* var_mproperty /* var mproperty: MProperty */; -short int var17 /* : Bool */; +short int var22 /* : Bool */; int cltype; int idtype; -short int var18 /* : Bool */; -val* var19 /* : Map[PropertyLayoutElement, Int] */; -val* var21 /* : Map[PropertyLayoutElement, Int] */; -short int var22 /* : Bool */; short int var23 /* : Bool */; val* var24 /* : Map[PropertyLayoutElement, Int] */; val* var26 /* : Map[PropertyLayoutElement, Int] */; -val* var27 /* : nullable Object */; -long var28 /* : Int */; +short int var27 /* : Bool */; +short int var28 /* : Bool */; +val* var29 /* : Map[PropertyLayoutElement, Int] */; +val* var31 /* : Map[PropertyLayoutElement, Int] */; +val* var32 /* : nullable Object */; +long var33 /* : Int */; long var_color /* var color: Int */; -long var29 /* : Int */; -short int var30 /* : Bool */; -short int var32 /* : Bool */; -int cltype33; -int idtype34; +long var34 /* : Int */; +long var36 /* : Int */; +short int var37 /* : Bool */; +short int var39 /* : Bool */; +int cltype40; +int idtype41; const char* var_class_name; -short int var35 /* : Bool */; -val* var36 /* : Range[Int] */; -long var37 /* : Int */; -val* var38 /* : Discrete */; -val* var39 /* : Discrete */; -val* var40 /* : Iterator[Discrete] */; -short int var41 /* : Bool */; -val* var42 /* : nullable Object */; -long var_i /* var i: Int */; +short int var42 /* : Bool */; long var43 /* : Int */; -val* var44 /* : null */; -val* var46 /* : MModule */; -val* var48 /* : MModule */; -val* var49 /* : MPropDef */; -val* var50 /* : Iterator[nullable Object] */; -short int var51 /* : Bool */; -val* var52 /* : nullable Object */; +long var45 /* : Int */; +long var_i /* var i: Int */; +long var_46 /* var : Int */; +short int var47 /* : Bool */; +short int var49 /* : Bool */; +int cltype50; +int idtype51; +const char* var_class_name52; +short int var53 /* : Bool */; +val* var54 /* : null */; +long var55 /* : Int */; +long var56 /* : Int */; +val* var58 /* : MModule */; +val* var60 /* : MModule */; +val* var61 /* : MPropDef */; +val* var_64 /* var : Set[MMethodDef] */; +val* var65 /* : Iterator[nullable Object] */; +val* var_66 /* var : Iterator[MMethodDef] */; +short int var67 /* : Bool */; +val* var68 /* : nullable Object */; val* var_supercall /* var supercall: MMethodDef */; -val* var53 /* : MModule */; -val* var55 /* : MModule */; -val* var56 /* : Set[MClassDef] */; -val* var57 /* : MClassDef */; -val* var59 /* : MClassDef */; -short int var60 /* : Bool */; -short int var61 /* : Bool */; -val* var63 /* : Map[PropertyLayoutElement, Int] */; -val* var65 /* : Map[PropertyLayoutElement, Int] */; -val* var66 /* : nullable Object */; -long var67 /* : Int */; -long var_color68 /* var color: Int */; -long var69 /* : Int */; -short int var70 /* : Bool */; -short int var72 /* : Bool */; -int cltype73; -int idtype74; -const char* var_class_name75; +val* var69 /* : MModule */; +val* var71 /* : MModule */; +val* var72 /* : Set[MClassDef] */; +val* var73 /* : MClassDef */; +val* var75 /* : MClassDef */; short int var76 /* : Bool */; -val* var77 /* : Range[Int] */; -long var78 /* : Int */; -val* var79 /* : Discrete */; -val* var80 /* : Discrete */; -val* var81 /* : Iterator[Discrete] */; -short int var82 /* : Bool */; -val* var83 /* : nullable Object */; -long var_i84 /* var i: Int */; +short int var77 /* : Bool */; +val* var79 /* : Map[PropertyLayoutElement, Int] */; +val* var81 /* : Map[PropertyLayoutElement, Int] */; +val* var82 /* : nullable Object */; +long var83 /* : Int */; +long var_color84 /* var color: Int */; long var85 /* : Int */; -val* var86 /* : null */; -val* var88 /* : MModule */; -val* var90 /* : MModule */; -val* var91 /* : MPropDef */; +long var87 /* : Int */; +short int var88 /* : Bool */; +short int var90 /* : Bool */; +int cltype91; +int idtype92; +const char* var_class_name93; +short int var94 /* : Bool */; +long var95 /* : Int */; +long var97 /* : Int */; +long var_i98 /* var i: Int */; +long var_99 /* var : Int */; +short int var100 /* : Bool */; +short int var102 /* : Bool */; +int cltype103; +int idtype104; +const char* var_class_name105; +short int var106 /* : Bool */; +val* var107 /* : null */; +long var108 /* : Int */; +long var109 /* : Int */; +val* var111 /* : MModule */; +val* var113 /* : MModule */; +val* var114 /* : MPropDef */; val* var_mmethoddef /* var mmethoddef: MMethodDef */; var_mclasses = p0; var_super_calls = p1; var1 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef); { -hash_collection__HashMap__init(var1); /* Direct call hash_collection#HashMap#init on */ +((void (*)(val*))(var1->class->vft[COLOR_kernel__Object__init]))(var1) /* init on */; } var_tables = var1; +var_ = var_mclasses; { -var2 = ((val* (*)(val*))(var_mclasses->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_mclasses) /* iterator on */; +var2 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on */; } +var_3 = var2; for(;;) { { -var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var2) /* is_ok on */; +var4 = ((short int (*)(val*))(var_3->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_3) /* is_ok on */; } -if(!var3) break; +if (var4){ { -var4 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__item]))(var2) /* item on */; +var5 = ((val* (*)(val*))(var_3->class->vft[COLOR_abstract_collection__Iterator__item]))(var_3) /* item on */; } -var_mclass = var4; -var5 = NEW_array__Array(&type_array__Arraynullable_model__MPropDef); +var_mclass = var5; +var6 = NEW_array__Array(&type_array__Arraynullable_model__MPropDef); { -array__Array__init(var5); /* Direct call array#Array#init on */ +((void (*)(val*))(var6->class->vft[COLOR_kernel__Object__init]))(var6) /* init on */; } -var_table = var5; +var_table = var6; { hash_collection__HashMap___91d_93d_61d(var_tables, var_mclass, var_table); /* Direct call hash_collection#HashMap#[]= on */ } { { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on */ -var8 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ -if (unlikely(var8 == NULL)) { +var9 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ +if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 436); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463); show_backtrace(1); } -var6 = var8; -RET_LABEL7:(void)0; -} +var7 = var9; +RET_LABEL8:(void)0; } -{ -var9 = abstract_compiler__MModule__properties(var6, var_mclass); } -var_mproperties = var9; { -var10 = model__MClass__intro(var_mclass); +var10 = abstract_compiler__MModule__properties(var7, var_mclass); } +var_mproperties = var10; { -{ /* Inline model#MClassDef#bound_mtype (var10) on */ -var13 = var10->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +{ /* Inline model#MClass#intro (var_mclass) on */ +var13 = var_mclass->attrs[COLOR_model__MClass___intro].val; /* _intro on */ if (unlikely(var13 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); -PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477); +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 420); show_backtrace(1); } var11 = var13; RET_LABEL12:(void)0; } } -var_mtype = var11; { -var14 = ((val* (*)(val*))(var_mproperties->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_mproperties) /* iterator on */; +{ /* Inline model#MClassDef#bound_mtype (var11) on */ +var16 = var11->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var16 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495); +show_backtrace(1); +} +var14 = var16; +RET_LABEL15:(void)0; +} +} +var_mtype = var14; +var_17 = var_mproperties; +{ +var18 = ((val* (*)(val*))(var_17->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_17) /* iterator on */; } +var_19 = var18; for(;;) { { -var15 = ((short int (*)(val*))(var14->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var14) /* is_ok on */; +var20 = ((short int (*)(val*))(var_19->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_19) /* is_ok on */; } -if(!var15) break; +if (var20){ { -var16 = ((val* (*)(val*))(var14->class->vft[COLOR_abstract_collection__Iterator__item]))(var14) /* item on */; +var21 = ((val* (*)(val*))(var_19->class->vft[COLOR_abstract_collection__Iterator__item]))(var_19) /* item on */; } -var_mproperty = var16; +var_mproperty = var21; /* isa MMethod */ cltype = type_model__MMethod.color; idtype = type_model__MMethod.id; if(cltype >= var_mproperty->type->table_size) { -var17 = 0; +var22 = 0; } else { -var17 = var_mproperty->type->type_table[cltype] == idtype; +var22 = var_mproperty->type->type_table[cltype] == idtype; } -var18 = !var17; -if (var18){ -goto CONTINUE_label; +var23 = !var22; +if (var23){ +goto BREAK_label; } else { } { { /* Inline separate_compiler#SeparateCompiler#method_colors (self) on */ -var21 = self->attrs[COLOR_separate_compiler__SeparateCompiler___method_colors].val; /* _method_colors on */ -if (unlikely(var21 == NULL)) { +var26 = self->attrs[COLOR_separate_compiler__SeparateCompiler___method_colors].val; /* _method_colors on */ +if (unlikely(var26 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_colors"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 161); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 162); show_backtrace(1); } -var19 = var21; -RET_LABEL20:(void)0; +var24 = var26; +RET_LABEL25:(void)0; } } { -var22 = abstract_collection__MapRead__has_key(var19, var_mproperty); +var27 = abstract_collection__MapRead__has_key(var24, var_mproperty); } -var23 = !var22; -if (var23){ -goto CONTINUE_label; +var28 = !var27; +if (var28){ +goto BREAK_label; } else { } { { /* Inline separate_compiler#SeparateCompiler#method_colors (self) on */ -var26 = self->attrs[COLOR_separate_compiler__SeparateCompiler___method_colors].val; /* _method_colors on */ -if (unlikely(var26 == NULL)) { +var31 = self->attrs[COLOR_separate_compiler__SeparateCompiler___method_colors].val; /* _method_colors on */ +if (unlikely(var31 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_colors"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 161); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 162); show_backtrace(1); } -var24 = var26; -RET_LABEL25:(void)0; +var29 = var31; +RET_LABEL30:(void)0; } } { -var27 = ((val* (*)(val*, val*))(var24->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var24, var_mproperty) /* [] on */; +var32 = ((val* (*)(val*, val*))(var29->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var29, var_mproperty) /* [] on */; } -var28 = ((struct instance_kernel__Int*)var27)->value; /* autounbox from nullable Object to Int */; -var_color = var28; +var33 = ((struct instance_kernel__Int*)var32)->value; /* autounbox from nullable Object to Int */; +var_color = var33; { -var29 = array__AbstractArrayRead__length(var_table); +{ /* Inline array#AbstractArrayRead#length (var_table) on */ +var36 = var_table->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ +var34 = var36; +RET_LABEL35:(void)0; +} } { -{ /* Inline kernel#Int#<= (var29,var_color) on */ +{ /* Inline kernel#Int#<= (var34,var_color) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var32 = 1; /* easy isa OTHER*/ -if (unlikely(!var32)) { +var39 = 1; /* easy isa OTHER*/ +if (unlikely(!var39)) { var_class_name = type_kernel__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 324); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370); show_backtrace(1); } -var35 = var29 <= var_color; -var30 = var35; -goto RET_LABEL31; -RET_LABEL31:(void)0; -} +var42 = var34 <= var_color; +var37 = var42; +goto RET_LABEL38; +RET_LABEL38:(void)0; } -if (var30){ -var36 = NEW_range__Range(&type_range__Rangekernel__Int); -{ -var37 = array__AbstractArrayRead__length(var_table); } +if (var37){ { -var38 = BOX_kernel__Int(var37); /* autobox from Int to Discrete */ -var39 = BOX_kernel__Int(var_color); /* autobox from Int to Discrete */ -range__Range__without_last(var36, var38, var39); /* Direct call range#Range#without_last on */ +{ /* Inline array#AbstractArrayRead#length (var_table) on */ +var45 = var_table->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ +var43 = var45; +RET_LABEL44:(void)0; } -{ -var40 = range__Range__iterator(var36); } +var_i = var43; +var_46 = var_color; for(;;) { { -var41 = ((short int (*)(val*))(var40->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var40) /* is_ok on */; +{ /* Inline kernel#Int#< (var_i,var_46) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var49 = 1; /* easy isa OTHER*/ +if (unlikely(!var49)) { +var_class_name52 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name52); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); } -if(!var41) break; -{ -var42 = ((val* (*)(val*))(var40->class->vft[COLOR_abstract_collection__Iterator__item]))(var40) /* item on */; +var53 = var_i < var_46; +var47 = var53; +goto RET_LABEL48; +RET_LABEL48:(void)0; } -var43 = ((struct instance_kernel__Int*)var42)->value; /* autounbox from nullable Object to Int */; -var_i = var43; -var44 = NULL; +} +if (var47){ +var54 = NULL; { -array__Array___91d_93d_61d(var_table, var_i, var44); /* Direct call array#Array#[]= on */ +array__Array___91d_93d_61d(var_table, var_i, var54); /* Direct call array#Array#[]= on */ } -CONTINUE_label45: (void)0; +var55 = 1; { -((void (*)(val*))(var40->class->vft[COLOR_abstract_collection__Iterator__next]))(var40) /* next on */; +var56 = kernel__Int__successor(var_i, var55); +} +var_i = var56; +} else { +goto BREAK_label57; } } -BREAK_label45: (void)0; +BREAK_label57: (void)0; } else { } { { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on */ -var48 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ -if (unlikely(var48 == NULL)) { +var60 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ +if (unlikely(var60 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 436); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463); show_backtrace(1); } -var46 = var48; -RET_LABEL47:(void)0; +var58 = var60; +RET_LABEL59:(void)0; } } { -var49 = model__MProperty__lookup_first_definition(var_mproperty, var46, var_mtype); +var61 = model__MProperty__lookup_first_definition(var_mproperty, var58, var_mtype); } { -array__Array___91d_93d_61d(var_table, var_color, var49); /* Direct call array#Array#[]= on */ +array__Array___91d_93d_61d(var_table, var_color, var61); /* Direct call array#Array#[]= on */ } -CONTINUE_label: (void)0; +BREAK_label: (void)0; { -((void (*)(val*))(var14->class->vft[COLOR_abstract_collection__Iterator__next]))(var14) /* next on */; +((void (*)(val*))(var_19->class->vft[COLOR_abstract_collection__Iterator__next]))(var_19) /* next on */; +} +} else { +goto BREAK_label62; } } -BREAK_label: (void)0; +BREAK_label62: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_19) on */ +RET_LABEL63:(void)0; +} +} +var_64 = var_super_calls; { -var50 = ((val* (*)(val*))(var_super_calls->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_super_calls) /* iterator on */; +var65 = ((val* (*)(val*))(var_64->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_64) /* iterator on */; } +var_66 = var65; for(;;) { { -var51 = ((short int (*)(val*))(var50->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var50) /* is_ok on */; +var67 = ((short int (*)(val*))(var_66->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_66) /* is_ok on */; } -if(!var51) break; +if (var67){ { -var52 = ((val* (*)(val*))(var50->class->vft[COLOR_abstract_collection__Iterator__item]))(var50) /* item on */; +var68 = ((val* (*)(val*))(var_66->class->vft[COLOR_abstract_collection__Iterator__item]))(var_66) /* item on */; } -var_supercall = var52; +var_supercall = var68; { { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on */ -var55 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ -if (unlikely(var55 == NULL)) { +var71 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ +if (unlikely(var71 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 436); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463); show_backtrace(1); } -var53 = var55; -RET_LABEL54:(void)0; +var69 = var71; +RET_LABEL70:(void)0; } } { -var56 = model__MClassType__collect_mclassdefs(var_mtype, var53); +var72 = model__MClassType__collect_mclassdefs(var_mtype, var69); } { { /* Inline model#MPropDef#mclassdef (var_supercall) on */ -var59 = var_supercall->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on */ -if (unlikely(var59 == NULL)) { +var75 = var_supercall->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on */ +if (unlikely(var75 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); -PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895); show_backtrace(1); } -var57 = var59; -RET_LABEL58:(void)0; +var73 = var75; +RET_LABEL74:(void)0; } } { -var60 = ((short int (*)(val*, val*))(var56->class->vft[COLOR_abstract_collection__Collection__has]))(var56, var57) /* has on */; +var76 = ((short int (*)(val*, val*))(var72->class->vft[COLOR_abstract_collection__Collection__has]))(var72, var73) /* has on */; } -var61 = !var60; -if (var61){ -goto CONTINUE_label62; +var77 = !var76; +if (var77){ +goto BREAK_label78; } else { } { { /* Inline separate_compiler#SeparateCompiler#method_colors (self) on */ -var65 = self->attrs[COLOR_separate_compiler__SeparateCompiler___method_colors].val; /* _method_colors on */ -if (unlikely(var65 == NULL)) { +var81 = self->attrs[COLOR_separate_compiler__SeparateCompiler___method_colors].val; /* _method_colors on */ +if (unlikely(var81 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_colors"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 161); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 162); show_backtrace(1); } -var63 = var65; -RET_LABEL64:(void)0; +var79 = var81; +RET_LABEL80:(void)0; } } { -var66 = ((val* (*)(val*, val*))(var63->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var63, var_supercall) /* [] on */; +var82 = ((val* (*)(val*, val*))(var79->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var79, var_supercall) /* [] on */; } -var67 = ((struct instance_kernel__Int*)var66)->value; /* autounbox from nullable Object to Int */; -var_color68 = var67; +var83 = ((struct instance_kernel__Int*)var82)->value; /* autounbox from nullable Object to Int */; +var_color84 = var83; { -var69 = array__AbstractArrayRead__length(var_table); +{ /* Inline array#AbstractArrayRead#length (var_table) on */ +var87 = var_table->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ +var85 = var87; +RET_LABEL86:(void)0; +} } { -{ /* Inline kernel#Int#<= (var69,var_color68) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var72 = 1; /* easy isa OTHER*/ -if (unlikely(!var72)) { -var_class_name75 = type_kernel__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name75); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 324); +{ /* Inline kernel#Int#<= (var85,var_color84) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var90 = 1; /* easy isa OTHER*/ +if (unlikely(!var90)) { +var_class_name93 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name93); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370); show_backtrace(1); } -var76 = var69 <= var_color68; -var70 = var76; -goto RET_LABEL71; -RET_LABEL71:(void)0; -} +var94 = var85 <= var_color84; +var88 = var94; +goto RET_LABEL89; +RET_LABEL89:(void)0; } -if (var70){ -var77 = NEW_range__Range(&type_range__Rangekernel__Int); -{ -var78 = array__AbstractArrayRead__length(var_table); } +if (var88){ { -var79 = BOX_kernel__Int(var78); /* autobox from Int to Discrete */ -var80 = BOX_kernel__Int(var_color68); /* autobox from Int to Discrete */ -range__Range__without_last(var77, var79, var80); /* Direct call range#Range#without_last on */ +{ /* Inline array#AbstractArrayRead#length (var_table) on */ +var97 = var_table->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ +var95 = var97; +RET_LABEL96:(void)0; } -{ -var81 = range__Range__iterator(var77); } +var_i98 = var95; +var_99 = var_color84; for(;;) { { -var82 = ((short int (*)(val*))(var81->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var81) /* is_ok on */; +{ /* Inline kernel#Int#< (var_i98,var_99) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var102 = 1; /* easy isa OTHER*/ +if (unlikely(!var102)) { +var_class_name105 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name105); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); } -if(!var82) break; -{ -var83 = ((val* (*)(val*))(var81->class->vft[COLOR_abstract_collection__Iterator__item]))(var81) /* item on */; +var106 = var_i98 < var_99; +var100 = var106; +goto RET_LABEL101; +RET_LABEL101:(void)0; } -var85 = ((struct instance_kernel__Int*)var83)->value; /* autounbox from nullable Object to Int */; -var_i84 = var85; -var86 = NULL; +} +if (var100){ +var107 = NULL; { -array__Array___91d_93d_61d(var_table, var_i84, var86); /* Direct call array#Array#[]= on */ +array__Array___91d_93d_61d(var_table, var_i98, var107); /* Direct call array#Array#[]= on */ } -CONTINUE_label87: (void)0; +var108 = 1; { -((void (*)(val*))(var81->class->vft[COLOR_abstract_collection__Iterator__next]))(var81) /* next on */; +var109 = kernel__Int__successor(var_i98, var108); +} +var_i98 = var109; +} else { +goto BREAK_label110; } } -BREAK_label87: (void)0; +BREAK_label110: (void)0; } else { } { { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on */ -var90 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ -if (unlikely(var90 == NULL)) { +var113 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ +if (unlikely(var113 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 436); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463); show_backtrace(1); } -var88 = var90; -RET_LABEL89:(void)0; +var111 = var113; +RET_LABEL112:(void)0; } } { -var91 = model__MPropDef__lookup_next_definition(var_supercall, var88, var_mtype); +var114 = model__MPropDef__lookup_next_definition(var_supercall, var111, var_mtype); } -var_mmethoddef = var91; +var_mmethoddef = var114; { -array__Array___91d_93d_61d(var_table, var_color68, var_mmethoddef); /* Direct call array#Array#[]= on */ +array__Array___91d_93d_61d(var_table, var_color84, var_mmethoddef); /* Direct call array#Array#[]= on */ } -CONTINUE_label62: (void)0; +BREAK_label78: (void)0; { -((void (*)(val*))(var50->class->vft[COLOR_abstract_collection__Iterator__next]))(var50) /* next on */; +((void (*)(val*))(var_66->class->vft[COLOR_abstract_collection__Iterator__next]))(var_66) /* next on */; } +} else { +goto BREAK_label115; } -BREAK_label62: (void)0; -CONTINUE_label92: (void)0; +} +BREAK_label115: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_66) on */ +RET_LABEL116:(void)0; +} +} +{ +((void (*)(val*))(var_3->class->vft[COLOR_abstract_collection__Iterator__next]))(var_3) /* next on */; +} +} else { +goto BREAK_label117; +} +} +BREAK_label117: (void)0; { -((void (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__next]))(var2) /* next on */; +{ /* Inline abstract_collection#Iterator#finish (var_3) on */ +RET_LABEL118:(void)0; } } -BREAK_label92: (void)0; var = var_tables; goto RET_LABEL; RET_LABEL:; @@ -5580,262 +5873,313 @@ val* var /* : Map[MClass, Array[nullable MPropDef]] */; val* var_mclasses /* var mclasses: Set[MClass] */; val* var1 /* : HashMap[MClass, Array[nullable MPropDef]] */; val* var_tables /* var tables: HashMap[MClass, Array[nullable MPropDef]] */; +val* var_ /* var : Set[MClass] */; val* var2 /* : Iterator[nullable Object] */; -short int var3 /* : Bool */; -val* var4 /* : nullable Object */; +val* var_3 /* var : Iterator[MClass] */; +short int var4 /* : Bool */; +val* var5 /* : nullable Object */; val* var_mclass /* var mclass: MClass */; -val* var5 /* : Array[nullable MPropDef] */; +val* var6 /* : Array[nullable MPropDef] */; val* var_table /* var table: Array[nullable MPropDef] */; -val* var6 /* : MModule */; -val* var8 /* : MModule */; -val* var9 /* : Set[MProperty] */; +val* var7 /* : MModule */; +val* var9 /* : MModule */; +val* var10 /* : Set[MProperty] */; val* var_mproperties /* var mproperties: Set[MProperty] */; -val* var10 /* : MClassDef */; -val* var11 /* : MClassType */; -val* var13 /* : MClassType */; +val* var11 /* : MClassDef */; +val* var13 /* : MClassDef */; +val* var14 /* : MClassType */; +val* var16 /* : MClassType */; val* var_mtype /* var mtype: MClassType */; -val* var14 /* : Iterator[nullable Object] */; -short int var15 /* : Bool */; -val* var16 /* : nullable Object */; +val* var_17 /* var : Set[MProperty] */; +val* var18 /* : Iterator[nullable Object] */; +val* var_19 /* var : Iterator[MProperty] */; +short int var20 /* : Bool */; +val* var21 /* : nullable Object */; val* var_mproperty /* var mproperty: MProperty */; -short int var17 /* : Bool */; +short int var22 /* : Bool */; int cltype; int idtype; -short int var18 /* : Bool */; -val* var19 /* : Map[MAttribute, Int] */; -val* var21 /* : Map[MAttribute, Int] */; -short int var22 /* : Bool */; short int var23 /* : Bool */; val* var24 /* : Map[MAttribute, Int] */; val* var26 /* : Map[MAttribute, Int] */; -val* var27 /* : nullable Object */; -long var28 /* : Int */; +short int var27 /* : Bool */; +short int var28 /* : Bool */; +val* var29 /* : Map[MAttribute, Int] */; +val* var31 /* : Map[MAttribute, Int] */; +val* var32 /* : nullable Object */; +long var33 /* : Int */; long var_color /* var color: Int */; -long var29 /* : Int */; -short int var30 /* : Bool */; -short int var32 /* : Bool */; -int cltype33; -int idtype34; +long var34 /* : Int */; +long var36 /* : Int */; +short int var37 /* : Bool */; +short int var39 /* : Bool */; +int cltype40; +int idtype41; const char* var_class_name; -short int var35 /* : Bool */; -val* var36 /* : Range[Int] */; -long var37 /* : Int */; -val* var38 /* : Discrete */; -val* var39 /* : Discrete */; -val* var40 /* : Iterator[Discrete] */; -short int var41 /* : Bool */; -val* var42 /* : nullable Object */; -long var_i /* var i: Int */; +short int var42 /* : Bool */; long var43 /* : Int */; -val* var44 /* : null */; -val* var46 /* : MModule */; -val* var48 /* : MModule */; -val* var49 /* : MPropDef */; -var_mclasses = p0; +long var45 /* : Int */; +long var_i /* var i: Int */; +long var_46 /* var : Int */; +short int var47 /* : Bool */; +short int var49 /* : Bool */; +int cltype50; +int idtype51; +const char* var_class_name52; +short int var53 /* : Bool */; +val* var54 /* : null */; +long var55 /* : Int */; +long var56 /* : Int */; +val* var58 /* : MModule */; +val* var60 /* : MModule */; +val* var61 /* : MPropDef */; +var_mclasses = p0; var1 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef); { -hash_collection__HashMap__init(var1); /* Direct call hash_collection#HashMap#init on */ +((void (*)(val*))(var1->class->vft[COLOR_kernel__Object__init]))(var1) /* init on */; } var_tables = var1; +var_ = var_mclasses; { -var2 = ((val* (*)(val*))(var_mclasses->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_mclasses) /* iterator on */; +var2 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on */; } +var_3 = var2; for(;;) { { -var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var2) /* is_ok on */; +var4 = ((short int (*)(val*))(var_3->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_3) /* is_ok on */; } -if(!var3) break; +if (var4){ { -var4 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__item]))(var2) /* item on */; +var5 = ((val* (*)(val*))(var_3->class->vft[COLOR_abstract_collection__Iterator__item]))(var_3) /* item on */; } -var_mclass = var4; -var5 = NEW_array__Array(&type_array__Arraynullable_model__MPropDef); +var_mclass = var5; +var6 = NEW_array__Array(&type_array__Arraynullable_model__MPropDef); { -array__Array__init(var5); /* Direct call array#Array#init on */ +((void (*)(val*))(var6->class->vft[COLOR_kernel__Object__init]))(var6) /* init on */; } -var_table = var5; +var_table = var6; { hash_collection__HashMap___91d_93d_61d(var_tables, var_mclass, var_table); /* Direct call hash_collection#HashMap#[]= on */ } { { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on */ -var8 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ -if (unlikely(var8 == NULL)) { +var9 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ +if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 436); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463); show_backtrace(1); } -var6 = var8; -RET_LABEL7:(void)0; -} +var7 = var9; +RET_LABEL8:(void)0; } -{ -var9 = abstract_compiler__MModule__properties(var6, var_mclass); } -var_mproperties = var9; { -var10 = model__MClass__intro(var_mclass); +var10 = abstract_compiler__MModule__properties(var7, var_mclass); } +var_mproperties = var10; { -{ /* Inline model#MClassDef#bound_mtype (var10) on */ -var13 = var10->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +{ /* Inline model#MClass#intro (var_mclass) on */ +var13 = var_mclass->attrs[COLOR_model__MClass___intro].val; /* _intro on */ if (unlikely(var13 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); -PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477); +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 420); show_backtrace(1); } var11 = var13; RET_LABEL12:(void)0; } } -var_mtype = var11; { -var14 = ((val* (*)(val*))(var_mproperties->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_mproperties) /* iterator on */; +{ /* Inline model#MClassDef#bound_mtype (var11) on */ +var16 = var11->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var16 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495); +show_backtrace(1); } +var14 = var16; +RET_LABEL15:(void)0; +} +} +var_mtype = var14; +var_17 = var_mproperties; +{ +var18 = ((val* (*)(val*))(var_17->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_17) /* iterator on */; +} +var_19 = var18; for(;;) { { -var15 = ((short int (*)(val*))(var14->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var14) /* is_ok on */; +var20 = ((short int (*)(val*))(var_19->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_19) /* is_ok on */; } -if(!var15) break; +if (var20){ { -var16 = ((val* (*)(val*))(var14->class->vft[COLOR_abstract_collection__Iterator__item]))(var14) /* item on */; +var21 = ((val* (*)(val*))(var_19->class->vft[COLOR_abstract_collection__Iterator__item]))(var_19) /* item on */; } -var_mproperty = var16; +var_mproperty = var21; /* isa MAttribute */ cltype = type_model__MAttribute.color; idtype = type_model__MAttribute.id; if(cltype >= var_mproperty->type->table_size) { -var17 = 0; +var22 = 0; } else { -var17 = var_mproperty->type->type_table[cltype] == idtype; +var22 = var_mproperty->type->type_table[cltype] == idtype; } -var18 = !var17; -if (var18){ -goto CONTINUE_label; +var23 = !var22; +if (var23){ +goto BREAK_label; } else { } { { /* Inline separate_compiler#SeparateCompiler#attr_colors (self) on */ -var21 = self->attrs[COLOR_separate_compiler__SeparateCompiler___attr_colors].val; /* _attr_colors on */ -if (unlikely(var21 == NULL)) { +var26 = self->attrs[COLOR_separate_compiler__SeparateCompiler___attr_colors].val; /* _attr_colors on */ +if (unlikely(var26 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_colors"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 162); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 163); show_backtrace(1); } -var19 = var21; -RET_LABEL20:(void)0; +var24 = var26; +RET_LABEL25:(void)0; } } { -var22 = abstract_collection__MapRead__has_key(var19, var_mproperty); +var27 = abstract_collection__MapRead__has_key(var24, var_mproperty); } -var23 = !var22; -if (var23){ -goto CONTINUE_label; +var28 = !var27; +if (var28){ +goto BREAK_label; } else { } { { /* Inline separate_compiler#SeparateCompiler#attr_colors (self) on */ -var26 = self->attrs[COLOR_separate_compiler__SeparateCompiler___attr_colors].val; /* _attr_colors on */ -if (unlikely(var26 == NULL)) { +var31 = self->attrs[COLOR_separate_compiler__SeparateCompiler___attr_colors].val; /* _attr_colors on */ +if (unlikely(var31 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_colors"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 162); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 163); show_backtrace(1); } -var24 = var26; -RET_LABEL25:(void)0; +var29 = var31; +RET_LABEL30:(void)0; } } { -var27 = ((val* (*)(val*, val*))(var24->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var24, var_mproperty) /* [] on */; +var32 = ((val* (*)(val*, val*))(var29->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var29, var_mproperty) /* [] on */; } -var28 = ((struct instance_kernel__Int*)var27)->value; /* autounbox from nullable Object to Int */; -var_color = var28; +var33 = ((struct instance_kernel__Int*)var32)->value; /* autounbox from nullable Object to Int */; +var_color = var33; { -var29 = array__AbstractArrayRead__length(var_table); +{ /* Inline array#AbstractArrayRead#length (var_table) on */ +var36 = var_table->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ +var34 = var36; +RET_LABEL35:(void)0; +} } { -{ /* Inline kernel#Int#<= (var29,var_color) on */ +{ /* Inline kernel#Int#<= (var34,var_color) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var32 = 1; /* easy isa OTHER*/ -if (unlikely(!var32)) { +var39 = 1; /* easy isa OTHER*/ +if (unlikely(!var39)) { var_class_name = type_kernel__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 324); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370); show_backtrace(1); } -var35 = var29 <= var_color; -var30 = var35; -goto RET_LABEL31; -RET_LABEL31:(void)0; -} +var42 = var34 <= var_color; +var37 = var42; +goto RET_LABEL38; +RET_LABEL38:(void)0; } -if (var30){ -var36 = NEW_range__Range(&type_range__Rangekernel__Int); -{ -var37 = array__AbstractArrayRead__length(var_table); } +if (var37){ { -var38 = BOX_kernel__Int(var37); /* autobox from Int to Discrete */ -var39 = BOX_kernel__Int(var_color); /* autobox from Int to Discrete */ -range__Range__without_last(var36, var38, var39); /* Direct call range#Range#without_last on */ +{ /* Inline array#AbstractArrayRead#length (var_table) on */ +var45 = var_table->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ +var43 = var45; +RET_LABEL44:(void)0; } -{ -var40 = range__Range__iterator(var36); } +var_i = var43; +var_46 = var_color; for(;;) { { -var41 = ((short int (*)(val*))(var40->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var40) /* is_ok on */; +{ /* Inline kernel#Int#< (var_i,var_46) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var49 = 1; /* easy isa OTHER*/ +if (unlikely(!var49)) { +var_class_name52 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name52); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); } -if(!var41) break; -{ -var42 = ((val* (*)(val*))(var40->class->vft[COLOR_abstract_collection__Iterator__item]))(var40) /* item on */; +var53 = var_i < var_46; +var47 = var53; +goto RET_LABEL48; +RET_LABEL48:(void)0; } -var43 = ((struct instance_kernel__Int*)var42)->value; /* autounbox from nullable Object to Int */; -var_i = var43; -var44 = NULL; +} +if (var47){ +var54 = NULL; { -array__Array___91d_93d_61d(var_table, var_i, var44); /* Direct call array#Array#[]= on */ +array__Array___91d_93d_61d(var_table, var_i, var54); /* Direct call array#Array#[]= on */ } -CONTINUE_label45: (void)0; +var55 = 1; { -((void (*)(val*))(var40->class->vft[COLOR_abstract_collection__Iterator__next]))(var40) /* next on */; +var56 = kernel__Int__successor(var_i, var55); +} +var_i = var56; +} else { +goto BREAK_label57; } } -BREAK_label45: (void)0; +BREAK_label57: (void)0; } else { } { { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on */ -var48 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ -if (unlikely(var48 == NULL)) { +var60 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ +if (unlikely(var60 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 436); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463); show_backtrace(1); } -var46 = var48; -RET_LABEL47:(void)0; +var58 = var60; +RET_LABEL59:(void)0; } } { -var49 = model__MProperty__lookup_first_definition(var_mproperty, var46, var_mtype); +var61 = model__MProperty__lookup_first_definition(var_mproperty, var58, var_mtype); } { -array__Array___91d_93d_61d(var_table, var_color, var49); /* Direct call array#Array#[]= on */ +array__Array___91d_93d_61d(var_table, var_color, var61); /* Direct call array#Array#[]= on */ } -CONTINUE_label: (void)0; +BREAK_label: (void)0; { -((void (*)(val*))(var14->class->vft[COLOR_abstract_collection__Iterator__next]))(var14) /* next on */; +((void (*)(val*))(var_19->class->vft[COLOR_abstract_collection__Iterator__next]))(var_19) /* next on */; +} +} else { +goto BREAK_label62; +} +} +BREAK_label62: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_19) on */ +RET_LABEL63:(void)0; } } -BREAK_label: (void)0; -CONTINUE_label50: (void)0; { -((void (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__next]))(var2) /* next on */; +((void (*)(val*))(var_3->class->vft[COLOR_abstract_collection__Iterator__next]))(var_3) /* next on */; +} +} else { +goto BREAK_label64; +} +} +BREAK_label64: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_3) on */ +RET_LABEL65:(void)0; } } -BREAK_label50: (void)0; var = var_tables; goto RET_LABEL; RET_LABEL:; @@ -5869,19 +6213,21 @@ val* var14 /* : HashMap[MClass, Int] */; val* var16 /* : HashMap[MClass, Int] */; val* var17 /* : RemovableCollection[Object] */; val* var19 /* : RemovableCollection[Object] */; +val* var_ /* var : RemovableCollection[MClass] */; val* var20 /* : Iterator[nullable Object] */; -short int var21 /* : Bool */; -val* var22 /* : nullable Object */; +val* var_21 /* var : Iterator[MClass] */; +short int var22 /* : Bool */; +val* var23 /* : nullable Object */; val* var_c /* var c: MClass */; -val* var23 /* : MClassType */; -val* var25 /* : MClassType */; -val* var26 /* : POSet[MType] */; +val* var24 /* : MClassType */; +val* var26 /* : MClassType */; +val* var28 /* : POSet[MType] */; val* var_poset /* var poset: POSet[MType] */; -val* var27 /* : POSetColorer[MType] */; +val* var29 /* : POSetColorer[MType] */; val* var_colorer /* var colorer: POSetColorer[MType] */; -val* var29 /* : Map[Object, Int] */; -val* var31 /* : Map[Object, Int] */; -val* var33 /* : Map[MType, Array[nullable MType]] */; +val* var30 /* : Map[Object, Int] */; +val* var32 /* : Map[Object, Int] */; +val* var34 /* : Map[MType, Array[nullable MType]] */; { { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on */ var3 = self->attrs[COLOR_separate_compiler__SeparateCompiler___runtime_type_analysis].val; /* _runtime_type_analysis on */ @@ -5891,19 +6237,19 @@ RET_LABEL2:(void)0; } if (var1 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 410); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 417); show_backtrace(1); } else { { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (var1) on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 55); +PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 53); show_backtrace(1); } var6 = var1->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types].val; /* _live_types on */ if (unlikely(var6 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types"); -PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 55); +PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 53); show_backtrace(1); } var4 = var6; @@ -5920,19 +6266,19 @@ RET_LABEL8:(void)0; } if (var7 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 411); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 418); show_backtrace(1); } else { { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_cast_types (var7) on */ if (unlikely(var7 == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 67); +PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 65); show_backtrace(1); } var12 = var7->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_cast_types].val; /* _live_cast_types on */ if (unlikely(var12 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types"); -PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 67); +PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 65); show_backtrace(1); } var10 = var12; @@ -5942,7 +6288,7 @@ RET_LABEL11:(void)0; var_live_cast_types = var10; var13 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType); { -hash_collection__HashSet__init(var13); /* Direct call hash_collection#HashSet#init on */ +((void (*)(val*))(var13->class->vft[COLOR_kernel__Object__init]))(var13) /* init on */; } var_mtypes = var13; { @@ -5956,7 +6302,7 @@ abstract_collection__SimpleCollection__add_all(var_mtypes, var_live_cast_types); var16 = self->attrs[COLOR_separate_compiler__SeparateCompiler___box_kinds].val; /* _box_kinds on */ if (unlikely(var16 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 211); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 216); show_backtrace(1); } var14 = var16; @@ -5968,85 +6314,92 @@ RET_LABEL15:(void)0; var19 = var14->attrs[COLOR_hash_collection__HashMap___keys].val; /* _keys on */ if (unlikely(var19 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _keys"); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/hash_collection.nit", 245); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/hash_collection.nit", 249); show_backtrace(1); } var17 = var19; RET_LABEL18:(void)0; } } +var_ = var17; { -var20 = ((val* (*)(val*))(var17->class->vft[COLOR_abstract_collection__Collection__iterator]))(var17) /* iterator on */; +var20 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on */; } +var_21 = var20; for(;;) { { -var21 = ((short int (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var20) /* is_ok on */; +var22 = ((short int (*)(val*))(var_21->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_21) /* is_ok on */; } -if(!var21) break; +if (var22){ { -var22 = ((val* (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__item]))(var20) /* item on */; +var23 = ((val* (*)(val*))(var_21->class->vft[COLOR_abstract_collection__Iterator__item]))(var_21) /* item on */; } -var_c = var22; +var_c = var23; { { /* Inline model#MClass#mclass_type (var_c) on */ -var25 = var_c->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on */ -if (unlikely(var25 == NULL)) { +var26 = var_c->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var26 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); -PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435); show_backtrace(1); } -var23 = var25; -RET_LABEL24:(void)0; +var24 = var26; +RET_LABEL25:(void)0; } } { -hash_collection__HashSet__add(var_mtypes, var23); /* Direct call hash_collection#HashSet#add on */ +hash_collection__HashSet__add(var_mtypes, var24); /* Direct call hash_collection#HashSet#add on */ } -CONTINUE_label: (void)0; { -((void (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__next]))(var20) /* next on */; +((void (*)(val*))(var_21->class->vft[COLOR_abstract_collection__Iterator__next]))(var_21) /* next on */; +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; { -var26 = separate_compiler__SeparateCompiler__poset_from_mtypes(self, var_mtypes); +{ /* Inline abstract_collection#Iterator#finish (var_21) on */ +RET_LABEL27:(void)0; +} } -var_poset = var26; -var27 = NEW_coloring__POSetColorer(&type_coloring__POSetColorermodel__MType); { -{ /* Inline coloring#POSetColorer#init (var27) on */ -RET_LABEL28:(void)0; +var28 = separate_compiler__SeparateCompiler__poset_from_mtypes(self, var_mtypes); } +var_poset = var28; +var29 = NEW_coloring__POSetColorer(&type_coloring__POSetColorermodel__MType); +{ +((void (*)(val*))(var29->class->vft[COLOR_kernel__Object__init]))(var29) /* init on */; } -var_colorer = var27; +var_colorer = var29; { coloring__POSetColorer__colorize(var_colorer, var_poset); /* Direct call coloring#POSetColorer#colorize on */ } { -var29 = coloring__POSetColorer__ids(var_colorer); +var30 = coloring__POSetColorer__ids(var_colorer); } { -{ /* Inline separate_compiler#SeparateCompiler#type_ids= (self,var29) on */ -self->attrs[COLOR_separate_compiler__SeparateCompiler___type_ids].val = var29; /* _type_ids on */ -RET_LABEL30:(void)0; +{ /* Inline separate_compiler#SeparateCompiler#type_ids= (self,var30) on */ +self->attrs[COLOR_separate_compiler__SeparateCompiler___type_ids].val = var30; /* _type_ids on */ +RET_LABEL31:(void)0; } } { -var31 = coloring__POSetColorer__colors(var_colorer); +var32 = coloring__POSetColorer__colors(var_colorer); } { -{ /* Inline separate_compiler#SeparateCompiler#type_colors= (self,var31) on */ -self->attrs[COLOR_separate_compiler__SeparateCompiler___type_colors].val = var31; /* _type_colors on */ -RET_LABEL32:(void)0; +{ /* Inline separate_compiler#SeparateCompiler#type_colors= (self,var32) on */ +self->attrs[COLOR_separate_compiler__SeparateCompiler___type_colors].val = var32; /* _type_colors on */ +RET_LABEL33:(void)0; } } { -var33 = separate_compiler__SeparateCompiler__build_type_tables(self, var_poset); +var34 = separate_compiler__SeparateCompiler__build_type_tables(self, var_poset); } { -{ /* Inline separate_compiler#SeparateCompiler#type_tables= (self,var33) on */ -self->attrs[COLOR_separate_compiler__SeparateCompiler___type_tables].val = var33; /* _type_tables on */ -RET_LABEL34:(void)0; +{ /* Inline separate_compiler#SeparateCompiler#type_tables= (self,var34) on */ +self->attrs[COLOR_separate_compiler__SeparateCompiler___type_tables].val = var34; /* _type_tables on */ +RET_LABEL35:(void)0; } } { @@ -6072,115 +6425,135 @@ val* var /* : POSet[MType] */; val* var_mtypes /* var mtypes: Set[MType] */; val* var1 /* : POSet[MType] */; val* var_poset /* var poset: POSet[MType] */; -val* var3 /* : Iterator[nullable Object] */; +val* var_ /* var : Set[MType] */; +val* var2 /* : Iterator[nullable Object] */; +val* var_3 /* var : Iterator[MType] */; short int var4 /* : Bool */; val* var5 /* : nullable Object */; val* var_e /* var e: MType */; val* var6 /* : POSetElement[Object] */; -val* var7 /* : Iterator[nullable Object] */; -short int var8 /* : Bool */; -val* var9 /* : nullable Object */; -val* var_o /* var o: MType */; +val* var_7 /* var : Set[MType] */; +val* var8 /* : Iterator[nullable Object] */; +val* var_9 /* var : Iterator[MType] */; short int var10 /* : Bool */; -short int var11 /* : Bool */; -val* var_other /* var other: nullable Object */; +val* var11 /* : nullable Object */; +val* var_o /* var o: MType */; +short int var12 /* : Bool */; short int var13 /* : Bool */; +val* var_other /* var other: nullable Object */; short int var15 /* : Bool */; -val* var16 /* : MModule */; +short int var17 /* : Bool */; val* var18 /* : MModule */; -val* var19 /* : null */; -short int var20 /* : Bool */; +val* var20 /* : MModule */; +val* var21 /* : null */; +short int var22 /* : Bool */; var_mtypes = p0; var1 = NEW_poset__POSet(&type_poset__POSetmodel__MType); { -{ /* Inline poset#POSet#init (var1) on */ -RET_LABEL2:(void)0; -} +((void (*)(val*))(var1->class->vft[COLOR_kernel__Object__init]))(var1) /* init on */; } var_poset = var1; +var_ = var_mtypes; { -var3 = ((val* (*)(val*))(var_mtypes->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_mtypes) /* iterator on */; +var2 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on */; } +var_3 = var2; for(;;) { { -var4 = ((short int (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var3) /* is_ok on */; +var4 = ((short int (*)(val*))(var_3->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_3) /* is_ok on */; } -if(!var4) break; +if (var4){ { -var5 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__item]))(var3) /* item on */; +var5 = ((val* (*)(val*))(var_3->class->vft[COLOR_abstract_collection__Iterator__item]))(var_3) /* item on */; } var_e = var5; { var6 = poset__POSet__add_node(var_poset, var_e); } -var6; +var_7 = var_mtypes; { -var7 = ((val* (*)(val*))(var_mtypes->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_mtypes) /* iterator on */; +var8 = ((val* (*)(val*))(var_7->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_7) /* iterator on */; } +var_9 = var8; for(;;) { { -var8 = ((short int (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var7) /* is_ok on */; +var10 = ((short int (*)(val*))(var_9->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_9) /* is_ok on */; } -if(!var8) break; +if (var10){ { -var9 = ((val* (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__item]))(var7) /* item on */; +var11 = ((val* (*)(val*))(var_9->class->vft[COLOR_abstract_collection__Iterator__item]))(var_9) /* item on */; } -var_o = var9; +var_o = var11; { { /* Inline kernel#Object#== (var_e,var_o) on */ var_other = var_o; { { /* Inline kernel#Object#is_same_instance (var_e,var_other) on */ -var15 = var_e == var_other; +var17 = var_e == var_other; +var15 = var17; +goto RET_LABEL16; +RET_LABEL16:(void)0; +} +} var13 = var15; goto RET_LABEL14; RET_LABEL14:(void)0; } +var12 = var13; } -var11 = var13; -goto RET_LABEL12; -RET_LABEL12:(void)0; -} -var10 = var11; -} -if (var10){ -goto CONTINUE_label; +if (var12){ +goto BREAK_label; } else { } { { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on */ -var18 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ -if (unlikely(var18 == NULL)) { +var20 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ +if (unlikely(var20 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 436); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463); show_backtrace(1); } -var16 = var18; -RET_LABEL17:(void)0; +var18 = var20; +RET_LABEL19:(void)0; } } -var19 = NULL; +var21 = NULL; { -var20 = model__MType__is_subtype(var_e, var16, var19, var_o); +var22 = model__MType__is_subtype(var_e, var18, var21, var_o); } -if (var20){ +if (var22){ { poset__POSet__add_edge(var_poset, var_e, var_o); /* Direct call poset#POSet#add_edge on */ } } else { } -CONTINUE_label: (void)0; +BREAK_label: (void)0; { -((void (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__next]))(var7) /* next on */; +((void (*)(val*))(var_9->class->vft[COLOR_abstract_collection__Iterator__next]))(var_9) /* next on */; +} +} else { +goto BREAK_label23; } } -BREAK_label: (void)0; -CONTINUE_label21: (void)0; +BREAK_label23: (void)0; { -((void (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__next]))(var3) /* next on */; +{ /* Inline abstract_collection#Iterator#finish (var_9) on */ +RET_LABEL24:(void)0; +} +} +{ +((void (*)(val*))(var_3->class->vft[COLOR_abstract_collection__Iterator__next]))(var_3) /* next on */; +} +} else { +goto BREAK_label25; +} +} +BREAK_label25: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_3) on */ +RET_LABEL26:(void)0; } } -BREAK_label21: (void)0; var = var_poset; goto RET_LABEL; RET_LABEL:; @@ -6201,148 +6574,174 @@ val* var /* : Map[MType, Array[nullable MType]] */; val* var_mtypes /* var mtypes: POSet[MType] */; val* var1 /* : HashMap[MType, Array[nullable MType]] */; val* var_tables /* var tables: HashMap[MType, Array[nullable MType]] */; +val* var_ /* var : POSet[MType] */; val* var2 /* : Iterator[Object] */; -short int var3 /* : Bool */; -val* var4 /* : nullable Object */; +val* var_3 /* var : Iterator[MType] */; +short int var4 /* : Bool */; +val* var5 /* : nullable Object */; val* var_mtype /* var mtype: MType */; -val* var5 /* : Array[nullable MType] */; +val* var6 /* : Array[nullable MType] */; val* var_table /* var table: Array[nullable MType] */; -val* var6 /* : POSetElement[Object] */; -val* var7 /* : Collection[Object] */; -val* var8 /* : Iterator[nullable Object] */; -short int var9 /* : Bool */; -val* var10 /* : nullable Object */; +val* var7 /* : POSetElement[Object] */; +val* var8 /* : Collection[Object] */; +val* var_9 /* var : Collection[MType] */; +val* var10 /* : Iterator[nullable Object] */; +val* var_11 /* var : Iterator[MType] */; +short int var12 /* : Bool */; +val* var13 /* : nullable Object */; val* var_sup /* var sup: MType */; -val* var11 /* : Map[MType, Int] */; -val* var13 /* : Map[MType, Int] */; -val* var14 /* : nullable Object */; -long var15 /* : Int */; +val* var14 /* : Map[MType, Int] */; +val* var16 /* : Map[MType, Int] */; +val* var17 /* : nullable Object */; +long var18 /* : Int */; long var_color /* var color: Int */; -long var16 /* : Int */; -short int var17 /* : Bool */; -short int var19 /* : Bool */; +long var19 /* : Int */; +long var21 /* : Int */; +short int var22 /* : Bool */; +short int var24 /* : Bool */; int cltype; int idtype; const char* var_class_name; -short int var20 /* : Bool */; -val* var21 /* : Range[Int] */; -long var22 /* : Int */; -val* var23 /* : Discrete */; -val* var24 /* : Discrete */; -val* var25 /* : Iterator[Discrete] */; -short int var26 /* : Bool */; -val* var27 /* : nullable Object */; -long var_i /* var i: Int */; +short int var25 /* : Bool */; +long var26 /* : Int */; long var28 /* : Int */; -val* var29 /* : null */; +long var_i /* var i: Int */; +long var_29 /* var : Int */; +short int var30 /* : Bool */; +short int var32 /* : Bool */; +int cltype33; +int idtype34; +const char* var_class_name35; +short int var36 /* : Bool */; +val* var37 /* : null */; +long var38 /* : Int */; +long var39 /* : Int */; var_mtypes = p0; var1 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MTypearray__Arraynullable_model__MType); { -hash_collection__HashMap__init(var1); /* Direct call hash_collection#HashMap#init on */ +((void (*)(val*))(var1->class->vft[COLOR_kernel__Object__init]))(var1) /* init on */; } var_tables = var1; +var_ = var_mtypes; { -var2 = poset__POSet__iterator(var_mtypes); +var2 = poset__POSet__iterator(var_); } +var_3 = var2; for(;;) { { -var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var2) /* is_ok on */; +var4 = ((short int (*)(val*))(var_3->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_3) /* is_ok on */; } -if(!var3) break; +if (var4){ { -var4 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__item]))(var2) /* item on */; +var5 = ((val* (*)(val*))(var_3->class->vft[COLOR_abstract_collection__Iterator__item]))(var_3) /* item on */; } -var_mtype = var4; -var5 = NEW_array__Array(&type_array__Arraynullable_model__MType); +var_mtype = var5; +var6 = NEW_array__Array(&type_array__Arraynullable_model__MType); { -array__Array__init(var5); /* Direct call array#Array#init on */ +((void (*)(val*))(var6->class->vft[COLOR_kernel__Object__init]))(var6) /* init on */; } -var_table = var5; +var_table = var6; { -var6 = poset__POSet___91d_93d(var_mtypes, var_mtype); +var7 = poset__POSet___91d_93d(var_mtypes, var_mtype); } { -var7 = poset__POSetElement__greaters(var6); +var8 = poset__POSetElement__greaters(var7); } +var_9 = var8; { -var8 = ((val* (*)(val*))(var7->class->vft[COLOR_abstract_collection__Collection__iterator]))(var7) /* iterator on */; +var10 = ((val* (*)(val*))(var_9->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_9) /* iterator on */; } +var_11 = var10; for(;;) { { -var9 = ((short int (*)(val*))(var8->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var8) /* is_ok on */; +var12 = ((short int (*)(val*))(var_11->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_11) /* is_ok on */; } -if(!var9) break; +if (var12){ { -var10 = ((val* (*)(val*))(var8->class->vft[COLOR_abstract_collection__Iterator__item]))(var8) /* item on */; +var13 = ((val* (*)(val*))(var_11->class->vft[COLOR_abstract_collection__Iterator__item]))(var_11) /* item on */; } -var_sup = var10; +var_sup = var13; { { /* Inline separate_compiler#SeparateCompiler#type_colors (self) on */ -var13 = self->attrs[COLOR_separate_compiler__SeparateCompiler___type_colors].val; /* _type_colors on */ -if (unlikely(var13 == NULL)) { +var16 = self->attrs[COLOR_separate_compiler__SeparateCompiler___type_colors].val; /* _type_colors on */ +if (unlikely(var16 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_colors"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 159); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 160); show_backtrace(1); } -var11 = var13; -RET_LABEL12:(void)0; +var14 = var16; +RET_LABEL15:(void)0; } } { -var14 = ((val* (*)(val*, val*))(var11->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var11, var_sup) /* [] on */; +var17 = ((val* (*)(val*, val*))(var14->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var14, var_sup) /* [] on */; } -var15 = ((struct instance_kernel__Int*)var14)->value; /* autounbox from nullable Object to Int */; -var_color = var15; +var18 = ((struct instance_kernel__Int*)var17)->value; /* autounbox from nullable Object to Int */; +var_color = var18; { -var16 = array__AbstractArrayRead__length(var_table); +{ /* Inline array#AbstractArrayRead#length (var_table) on */ +var21 = var_table->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ +var19 = var21; +RET_LABEL20:(void)0; +} } { -{ /* Inline kernel#Int#<= (var16,var_color) on */ +{ /* Inline kernel#Int#<= (var19,var_color) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var19 = 1; /* easy isa OTHER*/ -if (unlikely(!var19)) { +var24 = 1; /* easy isa OTHER*/ +if (unlikely(!var24)) { var_class_name = type_kernel__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 324); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370); show_backtrace(1); } -var20 = var16 <= var_color; -var17 = var20; -goto RET_LABEL18; -RET_LABEL18:(void)0; -} +var25 = var19 <= var_color; +var22 = var25; +goto RET_LABEL23; +RET_LABEL23:(void)0; } -if (var17){ -var21 = NEW_range__Range(&type_range__Rangekernel__Int); -{ -var22 = array__AbstractArrayRead__length(var_table); } +if (var22){ { -var23 = BOX_kernel__Int(var22); /* autobox from Int to Discrete */ -var24 = BOX_kernel__Int(var_color); /* autobox from Int to Discrete */ -range__Range__without_last(var21, var23, var24); /* Direct call range#Range#without_last on */ +{ /* Inline array#AbstractArrayRead#length (var_table) on */ +var28 = var_table->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ +var26 = var28; +RET_LABEL27:(void)0; } -{ -var25 = range__Range__iterator(var21); } +var_i = var26; +var_29 = var_color; for(;;) { { -var26 = ((short int (*)(val*))(var25->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var25) /* is_ok on */; +{ /* Inline kernel#Int#< (var_i,var_29) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var32 = 1; /* easy isa OTHER*/ +if (unlikely(!var32)) { +var_class_name35 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); +} +var36 = var_i < var_29; +var30 = var36; +goto RET_LABEL31; +RET_LABEL31:(void)0; } -if(!var26) break; -{ -var27 = ((val* (*)(val*))(var25->class->vft[COLOR_abstract_collection__Iterator__item]))(var25) /* item on */; } -var28 = ((struct instance_kernel__Int*)var27)->value; /* autounbox from nullable Object to Int */; -var_i = var28; -var29 = NULL; +if (var30){ +var37 = NULL; { -array__Array___91d_93d_61d(var_table, var_i, var29); /* Direct call array#Array#[]= on */ +array__Array___91d_93d_61d(var_table, var_i, var37); /* Direct call array#Array#[]= on */ } -CONTINUE_label: (void)0; +var38 = 1; { -((void (*)(val*))(var25->class->vft[COLOR_abstract_collection__Iterator__next]))(var25) /* next on */; +var39 = kernel__Int__successor(var_i, var38); +} +var_i = var39; +} else { +goto BREAK_label; } } BREAK_label: (void)0; @@ -6351,21 +6750,35 @@ BREAK_label: (void)0; { array__Array___91d_93d_61d(var_table, var_color, var_sup); /* Direct call array#Array#[]= on */ } -CONTINUE_label30: (void)0; { -((void (*)(val*))(var8->class->vft[COLOR_abstract_collection__Iterator__next]))(var8) /* next on */; +((void (*)(val*))(var_11->class->vft[COLOR_abstract_collection__Iterator__next]))(var_11) /* next on */; +} +} else { +goto BREAK_label40; +} +} +BREAK_label40: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_11) on */ +RET_LABEL41:(void)0; } } -BREAK_label30: (void)0; { hash_collection__HashMap___91d_93d_61d(var_tables, var_mtype, var_table); /* Direct call hash_collection#HashMap#[]= on */ } -CONTINUE_label31: (void)0; { -((void (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__next]))(var2) /* next on */; +((void (*)(val*))(var_3->class->vft[COLOR_abstract_collection__Iterator__next]))(var_3) /* next on */; +} +} else { +goto BREAK_label42; +} +} +BREAK_label42: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_3) on */ +RET_LABEL43:(void)0; } } -BREAK_label31: (void)0; var = var_tables; goto RET_LABEL; RET_LABEL:; @@ -6389,58 +6802,66 @@ val* var1 /* : nullable RapidTypeAnalysis */; val* var3 /* : nullable RapidTypeAnalysis */; val* var4 /* : HashSet[MClassType] */; val* var6 /* : HashSet[MClassType] */; +val* var_ /* var : HashSet[MClassType] */; val* var7 /* : Iterator[Object] */; -short int var8 /* : Bool */; -val* var9 /* : nullable Object */; +val* var_8 /* var : Iterator[MClassType] */; +short int var9 /* : Bool */; +val* var10 /* : nullable Object */; val* var_mtype /* var mtype: MClassType */; -val* var10 /* : HashSet[MType] */; +val* var11 /* : HashSet[MType] */; val* var_set /* var set: HashSet[MType] */; -val* var11 /* : MModule */; -val* var13 /* : MModule */; -val* var14 /* : Set[MClassDef] */; -val* var15 /* : Iterator[nullable Object] */; -short int var16 /* : Bool */; -val* var17 /* : nullable Object */; +val* var12 /* : MModule */; +val* var14 /* : MModule */; +val* var15 /* : Set[MClassDef] */; +val* var_16 /* var : Set[MClassDef] */; +val* var17 /* : Iterator[nullable Object] */; +val* var_18 /* var : Iterator[MClassDef] */; +short int var19 /* : Bool */; +val* var20 /* : nullable Object */; val* var_cd /* var cd: MClassDef */; -val* var18 /* : Map[MClassDef, Set[MType]] */; -val* var20 /* : Map[MClassDef, Set[MType]] */; -short int var21 /* : Bool */; -val* var22 /* : Map[MClassDef, Set[MType]] */; -val* var24 /* : Map[MClassDef, Set[MType]] */; -val* var25 /* : nullable Object */; -val* var27 /* : BucketsColorer[MType, MType] */; +val* var21 /* : Map[MClassDef, Set[MType]] */; +val* var23 /* : Map[MClassDef, Set[MType]] */; +short int var24 /* : Bool */; +val* var25 /* : Map[MClassDef, Set[MType]] */; +val* var27 /* : Map[MClassDef, Set[MType]] */; +val* var28 /* : nullable Object */; +val* var32 /* : BucketsColorer[MType, MType] */; val* var_colorer /* var colorer: BucketsColorer[MType, MType] */; -val* var29 /* : Map[Object, Int] */; -val* var31 /* : Map[MClassType, Array[nullable MType]] */; -val* var33 /* : HashSet[MType] */; +val* var33 /* : Map[Object, Int] */; +val* var35 /* : Map[MClassType, Array[nullable MType]] */; +val* var37 /* : HashSet[MType] */; val* var_all_unresolved /* var all_unresolved: HashSet[MType] */; -val* var34 /* : Map[MClassDef, Set[MType]] */; -val* var36 /* : Map[MClassDef, Set[MType]] */; -val* var37 /* : Collection[nullable Object] */; -val* var38 /* : Iterator[nullable Object] */; -short int var39 /* : Bool */; -val* var40 /* : nullable Object */; +val* var38 /* : Map[MClassDef, Set[MType]] */; +val* var40 /* : Map[MClassDef, Set[MType]] */; +val* var41 /* : Collection[nullable Object] */; +val* var_42 /* var : RemovableCollection[Set[MType]] */; +val* var43 /* : Iterator[nullable Object] */; +val* var_44 /* var : Iterator[Set[MType]] */; +short int var45 /* : Bool */; +val* var46 /* : nullable Object */; val* var_t /* var t: Set[MType] */; -val* var42 /* : HashMap[MType, Int] */; +val* var49 /* : HashMap[MType, Int] */; val* var_all_unresolved_types_colors /* var all_unresolved_types_colors: HashMap[MType, Int] */; -val* var43 /* : Iterator[Object] */; -short int var44 /* : Bool */; -val* var45 /* : nullable Object */; -val* var_t46 /* var t: MType */; -val* var47 /* : Map[MType, Int] */; -val* var49 /* : Map[MType, Int] */; -short int var50 /* : Bool */; -val* var51 /* : Map[MType, Int] */; -val* var53 /* : Map[MType, Int] */; +val* var_50 /* var : HashSet[MType] */; +val* var51 /* : Iterator[Object] */; +val* var_52 /* var : Iterator[MType] */; +short int var53 /* : Bool */; val* var54 /* : nullable Object */; -long var55 /* : Int */; -long var56 /* : Int */; -long var58 /* : Int */; -val* var59 /* : nullable Object */; +val* var_t55 /* var t: MType */; +val* var56 /* : Map[MType, Int] */; +val* var58 /* : Map[MType, Int] */; +short int var59 /* : Bool */; +val* var60 /* : Map[MType, Int] */; +val* var62 /* : Map[MType, Int] */; +val* var63 /* : nullable Object */; +long var64 /* : Int */; +long var65 /* : Int */; +long var67 /* : Int */; +val* var68 /* : nullable Object */; var_mtypes = p0; var = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassTypeabstract_collection__Setmodel__MType); { -hash_collection__HashMap__init(var); /* Direct call hash_collection#HashMap#init on */ +((void (*)(val*))(var->class->vft[COLOR_kernel__Object__init]))(var) /* init on */; } var_mtype2unresolved = var; { @@ -6452,258 +6873,292 @@ RET_LABEL2:(void)0; } if (var1 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 475); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 482); show_backtrace(1); } else { { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (var1) on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 55); +PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 53); show_backtrace(1); } var6 = var1->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types].val; /* _live_types on */ if (unlikely(var6 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types"); -PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 55); +PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 53); show_backtrace(1); } var4 = var6; RET_LABEL5:(void)0; } } +var_ = var4; { -var7 = hash_collection__HashSet__iterator(var4); +var7 = hash_collection__HashSet__iterator(var_); } +var_8 = var7; for(;;) { { -var8 = ((short int (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var7) /* is_ok on */; +var9 = ((short int (*)(val*))(var_8->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_8) /* is_ok on */; } -if(!var8) break; +if (var9){ { -var9 = ((val* (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__item]))(var7) /* item on */; +var10 = ((val* (*)(val*))(var_8->class->vft[COLOR_abstract_collection__Iterator__item]))(var_8) /* item on */; } -var_mtype = var9; -var10 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType); +var_mtype = var10; +var11 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType); { -hash_collection__HashSet__init(var10); /* Direct call hash_collection#HashSet#init on */ +((void (*)(val*))(var11->class->vft[COLOR_kernel__Object__init]))(var11) /* init on */; } -var_set = var10; +var_set = var11; { { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on */ -var13 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ -if (unlikely(var13 == NULL)) { +var14 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ +if (unlikely(var14 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 436); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463); show_backtrace(1); } -var11 = var13; -RET_LABEL12:(void)0; +var12 = var14; +RET_LABEL13:(void)0; } } { -var14 = model__MClassType__collect_mclassdefs(var_mtype, var11); +var15 = model__MClassType__collect_mclassdefs(var_mtype, var12); } +var_16 = var15; { -var15 = ((val* (*)(val*))(var14->class->vft[COLOR_abstract_collection__Collection__iterator]))(var14) /* iterator on */; +var17 = ((val* (*)(val*))(var_16->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_16) /* iterator on */; } +var_18 = var17; for(;;) { { -var16 = ((short int (*)(val*))(var15->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var15) /* is_ok on */; +var19 = ((short int (*)(val*))(var_18->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_18) /* is_ok on */; } -if(!var16) break; +if (var19){ { -var17 = ((val* (*)(val*))(var15->class->vft[COLOR_abstract_collection__Iterator__item]))(var15) /* item on */; +var20 = ((val* (*)(val*))(var_18->class->vft[COLOR_abstract_collection__Iterator__item]))(var_18) /* item on */; } -var_cd = var17; +var_cd = var20; { { /* Inline separate_compiler#SeparateCompiler#live_unresolved_types (self) on */ -var20 = self->attrs[COLOR_separate_compiler__SeparateCompiler___live_unresolved_types].val; /* _live_unresolved_types on */ -if (unlikely(var20 == NULL)) { +var23 = self->attrs[COLOR_separate_compiler__SeparateCompiler___live_unresolved_types].val; /* _live_unresolved_types on */ +if (unlikely(var23 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 156); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 157); show_backtrace(1); } -var18 = var20; -RET_LABEL19:(void)0; +var21 = var23; +RET_LABEL22:(void)0; } } { -var21 = abstract_collection__MapRead__has_key(var18, var_cd); +var24 = abstract_collection__MapRead__has_key(var21, var_cd); } -if (var21){ +if (var24){ { { /* Inline separate_compiler#SeparateCompiler#live_unresolved_types (self) on */ -var24 = self->attrs[COLOR_separate_compiler__SeparateCompiler___live_unresolved_types].val; /* _live_unresolved_types on */ -if (unlikely(var24 == NULL)) { +var27 = self->attrs[COLOR_separate_compiler__SeparateCompiler___live_unresolved_types].val; /* _live_unresolved_types on */ +if (unlikely(var27 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 156); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 157); show_backtrace(1); } -var22 = var24; -RET_LABEL23:(void)0; +var25 = var27; +RET_LABEL26:(void)0; } } { -var25 = ((val* (*)(val*, val*))(var22->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var22, var_cd) /* [] on */; +var28 = ((val* (*)(val*, val*))(var25->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var25, var_cd) /* [] on */; } { -abstract_collection__SimpleCollection__add_all(var_set, var25); /* Direct call abstract_collection#SimpleCollection#add_all on */ +abstract_collection__SimpleCollection__add_all(var_set, var28); /* Direct call abstract_collection#SimpleCollection#add_all on */ } } else { } -CONTINUE_label: (void)0; { -((void (*)(val*))(var15->class->vft[COLOR_abstract_collection__Iterator__next]))(var15) /* next on */; +((void (*)(val*))(var_18->class->vft[COLOR_abstract_collection__Iterator__next]))(var_18) /* next on */; +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; { +{ /* Inline abstract_collection#Iterator#finish (var_18) on */ +RET_LABEL29:(void)0; +} +} +{ hash_collection__HashMap___91d_93d_61d(var_mtype2unresolved, var_mtype, var_set); /* Direct call hash_collection#HashMap#[]= on */ } -CONTINUE_label26: (void)0; { -((void (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__next]))(var7) /* next on */; +((void (*)(val*))(var_8->class->vft[COLOR_abstract_collection__Iterator__next]))(var_8) /* next on */; +} +} else { +goto BREAK_label30; } } -BREAK_label26: (void)0; -var27 = NEW_coloring__BucketsColorer(&type_coloring__BucketsColorermodel__MTypemodel__MType); +BREAK_label30: (void)0; { -{ /* Inline coloring#BucketsColorer#init (var27) on */ -RET_LABEL28:(void)0; +{ /* Inline abstract_collection#Iterator#finish (var_8) on */ +RET_LABEL31:(void)0; } } -var_colorer = var27; +var32 = NEW_coloring__BucketsColorer(&type_coloring__BucketsColorermodel__MTypemodel__MType); { -var29 = coloring__BucketsColorer__colorize(var_colorer, var_mtype2unresolved); +((void (*)(val*))(var32->class->vft[COLOR_kernel__Object__init]))(var32) /* init on */; } +var_colorer = var32; { -{ /* Inline separate_compiler#SeparateCompiler#opentype_colors= (self,var29) on */ -self->attrs[COLOR_separate_compiler__SeparateCompiler___opentype_colors].val = var29; /* _opentype_colors on */ -RET_LABEL30:(void)0; +var33 = coloring__BucketsColorer__colorize(var_colorer, var_mtype2unresolved); +} +{ +{ /* Inline separate_compiler#SeparateCompiler#opentype_colors= (self,var33) on */ +self->attrs[COLOR_separate_compiler__SeparateCompiler___opentype_colors].val = var33; /* _opentype_colors on */ +RET_LABEL34:(void)0; } } { -var31 = separate_compiler__SeparateCompiler__build_resolution_tables(self, var_mtype2unresolved); +var35 = separate_compiler__SeparateCompiler__build_resolution_tables(self, var_mtype2unresolved); } { -{ /* Inline separate_compiler#SeparateCompiler#resolution_tables= (self,var31) on */ -self->attrs[COLOR_separate_compiler__SeparateCompiler___resolution_tables].val = var31; /* _resolution_tables on */ -RET_LABEL32:(void)0; +{ /* Inline separate_compiler#SeparateCompiler#resolution_tables= (self,var35) on */ +self->attrs[COLOR_separate_compiler__SeparateCompiler___resolution_tables].val = var35; /* _resolution_tables on */ +RET_LABEL36:(void)0; } } -var33 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType); +var37 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType); { -hash_collection__HashSet__init(var33); /* Direct call hash_collection#HashSet#init on */ +((void (*)(val*))(var37->class->vft[COLOR_kernel__Object__init]))(var37) /* init on */; } -var_all_unresolved = var33; +var_all_unresolved = var37; { { /* Inline separate_compiler#SeparateCompiler#live_unresolved_types (self) on */ -var36 = self->attrs[COLOR_separate_compiler__SeparateCompiler___live_unresolved_types].val; /* _live_unresolved_types on */ -if (unlikely(var36 == NULL)) { +var40 = self->attrs[COLOR_separate_compiler__SeparateCompiler___live_unresolved_types].val; /* _live_unresolved_types on */ +if (unlikely(var40 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 156); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 157); show_backtrace(1); } -var34 = var36; -RET_LABEL35:(void)0; +var38 = var40; +RET_LABEL39:(void)0; } } { -var37 = ((val* (*)(val*))(var34->class->vft[COLOR_abstract_collection__MapRead__values]))(var34) /* values on */; +var41 = ((val* (*)(val*))(var38->class->vft[COLOR_abstract_collection__MapRead__values]))(var38) /* values on */; } +var_42 = var41; { -var38 = ((val* (*)(val*))(var37->class->vft[COLOR_abstract_collection__Collection__iterator]))(var37) /* iterator on */; +var43 = ((val* (*)(val*))(var_42->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_42) /* iterator on */; } +var_44 = var43; for(;;) { { -var39 = ((short int (*)(val*))(var38->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var38) /* is_ok on */; +var45 = ((short int (*)(val*))(var_44->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_44) /* is_ok on */; } -if(!var39) break; +if (var45){ { -var40 = ((val* (*)(val*))(var38->class->vft[COLOR_abstract_collection__Iterator__item]))(var38) /* item on */; +var46 = ((val* (*)(val*))(var_44->class->vft[COLOR_abstract_collection__Iterator__item]))(var_44) /* item on */; } -var_t = var40; +var_t = var46; { abstract_collection__SimpleCollection__add_all(var_all_unresolved, var_t); /* Direct call abstract_collection#SimpleCollection#add_all on */ } -CONTINUE_label41: (void)0; { -((void (*)(val*))(var38->class->vft[COLOR_abstract_collection__Iterator__next]))(var38) /* next on */; +((void (*)(val*))(var_44->class->vft[COLOR_abstract_collection__Iterator__next]))(var_44) /* next on */; } +} else { +goto BREAK_label47; } -BREAK_label41: (void)0; -var42 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MTypekernel__Int); +} +BREAK_label47: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_44) on */ +RET_LABEL48:(void)0; +} +} +var49 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MTypekernel__Int); { -hash_collection__HashMap__init(var42); /* Direct call hash_collection#HashMap#init on */ +((void (*)(val*))(var49->class->vft[COLOR_kernel__Object__init]))(var49) /* init on */; } -var_all_unresolved_types_colors = var42; +var_all_unresolved_types_colors = var49; +var_50 = var_all_unresolved; { -var43 = hash_collection__HashSet__iterator(var_all_unresolved); +var51 = hash_collection__HashSet__iterator(var_50); } +var_52 = var51; for(;;) { { -var44 = ((short int (*)(val*))(var43->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var43) /* is_ok on */; +var53 = ((short int (*)(val*))(var_52->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_52) /* is_ok on */; } -if(!var44) break; +if (var53){ { -var45 = ((val* (*)(val*))(var43->class->vft[COLOR_abstract_collection__Iterator__item]))(var43) /* item on */; +var54 = ((val* (*)(val*))(var_52->class->vft[COLOR_abstract_collection__Iterator__item]))(var_52) /* item on */; } -var_t46 = var45; +var_t55 = var54; { { /* Inline separate_compiler#SeparateCompiler#opentype_colors (self) on */ -var49 = self->attrs[COLOR_separate_compiler__SeparateCompiler___opentype_colors].val; /* _opentype_colors on */ -if (unlikely(var49 == NULL)) { +var58 = self->attrs[COLOR_separate_compiler__SeparateCompiler___opentype_colors].val; /* _opentype_colors on */ +if (unlikely(var58 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opentype_colors"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 160); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 161); show_backtrace(1); } -var47 = var49; -RET_LABEL48:(void)0; +var56 = var58; +RET_LABEL57:(void)0; } } { -var50 = abstract_collection__MapRead__has_key(var47, var_t46); +var59 = abstract_collection__MapRead__has_key(var56, var_t55); } -if (var50){ +if (var59){ { { /* Inline separate_compiler#SeparateCompiler#opentype_colors (self) on */ -var53 = self->attrs[COLOR_separate_compiler__SeparateCompiler___opentype_colors].val; /* _opentype_colors on */ -if (unlikely(var53 == NULL)) { +var62 = self->attrs[COLOR_separate_compiler__SeparateCompiler___opentype_colors].val; /* _opentype_colors on */ +if (unlikely(var62 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opentype_colors"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 160); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 161); show_backtrace(1); } -var51 = var53; -RET_LABEL52:(void)0; +var60 = var62; +RET_LABEL61:(void)0; } } { -var54 = ((val* (*)(val*, val*))(var51->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var51, var_t46) /* [] on */; +var63 = ((val* (*)(val*, val*))(var60->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var60, var_t55) /* [] on */; } { -hash_collection__HashMap___91d_93d_61d(var_all_unresolved_types_colors, var_t46, var54); /* Direct call hash_collection#HashMap#[]= on */ +hash_collection__HashMap___91d_93d_61d(var_all_unresolved_types_colors, var_t55, var63); /* Direct call hash_collection#HashMap#[]= on */ } } else { -var55 = 1; +var64 = 1; { -{ /* Inline kernel#Int#unary - (var55) on */ -var58 = -var55; -var56 = var58; -goto RET_LABEL57; -RET_LABEL57:(void)0; +{ /* Inline kernel#Int#unary - (var64) on */ +var67 = -var64; +var65 = var67; +goto RET_LABEL66; +RET_LABEL66:(void)0; } } { -var59 = BOX_kernel__Int(var56); /* autobox from Int to nullable Object */ -hash_collection__HashMap___91d_93d_61d(var_all_unresolved_types_colors, var_t46, var59); /* Direct call hash_collection#HashMap#[]= on */ +var68 = BOX_kernel__Int(var65); /* autobox from Int to nullable Object */ +hash_collection__HashMap___91d_93d_61d(var_all_unresolved_types_colors, var_t55, var68); /* Direct call hash_collection#HashMap#[]= on */ } } -CONTINUE_label60: (void)0; { -((void (*)(val*))(var43->class->vft[COLOR_abstract_collection__Iterator__next]))(var43) /* next on */; +((void (*)(val*))(var_52->class->vft[COLOR_abstract_collection__Iterator__next]))(var_52) /* next on */; +} +} else { +goto BREAK_label69; +} +} +BREAK_label69: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_52) on */ +RET_LABEL70:(void)0; } } -BREAK_label60: (void)0; { separate_compiler__SeparateCompiler__compile_color_consts(self, var_all_unresolved_types_colors); /* Direct call separate_compiler#SeparateCompiler#compile_color_consts on */ } @@ -6720,146 +7175,172 @@ val* var /* : Map[MClassType, Array[nullable MType]] */; val* var_elements /* var elements: Map[MClassType, Set[MType]] */; val* var1 /* : HashMap[MClassType, Array[nullable MType]] */; val* var_tables /* var tables: HashMap[MClassType, Array[nullable MType]] */; +val* var_ /* var : Map[MClassType, Set[MType]] */; val* var2 /* : MapIterator[Object, nullable Object] */; -short int var3 /* : Bool */; -val* var4 /* : Object */; +val* var_3 /* var : MapIterator[MClassType, Set[MType]] */; +short int var4 /* : Bool */; +val* var5 /* : Object */; val* var_mclasstype /* var mclasstype: MClassType */; -val* var5 /* : nullable Object */; +val* var6 /* : nullable Object */; val* var_mtypes /* var mtypes: Set[MType] */; -val* var6 /* : Array[nullable MType] */; +val* var7 /* : Array[nullable MType] */; val* var_table /* var table: Array[nullable MType] */; -val* var7 /* : Iterator[nullable Object] */; -short int var8 /* : Bool */; -val* var9 /* : nullable Object */; +val* var_8 /* var : Set[MType] */; +val* var9 /* : Iterator[nullable Object] */; +val* var_10 /* var : Iterator[MType] */; +short int var11 /* : Bool */; +val* var12 /* : nullable Object */; val* var_mtype /* var mtype: MType */; -val* var10 /* : Map[MType, Int] */; -val* var12 /* : Map[MType, Int] */; -val* var13 /* : nullable Object */; -long var14 /* : Int */; +val* var13 /* : Map[MType, Int] */; +val* var15 /* : Map[MType, Int] */; +val* var16 /* : nullable Object */; +long var17 /* : Int */; long var_color /* var color: Int */; -long var15 /* : Int */; -short int var16 /* : Bool */; -short int var18 /* : Bool */; +long var18 /* : Int */; +long var20 /* : Int */; +short int var21 /* : Bool */; +short int var23 /* : Bool */; int cltype; int idtype; const char* var_class_name; -short int var19 /* : Bool */; -val* var20 /* : Range[Int] */; -long var21 /* : Int */; -val* var22 /* : Discrete */; -val* var23 /* : Discrete */; -val* var24 /* : Iterator[Discrete] */; -short int var25 /* : Bool */; -val* var26 /* : nullable Object */; -long var_i /* var i: Int */; +short int var24 /* : Bool */; +long var25 /* : Int */; long var27 /* : Int */; -val* var28 /* : null */; +long var_i /* var i: Int */; +long var_28 /* var : Int */; +short int var29 /* : Bool */; +short int var31 /* : Bool */; +int cltype32; +int idtype33; +const char* var_class_name34; +short int var35 /* : Bool */; +val* var36 /* : null */; +long var37 /* : Int */; +long var38 /* : Int */; var_elements = p0; var1 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassTypearray__Arraynullable_model__MType); { -hash_collection__HashMap__init(var1); /* Direct call hash_collection#HashMap#init on */ +((void (*)(val*))(var1->class->vft[COLOR_kernel__Object__init]))(var1) /* init on */; } var_tables = var1; +var_ = var_elements; { -var2 = ((val* (*)(val*))(var_elements->class->vft[COLOR_abstract_collection__MapRead__iterator]))(var_elements) /* iterator on */; +var2 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__MapRead__iterator]))(var_) /* iterator on */; } +var_3 = var2; for(;;) { { -var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__MapIterator__is_ok]))(var2) /* is_ok on */; +var4 = ((short int (*)(val*))(var_3->class->vft[COLOR_abstract_collection__MapIterator__is_ok]))(var_3) /* is_ok on */; } -if(!var3) break; +if (var4){ { -var4 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__MapIterator__key]))(var2) /* key on */; +var5 = ((val* (*)(val*))(var_3->class->vft[COLOR_abstract_collection__MapIterator__key]))(var_3) /* key on */; } -var_mclasstype = var4; +var_mclasstype = var5; { -var5 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__MapIterator__item]))(var2) /* item on */; +var6 = ((val* (*)(val*))(var_3->class->vft[COLOR_abstract_collection__MapIterator__item]))(var_3) /* item on */; } -var_mtypes = var5; -var6 = NEW_array__Array(&type_array__Arraynullable_model__MType); +var_mtypes = var6; +var7 = NEW_array__Array(&type_array__Arraynullable_model__MType); { -array__Array__init(var6); /* Direct call array#Array#init on */ +((void (*)(val*))(var7->class->vft[COLOR_kernel__Object__init]))(var7) /* init on */; } -var_table = var6; +var_table = var7; +var_8 = var_mtypes; { -var7 = ((val* (*)(val*))(var_mtypes->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_mtypes) /* iterator on */; +var9 = ((val* (*)(val*))(var_8->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_8) /* iterator on */; } +var_10 = var9; for(;;) { { -var8 = ((short int (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var7) /* is_ok on */; +var11 = ((short int (*)(val*))(var_10->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_10) /* is_ok on */; } -if(!var8) break; +if (var11){ { -var9 = ((val* (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__item]))(var7) /* item on */; +var12 = ((val* (*)(val*))(var_10->class->vft[COLOR_abstract_collection__Iterator__item]))(var_10) /* item on */; } -var_mtype = var9; +var_mtype = var12; { { /* Inline separate_compiler#SeparateCompiler#opentype_colors (self) on */ -var12 = self->attrs[COLOR_separate_compiler__SeparateCompiler___opentype_colors].val; /* _opentype_colors on */ -if (unlikely(var12 == NULL)) { +var15 = self->attrs[COLOR_separate_compiler__SeparateCompiler___opentype_colors].val; /* _opentype_colors on */ +if (unlikely(var15 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opentype_colors"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 160); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 161); show_backtrace(1); } -var10 = var12; -RET_LABEL11:(void)0; -} +var13 = var15; +RET_LABEL14:(void)0; +} } { -var13 = ((val* (*)(val*, val*))(var10->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var10, var_mtype) /* [] on */; +var16 = ((val* (*)(val*, val*))(var13->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var13, var_mtype) /* [] on */; } -var14 = ((struct instance_kernel__Int*)var13)->value; /* autounbox from nullable Object to Int */; -var_color = var14; +var17 = ((struct instance_kernel__Int*)var16)->value; /* autounbox from nullable Object to Int */; +var_color = var17; { -var15 = array__AbstractArrayRead__length(var_table); +{ /* Inline array#AbstractArrayRead#length (var_table) on */ +var20 = var_table->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ +var18 = var20; +RET_LABEL19:(void)0; +} } { -{ /* Inline kernel#Int#<= (var15,var_color) on */ +{ /* Inline kernel#Int#<= (var18,var_color) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var18 = 1; /* easy isa OTHER*/ -if (unlikely(!var18)) { +var23 = 1; /* easy isa OTHER*/ +if (unlikely(!var23)) { var_class_name = type_kernel__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 324); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370); show_backtrace(1); } -var19 = var15 <= var_color; -var16 = var19; -goto RET_LABEL17; -RET_LABEL17:(void)0; -} +var24 = var18 <= var_color; +var21 = var24; +goto RET_LABEL22; +RET_LABEL22:(void)0; } -if (var16){ -var20 = NEW_range__Range(&type_range__Rangekernel__Int); -{ -var21 = array__AbstractArrayRead__length(var_table); } +if (var21){ { -var22 = BOX_kernel__Int(var21); /* autobox from Int to Discrete */ -var23 = BOX_kernel__Int(var_color); /* autobox from Int to Discrete */ -range__Range__without_last(var20, var22, var23); /* Direct call range#Range#without_last on */ +{ /* Inline array#AbstractArrayRead#length (var_table) on */ +var27 = var_table->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ +var25 = var27; +RET_LABEL26:(void)0; } -{ -var24 = range__Range__iterator(var20); } +var_i = var25; +var_28 = var_color; for(;;) { { -var25 = ((short int (*)(val*))(var24->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var24) /* is_ok on */; +{ /* Inline kernel#Int#< (var_i,var_28) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var31 = 1; /* easy isa OTHER*/ +if (unlikely(!var31)) { +var_class_name34 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); +} +var35 = var_i < var_28; +var29 = var35; +goto RET_LABEL30; +RET_LABEL30:(void)0; } -if(!var25) break; -{ -var26 = ((val* (*)(val*))(var24->class->vft[COLOR_abstract_collection__Iterator__item]))(var24) /* item on */; } -var27 = ((struct instance_kernel__Int*)var26)->value; /* autounbox from nullable Object to Int */; -var_i = var27; -var28 = NULL; +if (var29){ +var36 = NULL; { -array__Array___91d_93d_61d(var_table, var_i, var28); /* Direct call array#Array#[]= on */ +array__Array___91d_93d_61d(var_table, var_i, var36); /* Direct call array#Array#[]= on */ } -CONTINUE_label: (void)0; +var37 = 1; { -((void (*)(val*))(var24->class->vft[COLOR_abstract_collection__Iterator__next]))(var24) /* next on */; +var38 = kernel__Int__successor(var_i, var37); +} +var_i = var38; +} else { +goto BREAK_label; } } BREAK_label: (void)0; @@ -6868,21 +7349,35 @@ BREAK_label: (void)0; { array__Array___91d_93d_61d(var_table, var_color, var_mtype); /* Direct call array#Array#[]= on */ } -CONTINUE_label29: (void)0; { -((void (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__next]))(var7) /* next on */; +((void (*)(val*))(var_10->class->vft[COLOR_abstract_collection__Iterator__next]))(var_10) /* next on */; +} +} else { +goto BREAK_label39; +} +} +BREAK_label39: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_10) on */ +RET_LABEL40:(void)0; } } -BREAK_label29: (void)0; { hash_collection__HashMap___91d_93d_61d(var_tables, var_mclasstype, var_table); /* Direct call hash_collection#HashMap#[]= on */ } -CONTINUE_label30: (void)0; { -((void (*)(val*))(var2->class->vft[COLOR_abstract_collection__MapIterator__next]))(var2) /* next on */; +((void (*)(val*))(var_3->class->vft[COLOR_abstract_collection__MapIterator__next]))(var_3) /* next on */; +} +} else { +goto BREAK_label41; +} +} +BREAK_label41: (void)0; +{ +{ /* Inline abstract_collection#MapIterator#finish (var_3) on */ +RET_LABEL42:(void)0; } } -BREAK_label30: (void)0; var = var_tables; goto RET_LABEL; RET_LABEL:; @@ -6905,50 +7400,54 @@ val* var2 /* : MModule */; val* var_old_module /* var old_module: MModule */; val* var4 /* : Array[MClassDef] */; val* var6 /* : Array[MClassDef] */; +val* var_ /* var : Array[MClassDef] */; val* var7 /* : ArrayIterator[nullable Object] */; -short int var8 /* : Bool */; -val* var9 /* : nullable Object */; +val* var_8 /* var : ArrayIterator[MClassDef] */; +short int var9 /* : Bool */; +val* var10 /* : nullable Object */; val* var_cd /* var cd: MClassDef */; -val* var10 /* : Array[MPropDef] */; -val* var12 /* : Array[MPropDef] */; -val* var13 /* : ArrayIterator[nullable Object] */; -short int var14 /* : Bool */; -val* var15 /* : nullable Object */; +val* var11 /* : Array[MPropDef] */; +val* var13 /* : Array[MPropDef] */; +val* var_14 /* var : Array[MPropDef] */; +val* var15 /* : ArrayIterator[nullable Object] */; +val* var_16 /* var : ArrayIterator[MPropDef] */; +short int var17 /* : Bool */; +val* var18 /* : nullable Object */; val* var_pd /* var pd: MPropDef */; -short int var16 /* : Bool */; +short int var19 /* : Bool */; int cltype; int idtype; -short int var17 /* : Bool */; -val* var18 /* : nullable RapidTypeAnalysis */; -val* var20 /* : nullable RapidTypeAnalysis */; +short int var20 /* : Bool */; +val* var21 /* : nullable RapidTypeAnalysis */; +val* var23 /* : nullable RapidTypeAnalysis */; val* var_rta /* var rta: nullable RapidTypeAnalysis */; -short int var21 /* : Bool */; -short int var22 /* : Bool */; -val* var23 /* : ModelBuilder */; -val* var25 /* : ModelBuilder */; -val* var26 /* : ToolContext */; -val* var28 /* : ToolContext */; -val* var29 /* : OptionBool */; -val* var31 /* : OptionBool */; -val* var32 /* : nullable Object */; -val* var34 /* : nullable Object */; -short int var35 /* : Bool */; -short int var_ /* var : Bool */; -val* var36 /* : null */; -short int var37 /* : Bool */; +short int var24 /* : Bool */; +short int var25 /* : Bool */; +val* var26 /* : ModelBuilder */; +val* var28 /* : ModelBuilder */; +val* var29 /* : ToolContext */; +val* var31 /* : ToolContext */; +val* var32 /* : OptionBool */; +val* var34 /* : OptionBool */; +val* var35 /* : nullable Object */; +val* var37 /* : nullable Object */; short int var38 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var40 /* : Bool */; +short int var_39 /* var : Bool */; +val* var40 /* : null */; short int var41 /* : Bool */; short int var42 /* : Bool */; -short int var_43 /* var : Bool */; -val* var44 /* : HashSet[MMethodDef] */; -val* var46 /* : HashSet[MMethodDef] */; -short int var47 /* : Bool */; -short int var48 /* : Bool */; -val* var49 /* : AbstractRuntimeFunction */; +val* var_other /* var other: nullable Object */; +short int var44 /* : Bool */; +short int var45 /* : Bool */; +short int var46 /* : Bool */; +short int var_47 /* var : Bool */; +val* var48 /* : HashSet[MMethodDef] */; +val* var50 /* : HashSet[MMethodDef] */; +short int var51 /* : Bool */; +short int var52 /* : Bool */; +val* var53 /* : AbstractRuntimeFunction */; val* var_r /* var r: AbstractRuntimeFunction */; -val* var50 /* : AbstractRuntimeFunction */; +val* var54 /* : AbstractRuntimeFunction */; val* var_r2 /* var r2: AbstractRuntimeFunction */; var_mmodule = p0; { @@ -6956,7 +7455,7 @@ var_mmodule = p0; var2 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 436); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463); show_backtrace(1); } var = var2; @@ -6975,88 +7474,80 @@ RET_LABEL3:(void)0; var6 = var_mmodule->attrs[COLOR_model__MModule___mclassdefs].val; /* _mclassdefs on */ if (unlikely(var6 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs"); -PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 141); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 139); show_backtrace(1); } var4 = var6; RET_LABEL5:(void)0; } } +var_ = var4; { -var7 = array__AbstractArrayRead__iterator(var4); +var7 = array__AbstractArrayRead__iterator(var_); } +var_8 = var7; for(;;) { { -var8 = array__ArrayIterator__is_ok(var7); +var9 = array__ArrayIterator__is_ok(var_8); } -if(!var8) break; +if (var9){ { -var9 = array__ArrayIterator__item(var7); +var10 = array__ArrayIterator__item(var_8); } -var_cd = var9; +var_cd = var10; { { /* Inline model#MClassDef#mpropdefs (var_cd) on */ -var12 = var_cd->attrs[COLOR_model__MClassDef___mpropdefs].val; /* _mpropdefs on */ -if (unlikely(var12 == NULL)) { +var13 = var_cd->attrs[COLOR_model__MClassDef___mpropdefs].val; /* _mpropdefs on */ +if (unlikely(var13 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs"); -PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 574); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 591); show_backtrace(1); } -var10 = var12; -RET_LABEL11:(void)0; +var11 = var13; +RET_LABEL12:(void)0; } } +var_14 = var11; { -var13 = array__AbstractArrayRead__iterator(var10); +var15 = array__AbstractArrayRead__iterator(var_14); } +var_16 = var15; for(;;) { { -var14 = array__ArrayIterator__is_ok(var13); +var17 = array__ArrayIterator__is_ok(var_16); } -if(!var14) break; +if (var17){ { -var15 = array__ArrayIterator__item(var13); +var18 = array__ArrayIterator__item(var_16); } -var_pd = var15; +var_pd = var18; /* isa MMethodDef */ cltype = type_model__MMethodDef.color; idtype = type_model__MMethodDef.id; if(cltype >= var_pd->type->table_size) { -var16 = 0; +var19 = 0; } else { -var16 = var_pd->type->type_table[cltype] == idtype; +var19 = var_pd->type->type_table[cltype] == idtype; } -var17 = !var16; -if (var17){ -goto CONTINUE_label; +var20 = !var19; +if (var20){ +goto BREAK_label; } else { } { { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on */ -var20 = self->attrs[COLOR_separate_compiler__SeparateCompiler___runtime_type_analysis].val; /* _runtime_type_analysis on */ -var18 = var20; -RET_LABEL19:(void)0; +var23 = self->attrs[COLOR_separate_compiler__SeparateCompiler___runtime_type_analysis].val; /* _runtime_type_analysis on */ +var21 = var23; +RET_LABEL22:(void)0; } } -var_rta = var18; +var_rta = var21; { { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on */ -var25 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ -if (unlikely(var25 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 443); -show_backtrace(1); -} -var23 = var25; -RET_LABEL24:(void)0; -} -} -{ -{ /* Inline modelbuilder#ModelBuilder#toolcontext (var23) on */ -var28 = var23->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ +var28 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ if (unlikely(var28 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); -PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 470); show_backtrace(1); } var26 = var28; @@ -7064,11 +7555,11 @@ RET_LABEL27:(void)0; } } { -{ /* Inline separate_compiler#ToolContext#opt_skip_dead_methods (var26) on */ -var31 = var26->attrs[COLOR_separate_compiler__ToolContext___opt_skip_dead_methods].val; /* _opt_skip_dead_methods on */ +{ /* Inline modelbuilder#ModelBuilder#toolcontext (var26) on */ +var31 = var26->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ if (unlikely(var31 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_skip_dead_methods"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 38); +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106); show_backtrace(1); } var29 = var31; @@ -7076,95 +7567,122 @@ RET_LABEL30:(void)0; } } { -{ /* Inline opts#Option#value (var29) on */ -var34 = var29->attrs[COLOR_opts__Option___value].val; /* _value on */ +{ /* Inline separate_compiler#ToolContext#opt_skip_dead_methods (var29) on */ +var34 = var29->attrs[COLOR_separate_compiler__ToolContext___opt_skip_dead_methods].val; /* _opt_skip_dead_methods on */ +if (unlikely(var34 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_skip_dead_methods"); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 38); +show_backtrace(1); +} var32 = var34; RET_LABEL33:(void)0; } } -var35 = ((struct instance_kernel__Bool*)var32)->value; /* autounbox from nullable Object to Bool */; -var_ = var35; -if (var35){ -var36 = NULL; +{ +{ /* Inline opts#Option#value (var32) on */ +var37 = var32->attrs[COLOR_opts__Option___value].val; /* _value on */ +var35 = var37; +RET_LABEL36:(void)0; +} +} +var38 = ((struct instance_kernel__Bool*)var35)->value; /* autounbox from nullable Object to Bool */; +var_39 = var38; +if (var38){ +var40 = NULL; if (var_rta == NULL) { -var37 = 0; /* is null */ +var41 = 0; /* is null */ } else { -var37 = 1; /* arg is null and recv is not */ +var41 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_rta,var36) on */ -var_other = var36; +{ /* Inline kernel#Object#!= (var_rta,var40) on */ +var_other = var40; { -var41 = ((short int (*)(val*, val*))(var_rta->class->vft[COLOR_kernel__Object___61d_61d]))(var_rta, var_other) /* == on */; -var40 = var41; +var45 = ((short int (*)(val*, val*))(var_rta->class->vft[COLOR_kernel__Object___61d_61d]))(var_rta, var_other) /* == on */; +var44 = var45; } -var42 = !var40; -var38 = var42; -goto RET_LABEL39; -RET_LABEL39:(void)0; +var46 = !var44; +var42 = var46; +goto RET_LABEL43; +RET_LABEL43:(void)0; } -var37 = var38; +var41 = var42; } -var22 = var37; +var25 = var41; } else { -var22 = var_; +var25 = var_39; } -var_43 = var22; -if (var22){ +var_47 = var25; +if (var25){ { { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (var_rta) on */ -var46 = var_rta->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_methoddefs].val; /* _live_methoddefs on */ -if (unlikely(var46 == NULL)) { +var50 = var_rta->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_methoddefs].val; /* _live_methoddefs on */ +if (unlikely(var50 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs"); -PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 74); +PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 72); show_backtrace(1); } -var44 = var46; -RET_LABEL45:(void)0; +var48 = var50; +RET_LABEL49:(void)0; } } { -var47 = hash_collection__HashSet__has(var44, var_pd); +var51 = hash_collection__HashSet__has(var48, var_pd); } -var48 = !var47; -var21 = var48; +var52 = !var51; +var24 = var52; } else { -var21 = var_43; +var24 = var_47; } -if (var21){ -goto CONTINUE_label; +if (var24){ +goto BREAK_label; } else { } { -var49 = separate_compiler__MMethodDef__separate_runtime_function(var_pd); +var53 = separate_compiler__MMethodDef__separate_runtime_function(var_pd); } -var_r = var49; +var_r = var53; { ((void (*)(val*, val*))(var_r->class->vft[COLOR_abstract_compiler__AbstractRuntimeFunction__compile_to_c]))(var_r, self) /* compile_to_c on */; } { -var50 = separate_compiler__MMethodDef__virtual_runtime_function(var_pd); +var54 = separate_compiler__MMethodDef__virtual_runtime_function(var_pd); } -var_r2 = var50; +var_r2 = var54; { ((void (*)(val*, val*))(var_r2->class->vft[COLOR_abstract_compiler__AbstractRuntimeFunction__compile_to_c]))(var_r2, self) /* compile_to_c on */; } -CONTINUE_label: (void)0; +BREAK_label: (void)0; +{ +array__ArrayIterator__next(var_16); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label55; +} +} +BREAK_label55: (void)0; { -array__ArrayIterator__next(var13); /* Direct call array#ArrayIterator#next on */ +{ /* Inline abstract_collection#Iterator#finish (var_16) on */ +RET_LABEL56:(void)0; } } -BREAK_label: (void)0; -CONTINUE_label51: (void)0; { -array__ArrayIterator__next(var7); /* Direct call array#ArrayIterator#next on */ +array__ArrayIterator__next(var_8); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label57; +} +} +BREAK_label57: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_8) on */ +RET_LABEL58:(void)0; } } -BREAK_label51: (void)0; { { /* Inline abstract_compiler#AbstractCompiler#mainmodule= (self,var_old_module) on */ self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val = var_old_module; /* _mainmodule on */ -RET_LABEL52:(void)0; +RET_LABEL59:(void)0; } } RET_LABEL:; @@ -7358,61 +7876,59 @@ val* var175 /* : Map[MType, Array[nullable MType]] */; val* var177 /* : Map[MType, Array[nullable MType]] */; val* var178 /* : nullable Object */; long var179 /* : Int */; -static val* varonce180; -val* var181 /* : String */; -char* var182 /* : NativeString */; -long var183 /* : Int */; -val* var184 /* : FlatString */; -val* var185 /* : Array[Object] */; -long var186 /* : Int */; -val* var187 /* : NativeArray[Object] */; -val* var188 /* : Object */; -val* var189 /* : String */; -static val* varonce190; +long var181 /* : Int */; +static val* varonce182; +val* var183 /* : String */; +char* var184 /* : NativeString */; +long var185 /* : Int */; +val* var186 /* : FlatString */; +val* var187 /* : Array[Object] */; +long var188 /* : Int */; +val* var189 /* : NativeArray[Object] */; +val* var190 /* : Object */; val* var191 /* : String */; -char* var192 /* : NativeString */; -long var193 /* : Int */; -val* var194 /* : FlatString */; -val* var195 /* : Map[MType, Array[nullable MType]] */; +static val* varonce192; +val* var193 /* : String */; +char* var194 /* : NativeString */; +long var195 /* : Int */; +val* var196 /* : FlatString */; val* var197 /* : Map[MType, Array[nullable MType]] */; -val* var198 /* : nullable Object */; -val* var199 /* : ArrayIterator[nullable Object] */; -short int var200 /* : Bool */; -val* var201 /* : nullable Object */; -val* var_stype /* var stype: nullable MType */; -val* var202 /* : null */; -short int var203 /* : Bool */; +val* var199 /* : Map[MType, Array[nullable MType]] */; +val* var200 /* : nullable Object */; +val* var_201 /* var : Array[nullable MType] */; +val* var202 /* : ArrayIterator[nullable Object] */; +val* var_203 /* var : ArrayIterator[nullable MType] */; short int var204 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var206 /* : Bool */; +val* var205 /* : nullable Object */; +val* var_stype /* var stype: nullable MType */; +val* var206 /* : null */; +short int var207 /* : Bool */; short int var208 /* : Bool */; -static val* varonce209; -val* var210 /* : String */; -char* var211 /* : NativeString */; -long var212 /* : Int */; -val* var213 /* : FlatString */; -val* var214 /* : Map[MType, Int] */; -val* var216 /* : Map[MType, Int] */; -val* var217 /* : nullable Object */; -static val* varonce218; -val* var219 /* : String */; -char* var220 /* : NativeString */; -long var221 /* : Int */; -val* var222 /* : FlatString */; -static val* varonce223; -val* var224 /* : String */; -char* var225 /* : NativeString */; -long var226 /* : Int */; -val* var227 /* : FlatString */; -val* var228 /* : Array[Object] */; -long var229 /* : Int */; -val* var230 /* : NativeArray[Object] */; -val* var231 /* : String */; -static val* varonce232; -val* var233 /* : String */; -char* var234 /* : NativeString */; -long var235 /* : Int */; -val* var236 /* : FlatString */; +val* var_other /* var other: nullable Object */; +short int var210 /* : Bool */; +short int var212 /* : Bool */; +static val* varonce213; +val* var214 /* : String */; +char* var215 /* : NativeString */; +long var216 /* : Int */; +val* var217 /* : FlatString */; +val* var218 /* : Map[MType, Int] */; +val* var220 /* : Map[MType, Int] */; +val* var221 /* : nullable Object */; +static val* varonce222; +val* var223 /* : String */; +char* var224 /* : NativeString */; +long var225 /* : Int */; +val* var226 /* : FlatString */; +static val* varonce227; +val* var228 /* : String */; +char* var229 /* : NativeString */; +long var230 /* : Int */; +val* var231 /* : FlatString */; +val* var232 /* : Array[Object] */; +long var233 /* : Int */; +val* var234 /* : NativeArray[Object] */; +val* var235 /* : String */; static val* varonce237; val* var238 /* : String */; char* var239 /* : NativeString */; @@ -7423,6 +7939,11 @@ val* var243 /* : String */; char* var244 /* : NativeString */; long var245 /* : Int */; val* var246 /* : FlatString */; +static val* varonce247; +val* var248 /* : String */; +char* var249 /* : NativeString */; +long var250 /* : Int */; +val* var251 /* : FlatString */; var_mtype = p0; { var = ((short int (*)(val*))(var_mtype->class->vft[COLOR_model__MType__need_anchor]))(var_mtype) /* need_anchor on */; @@ -7430,7 +7951,7 @@ var = ((short int (*)(val*))(var_mtype->class->vft[COLOR_model__MType__need_anch var1 = !var; if (unlikely(!var1)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 554); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 561); show_backtrace(1); } /* isa MClassType */ @@ -7452,19 +7973,19 @@ RET_LABEL5:(void)0; } if (var4 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 555); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 562); show_backtrace(1); } else { { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (var4) on */ if (unlikely(var4 == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 55); +PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 53); show_backtrace(1); } var9 = var4->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types].val; /* _live_types on */ if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types"); -PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 55); +PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 53); show_backtrace(1); } var7 = var9; @@ -7488,19 +8009,19 @@ RET_LABEL12:(void)0; } if (var11 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 556); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 563); show_backtrace(1); } else { { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_cast_types (var11) on */ if (unlikely(var11 == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 67); +PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 65); show_backtrace(1); } var16 = var11->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_cast_types].val; /* _live_cast_types on */ if (unlikely(var16 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types"); -PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 67); +PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 65); show_backtrace(1); } var14 = var16; @@ -7653,7 +8174,7 @@ if (var_is_cast_live){ var72 = self->attrs[COLOR_separate_compiler__SeparateCompiler___type_ids].val; /* _type_ids on */ if (unlikely(var72 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 158); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 159); show_backtrace(1); } var70 = var72; @@ -7743,7 +8264,7 @@ if (var_is_cast_live){ var104 = self->attrs[COLOR_separate_compiler__SeparateCompiler___type_colors].val; /* _type_colors on */ if (unlikely(var104 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_colors"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 159); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 160); show_backtrace(1); } var102 = var104; @@ -7842,7 +8363,7 @@ var134 = var_mclass_type->type->type_table[cltype135] == idtype136; } if (unlikely(!var134)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 594); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 601); show_backtrace(1); } { @@ -7850,7 +8371,7 @@ show_backtrace(1); var139 = self->attrs[COLOR_separate_compiler__SeparateCompiler___resolution_tables].val; /* _resolution_tables on */ if (unlikely(var139 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _resolution_tables"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 791); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 844); show_backtrace(1); } var137 = var139; @@ -7961,7 +8482,7 @@ if (var_is_live){ var177 = self->attrs[COLOR_separate_compiler__SeparateCompiler___type_tables].val; /* _type_tables on */ if (unlikely(var177 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_tables"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 790); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 843); show_backtrace(1); } var175 = var177; @@ -7972,186 +8493,186 @@ RET_LABEL176:(void)0; var178 = ((val* (*)(val*, val*))(var175->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var175, var_mtype) /* [] on */; } { -var179 = array__AbstractArrayRead__length(var178); +{ /* Inline array#AbstractArrayRead#length (var178) on */ +var181 = var178->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ +var179 = var181; +RET_LABEL180:(void)0; } -if (varonce180) { -var181 = varonce180; +} +if (varonce182) { +var183 = varonce182; } else { -var182 = ","; -var183 = 1; -var184 = string__NativeString__to_s_with_length(var182, var183); -var181 = var184; -varonce180 = var181; +var184 = ","; +var185 = 1; +var186 = string__NativeString__to_s_with_length(var184, var185); +var183 = var186; +varonce182 = var183; } -var185 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var185 = array_instance Array[Object] */ -var186 = 2; -var187 = NEW_array__NativeArray(var186, &type_array__NativeArraykernel__Object); -var188 = BOX_kernel__Int(var179); /* autobox from Int to Object */ -((struct instance_array__NativeArray*)var187)->values[0] = (val*) var188; -((struct instance_array__NativeArray*)var187)->values[1] = (val*) var181; +var187 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var187 = array_instance Array[Object] */ +var188 = 2; +var189 = NEW_array__NativeArray(var188, &type_array__NativeArraykernel__Object); +var190 = BOX_kernel__Int(var179); /* autobox from Int to Object */ +((struct instance_array__NativeArray*)var189)->values[0] = (val*) var190; +((struct instance_array__NativeArray*)var189)->values[1] = (val*) var183; { -((void (*)(val*, val*, long))(var185->class->vft[COLOR_array__Array__with_native]))(var185, var187, var186) /* with_native on */; +((void (*)(val*, val*, long))(var187->class->vft[COLOR_array__Array__with_native]))(var187, var189, var188) /* with_native on */; } } { -var189 = ((val* (*)(val*))(var185->class->vft[COLOR_string__Object__to_s]))(var185) /* to_s on */; +var191 = ((val* (*)(val*))(var187->class->vft[COLOR_string__Object__to_s]))(var187) /* to_s on */; } { -abstract_compiler__AbstractCompilerVisitor__add_decl(var_v, var189); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +abstract_compiler__AbstractCompilerVisitor__add_decl(var_v, var191); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } -if (varonce190) { -var191 = varonce190; +if (varonce192) { +var193 = varonce192; } else { -var192 = "{"; -var193 = 1; -var194 = string__NativeString__to_s_with_length(var192, var193); -var191 = var194; -varonce190 = var191; +var194 = "{"; +var195 = 1; +var196 = string__NativeString__to_s_with_length(var194, var195); +var193 = var196; +varonce192 = var193; } { -abstract_compiler__AbstractCompilerVisitor__add_decl(var_v, var191); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +abstract_compiler__AbstractCompilerVisitor__add_decl(var_v, var193); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } { { /* Inline separate_compiler#SeparateCompiler#type_tables (self) on */ -var197 = self->attrs[COLOR_separate_compiler__SeparateCompiler___type_tables].val; /* _type_tables on */ -if (unlikely(var197 == NULL)) { +var199 = self->attrs[COLOR_separate_compiler__SeparateCompiler___type_tables].val; /* _type_tables on */ +if (unlikely(var199 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_tables"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 790); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 843); show_backtrace(1); } -var195 = var197; -RET_LABEL196:(void)0; +var197 = var199; +RET_LABEL198:(void)0; } } { -var198 = ((val* (*)(val*, val*))(var195->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var195, var_mtype) /* [] on */; +var200 = ((val* (*)(val*, val*))(var197->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var197, var_mtype) /* [] on */; } +var_201 = var200; { -var199 = array__AbstractArrayRead__iterator(var198); +var202 = array__AbstractArrayRead__iterator(var_201); } +var_203 = var202; for(;;) { { -var200 = array__ArrayIterator__is_ok(var199); +var204 = array__ArrayIterator__is_ok(var_203); } -if(!var200) break; +if (var204){ { -var201 = array__ArrayIterator__item(var199); +var205 = array__ArrayIterator__item(var_203); } -var_stype = var201; -var202 = NULL; +var_stype = var205; +var206 = NULL; if (var_stype == NULL) { -var203 = 1; /* is null */ +var207 = 1; /* is null */ } else { -var203 = 0; /* arg is null but recv is not */ +var207 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_stype,var202) on */ -var_other = var202; +{ /* Inline kernel#Object#== (var_stype,var206) on */ +var_other = var206; { { /* Inline kernel#Object#is_same_instance (var_stype,var_other) on */ -var208 = var_stype == var_other; -var206 = var208; -goto RET_LABEL207; -RET_LABEL207:(void)0; +var212 = var_stype == var_other; +var210 = var212; +goto RET_LABEL211; +RET_LABEL211:(void)0; } } -var204 = var206; -goto RET_LABEL205; -RET_LABEL205:(void)0; +var208 = var210; +goto RET_LABEL209; +RET_LABEL209:(void)0; } -var203 = var204; +var207 = var208; } -if (var203){ -if (varonce209) { -var210 = varonce209; +if (var207){ +if (varonce213) { +var214 = varonce213; } else { -var211 = "-1, /* empty */"; -var212 = 15; -var213 = string__NativeString__to_s_with_length(var211, var212); -var210 = var213; -varonce209 = var210; +var215 = "-1, /* empty */"; +var216 = 15; +var217 = string__NativeString__to_s_with_length(var215, var216); +var214 = var217; +varonce213 = var214; } { -abstract_compiler__AbstractCompilerVisitor__add_decl(var_v, var210); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +abstract_compiler__AbstractCompilerVisitor__add_decl(var_v, var214); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } } else { { { /* Inline separate_compiler#SeparateCompiler#type_ids (self) on */ -var216 = self->attrs[COLOR_separate_compiler__SeparateCompiler___type_ids].val; /* _type_ids on */ -if (unlikely(var216 == NULL)) { +var220 = self->attrs[COLOR_separate_compiler__SeparateCompiler___type_ids].val; /* _type_ids on */ +if (unlikely(var220 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 158); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 159); show_backtrace(1); } -var214 = var216; -RET_LABEL215:(void)0; +var218 = var220; +RET_LABEL219:(void)0; } } { -var217 = ((val* (*)(val*, val*))(var214->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var214, var_stype) /* [] on */; +var221 = ((val* (*)(val*, val*))(var218->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var218, var_stype) /* [] on */; } -if (varonce218) { -var219 = varonce218; +if (varonce222) { +var223 = varonce222; } else { -var220 = ", /* "; -var221 = 5; -var222 = string__NativeString__to_s_with_length(var220, var221); -var219 = var222; -varonce218 = var219; +var224 = ", /* "; +var225 = 5; +var226 = string__NativeString__to_s_with_length(var224, var225); +var223 = var226; +varonce222 = var223; } -if (varonce223) { -var224 = varonce223; +if (varonce227) { +var228 = varonce227; } else { -var225 = " */"; -var226 = 3; -var227 = string__NativeString__to_s_with_length(var225, var226); -var224 = var227; -varonce223 = var224; +var229 = " */"; +var230 = 3; +var231 = string__NativeString__to_s_with_length(var229, var230); +var228 = var231; +varonce227 = var228; } -var228 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var228 = array_instance Array[Object] */ -var229 = 4; -var230 = NEW_array__NativeArray(var229, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var230)->values[0] = (val*) var217; -((struct instance_array__NativeArray*)var230)->values[1] = (val*) var219; -((struct instance_array__NativeArray*)var230)->values[2] = (val*) var_stype; -((struct instance_array__NativeArray*)var230)->values[3] = (val*) var224; +var232 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var232 = array_instance Array[Object] */ +var233 = 4; +var234 = NEW_array__NativeArray(var233, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var234)->values[0] = (val*) var221; +((struct instance_array__NativeArray*)var234)->values[1] = (val*) var223; +((struct instance_array__NativeArray*)var234)->values[2] = (val*) var_stype; +((struct instance_array__NativeArray*)var234)->values[3] = (val*) var228; { -((void (*)(val*, val*, long))(var228->class->vft[COLOR_array__Array__with_native]))(var228, var230, var229) /* with_native on */; +((void (*)(val*, val*, long))(var232->class->vft[COLOR_array__Array__with_native]))(var232, var234, var233) /* with_native on */; } } { -var231 = ((val* (*)(val*))(var228->class->vft[COLOR_string__Object__to_s]))(var228) /* to_s on */; +var235 = ((val* (*)(val*))(var232->class->vft[COLOR_string__Object__to_s]))(var232) /* to_s on */; } { -abstract_compiler__AbstractCompilerVisitor__add_decl(var_v, var231); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +abstract_compiler__AbstractCompilerVisitor__add_decl(var_v, var235); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } } -CONTINUE_label: (void)0; { -array__ArrayIterator__next(var199); /* Direct call array#ArrayIterator#next on */ +array__ArrayIterator__next(var_203); /* Direct call array#ArrayIterator#next on */ } -} -BREAK_label: (void)0; -if (varonce232) { -var233 = varonce232; } else { -var234 = "},"; -var235 = 2; -var236 = string__NativeString__to_s_with_length(var234, var235); -var233 = var236; -varonce232 = var233; +goto BREAK_label; } +} +BREAK_label: (void)0; { -abstract_compiler__AbstractCompilerVisitor__add_decl(var_v, var233); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +{ /* Inline abstract_collection#Iterator#finish (var_203) on */ +RET_LABEL236:(void)0; +} } -} else { if (varonce237) { var238 = varonce237; } else { -var239 = "0, {}, /*DEAD TYPE*/"; -var240 = 20; +var239 = "},"; +var240 = 2; var241 = string__NativeString__to_s_with_length(var239, var240); var238 = var241; varonce237 = var238; @@ -8159,12 +8680,12 @@ varonce237 = var238; { abstract_compiler__AbstractCompilerVisitor__add_decl(var_v, var238); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } -} +} else { if (varonce242) { var243 = varonce242; } else { -var244 = "};"; -var245 = 2; +var244 = "0, {}, /*DEAD TYPE*/"; +var245 = 20; var246 = string__NativeString__to_s_with_length(var244, var245); var243 = var246; varonce242 = var243; @@ -8172,6 +8693,19 @@ varonce242 = var243; { abstract_compiler__AbstractCompilerVisitor__add_decl(var_v, var243); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } +} +if (varonce247) { +var248 = varonce247; +} else { +var249 = "};"; +var250 = 2; +var251 = string__NativeString__to_s_with_length(var249, var250); +var248 = var251; +varonce247 = var248; +} +{ +abstract_compiler__AbstractCompilerVisitor__add_decl(var_v, var248); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +} RET_LABEL:; } /* method separate_compiler#SeparateCompiler#compile_type_to_c for (self: Object, MType) */ @@ -8243,93 +8777,95 @@ val* var51 /* : FlatString */; val* var52 /* : Map[MClassType, Array[nullable MType]] */; val* var54 /* : Map[MClassType, Array[nullable MType]] */; val* var55 /* : nullable Object */; +val* var_ /* var : Array[nullable MType] */; val* var56 /* : ArrayIterator[nullable Object] */; -short int var57 /* : Bool */; -val* var58 /* : nullable Object */; +val* var_57 /* var : ArrayIterator[nullable MType] */; +short int var58 /* : Bool */; +val* var59 /* : nullable Object */; val* var_t /* var t: nullable MType */; -val* var59 /* : null */; -short int var60 /* : Bool */; +val* var60 /* : null */; short int var61 /* : Bool */; +short int var62 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var63 /* : Bool */; -short int var65 /* : Bool */; -static val* varonce66; -val* var67 /* : String */; -char* var68 /* : NativeString */; -long var69 /* : Int */; -val* var70 /* : FlatString */; -val* var71 /* : MModule */; -val* var73 /* : MModule */; -short int var74 /* : Bool */; -val* var75 /* : MType */; +short int var64 /* : Bool */; +short int var66 /* : Bool */; +static val* varonce67; +val* var68 /* : String */; +char* var69 /* : NativeString */; +long var70 /* : Int */; +val* var71 /* : FlatString */; +val* var72 /* : MModule */; +val* var74 /* : MModule */; +short int var75 /* : Bool */; +val* var76 /* : MType */; val* var_tv /* var tv: MType */; -val* var76 /* : Map[MType, Int] */; -val* var78 /* : Map[MType, Int] */; -short int var79 /* : Bool */; -static val* varonce80; -val* var81 /* : String */; -char* var82 /* : NativeString */; -long var83 /* : Int */; -val* var84 /* : FlatString */; -val* var85 /* : String */; -val* var86 /* : Array[Object] */; -long var87 /* : Int */; -val* var88 /* : NativeArray[Object] */; -val* var89 /* : String */; -static val* varonce90; -val* var91 /* : String */; -char* var92 /* : NativeString */; -long var93 /* : Int */; -val* var94 /* : FlatString */; -val* var95 /* : String */; -static val* varonce96; -val* var97 /* : String */; -char* var98 /* : NativeString */; -long var99 /* : Int */; -val* var100 /* : FlatString */; -static val* varonce101; -val* var102 /* : String */; -char* var103 /* : NativeString */; -long var104 /* : Int */; -val* var105 /* : FlatString */; -static val* varonce106; -val* var107 /* : String */; -char* var108 /* : NativeString */; -long var109 /* : Int */; -val* var110 /* : FlatString */; -val* var111 /* : Array[Object] */; -long var112 /* : Int */; -val* var113 /* : NativeArray[Object] */; -val* var114 /* : String */; -static val* varonce115; -val* var116 /* : String */; -char* var117 /* : NativeString */; -long var118 /* : Int */; -val* var119 /* : FlatString */; -static val* varonce120; -val* var121 /* : String */; -char* var122 /* : NativeString */; -long var123 /* : Int */; -val* var124 /* : FlatString */; -static val* varonce125; -val* var126 /* : String */; -char* var127 /* : NativeString */; -long var128 /* : Int */; -val* var129 /* : FlatString */; -val* var130 /* : Array[Object] */; -long var131 /* : Int */; -val* var132 /* : NativeArray[Object] */; -val* var133 /* : String */; -static val* varonce134; -val* var135 /* : String */; -char* var136 /* : NativeString */; -long var137 /* : Int */; -val* var138 /* : FlatString */; -static val* varonce139; -val* var140 /* : String */; -char* var141 /* : NativeString */; -long var142 /* : Int */; -val* var143 /* : FlatString */; +val* var77 /* : Map[MType, Int] */; +val* var79 /* : Map[MType, Int] */; +short int var80 /* : Bool */; +static val* varonce81; +val* var82 /* : String */; +char* var83 /* : NativeString */; +long var84 /* : Int */; +val* var85 /* : FlatString */; +val* var86 /* : String */; +val* var87 /* : Array[Object] */; +long var88 /* : Int */; +val* var89 /* : NativeArray[Object] */; +val* var90 /* : String */; +static val* varonce91; +val* var92 /* : String */; +char* var93 /* : NativeString */; +long var94 /* : Int */; +val* var95 /* : FlatString */; +val* var96 /* : String */; +static val* varonce97; +val* var98 /* : String */; +char* var99 /* : NativeString */; +long var100 /* : Int */; +val* var101 /* : FlatString */; +static val* varonce102; +val* var103 /* : String */; +char* var104 /* : NativeString */; +long var105 /* : Int */; +val* var106 /* : FlatString */; +static val* varonce107; +val* var108 /* : String */; +char* var109 /* : NativeString */; +long var110 /* : Int */; +val* var111 /* : FlatString */; +val* var112 /* : Array[Object] */; +long var113 /* : Int */; +val* var114 /* : NativeArray[Object] */; +val* var115 /* : String */; +static val* varonce116; +val* var117 /* : String */; +char* var118 /* : NativeString */; +long var119 /* : Int */; +val* var120 /* : FlatString */; +static val* varonce121; +val* var122 /* : String */; +char* var123 /* : NativeString */; +long var124 /* : Int */; +val* var125 /* : FlatString */; +static val* varonce126; +val* var127 /* : String */; +char* var128 /* : NativeString */; +long var129 /* : Int */; +val* var130 /* : FlatString */; +val* var131 /* : Array[Object] */; +long var132 /* : Int */; +val* var133 /* : NativeArray[Object] */; +val* var134 /* : String */; +static val* varonce136; +val* var137 /* : String */; +char* var138 /* : NativeString */; +long var139 /* : Int */; +val* var140 /* : FlatString */; +static val* varonce141; +val* var142 /* : String */; +char* var143 /* : NativeString */; +long var144 /* : Int */; +val* var145 /* : FlatString */; var_mtype = p0; { var = ((val* (*)(val*))(var_mtype->class->vft[COLOR_model__MType__as_notnullable]))(var_mtype) /* as_notnullable on */; @@ -8345,7 +8881,7 @@ var1 = var->type->type_table[cltype] == idtype; if (unlikely(!var1)) { var_class_name = var == NULL ? "null" : var->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 626); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 633); show_backtrace(1); } var_mclass_type = var; @@ -8483,7 +9019,7 @@ abstract_compiler__AbstractCompilerVisitor__add_decl(var_v, var48); /* Direct ca var54 = self->attrs[COLOR_separate_compiler__SeparateCompiler___resolution_tables].val; /* _resolution_tables on */ if (unlikely(var54 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _resolution_tables"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 791); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 844); show_backtrace(1); } var52 = var54; @@ -8493,254 +9029,263 @@ RET_LABEL53:(void)0; { var55 = ((val* (*)(val*, val*))(var52->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var52, var_mclass_type) /* [] on */; } +var_ = var55; { -var56 = array__AbstractArrayRead__iterator(var55); +var56 = array__AbstractArrayRead__iterator(var_); } +var_57 = var56; for(;;) { { -var57 = array__ArrayIterator__is_ok(var56); +var58 = array__ArrayIterator__is_ok(var_57); } -if(!var57) break; +if (var58){ { -var58 = array__ArrayIterator__item(var56); +var59 = array__ArrayIterator__item(var_57); } -var_t = var58; -var59 = NULL; +var_t = var59; +var60 = NULL; if (var_t == NULL) { -var60 = 1; /* is null */ +var61 = 1; /* is null */ } else { -var60 = 0; /* arg is null but recv is not */ +var61 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_t,var59) on */ -var_other = var59; +{ /* Inline kernel#Object#== (var_t,var60) on */ +var_other = var60; { { /* Inline kernel#Object#is_same_instance (var_t,var_other) on */ -var65 = var_t == var_other; -var63 = var65; -goto RET_LABEL64; -RET_LABEL64:(void)0; +var66 = var_t == var_other; +var64 = var66; +goto RET_LABEL65; +RET_LABEL65:(void)0; } } -var61 = var63; -goto RET_LABEL62; -RET_LABEL62:(void)0; +var62 = var64; +goto RET_LABEL63; +RET_LABEL63:(void)0; } -var60 = var61; +var61 = var62; } -if (var60){ -if (varonce66) { -var67 = varonce66; +if (var61){ +if (varonce67) { +var68 = varonce67; } else { -var68 = "NULL, /* empty */"; -var69 = 17; -var70 = string__NativeString__to_s_with_length(var68, var69); -var67 = var70; -varonce66 = var67; +var69 = "NULL, /* empty */"; +var70 = 17; +var71 = string__NativeString__to_s_with_length(var69, var70); +var68 = var71; +varonce67 = var68; } { -abstract_compiler__AbstractCompilerVisitor__add_decl(var_v, var67); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +abstract_compiler__AbstractCompilerVisitor__add_decl(var_v, var68); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } } else { { { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on */ -var73 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ -if (unlikely(var73 == NULL)) { +var74 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ +if (unlikely(var74 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 436); +PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463); show_backtrace(1); } -var71 = var73; -RET_LABEL72:(void)0; +var72 = var74; +RET_LABEL73:(void)0; } } -var74 = 1; +var75 = 1; { -var75 = ((val* (*)(val*, val*, val*, val*, short int))(var_t->class->vft[COLOR_model__MType__resolve_for]))(var_t, var_mclass_type, var_mclass_type, var71, var74) /* resolve_for on */; +var76 = ((val* (*)(val*, val*, val*, val*, short int))(var_t->class->vft[COLOR_model__MType__resolve_for]))(var_t, var_mclass_type, var_mclass_type, var72, var75) /* resolve_for on */; } -var_tv = var75; +var_tv = var76; { { /* Inline separate_compiler#SeparateCompiler#type_ids (self) on */ -var78 = self->attrs[COLOR_separate_compiler__SeparateCompiler___type_ids].val; /* _type_ids on */ -if (unlikely(var78 == NULL)) { +var79 = self->attrs[COLOR_separate_compiler__SeparateCompiler___type_ids].val; /* _type_ids on */ +if (unlikely(var79 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids"); -PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 158); +PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 159); show_backtrace(1); } -var76 = var78; -RET_LABEL77:(void)0; +var77 = var79; +RET_LABEL78:(void)0; } } { -var79 = abstract_collection__MapRead__has_key(var76, var_tv); +var80 = abstract_collection__MapRead__has_key(var77, var_tv); } -if (var79){ -if (varonce80) { -var81 = varonce80; +if (var80){ +if (varonce81) { +var82 = varonce81; } else { -var82 = "type_"; -var83 = 5; -var84 = string__NativeString__to_s_with_length(var82, var83); -var81 = var84; -varonce80 = var81; +var83 = "type_"; +var84 = 5; +var85 = string__NativeString__to_s_with_length(var83, var84); +var82 = var85; +varonce81 = var82; } { -var85 = ((val* (*)(val*))(var_tv->class->vft[COLOR_abstract_compiler__MType__c_name]))(var_tv) /* c_name on */; +var86 = ((val* (*)(val*))(var_tv->class->vft[COLOR_abstract_compiler__MType__c_name]))(var_tv) /* c_name on */; } -var86 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var86 = array_instance Array[Object] */ -var87 = 2; -var88 = NEW_array__NativeArray(var87, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var88)->values[0] = (val*) var81; -((struct instance_array__NativeArray*)var88)->values[1] = (val*) var85; +var87 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var87 = array_instance Array[Object] */ +var88 = 2; +var89 = NEW_array__NativeArray(var88, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var89)->values[0] = (val*) var82; +((struct instance_array__NativeArray*)var89)->values[1] = (val*) var86; { -((void (*)(val*, val*, long))(var86->class->vft[COLOR_array__Array__with_native]))(var86, var88, var87) /* with_native on */; +((void (*)(val*, val*, long))(var87->class->vft[COLOR_array__Array__with_native]))(var87, var89, var88) /* with_native on */; } } { -var89 = ((val* (*)(val*))(var86->class->vft[COLOR_string__Object__to_s]))(var86) /* to_s on */; +var90 = ((val* (*)(val*))(var87->class->vft[COLOR_string__Object__to_s]))(var87) /* to_s on */; } { -abstract_compiler__AbstractCompilerVisitor__require_declaration(var_v, var89); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ +abstract_compiler__AbstractCompilerVisitor__require_declaration(var_v, var90); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ } -if (varonce90) { -var91 = varonce90; +if (varonce91) { +var92 = varonce91; } else { -var92 = "&type_"; -var93 = 6; -var94 = string__NativeString__to_s_with_length(var92, var93); -var91 = var94; -varonce90 = var91; +var93 = "&type_"; +var94 = 6; +var95 = string__NativeString__to_s_with_length(var93, var94); +var92 = var95; +varonce91 = var92; } { -var95 = ((val* (*)(val*))(var_tv->class->vft[COLOR_abstract_compiler__MType__c_name]))(var_tv) /* c_name on */; +var96 = ((val* (*)(val*))(var_tv->class->vft[COLOR_abstract_compiler__MType__c_name]))(var_tv) /* c_name on */; } -if (varonce96) { -var97 = varonce96; +if (varonce97) { +var98 = varonce97; } else { -var98 = ", /* "; -var99 = 5; -var100 = string__NativeString__to_s_with_length(var98, var99); -var97 = var100; -varonce96 = var97; +var99 = ", /* "; +var100 = 5; +var101 = string__NativeString__to_s_with_length(var99, var100); +var98 = var101; +varonce97 = var98; } -if (varonce101) { -var102 = varonce101; +if (varonce102) { +var103 = varonce102; } else { -var103 = ": "; -var104 = 2; -var105 = string__NativeString__to_s_with_length(var103, var104); -var102 = var105; -varonce101 = var102; +var104 = ": "; +var105 = 2; +var106 = string__NativeString__to_s_with_length(var104, var105); +var103 = var106; +varonce102 = var103; } -if (varonce106) { -var107 = varonce106; +if (varonce107) { +var108 = varonce107; } else { -var108 = " */"; -var109 = 3; -var110 = string__NativeString__to_s_with_length(var108, var109); -var107 = var110; -varonce106 = var107; +var109 = " */"; +var110 = 3; +var111 = string__NativeString__to_s_with_length(var109, var110); +var108 = var111; +varonce107 = var108; } -var111 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var111 = array_instance Array[Object] */ -var112 = 7; -var113 = NEW_array__NativeArray(var112, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var113)->values[0] = (val*) var91; -((struct instance_array__NativeArray*)var113)->values[1] = (val*) var95; -((struct instance_array__NativeArray*)var113)->values[2] = (val*) var97; -((struct instance_array__NativeArray*)var113)->values[3] = (val*) var_t; -((struct instance_array__NativeArray*)var113)->values[4] = (val*) var102; -((struct instance_array__NativeArray*)var113)->values[5] = (val*) var_tv; -((struct instance_array__NativeArray*)var113)->values[6] = (val*) var107; +var112 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var112 = array_instance Array[Object] */ +var113 = 7; +var114 = NEW_array__NativeArray(var113, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var114)->values[0] = (val*) var92; +((struct instance_array__NativeArray*)var114)->values[1] = (val*) var96; +((struct instance_array__NativeArray*)var114)->values[2] = (val*) var98; +((struct instance_array__NativeArray*)var114)->values[3] = (val*) var_t; +((struct instance_array__NativeArray*)var114)->values[4] = (val*) var103; +((struct instance_array__NativeArray*)var114)->values[5] = (val*) var_tv; +((struct instance_array__NativeArray*)var114)->values[6] = (val*) var108; { -((void (*)(val*, val*, long))(var111->class->vft[COLOR_array__Array__with_native]))(var111, var113, var112) /* with_native on */; +((void (*)(val*, val*, long))(var112->class->vft[COLOR_array__Array__with_native]))(var112, var114, var113) /* with_native on */; } } { -var114 = ((val* (*)(val*))(var111->class->vft[COLOR_string__Object__to_s]))(var111) /* to_s on */; +var115 = ((val* (*)(val*))(var112->class->vft[COLOR_string__Object__to_s]))(var112) /* to_s on */; } { -abstract_compiler__AbstractCompilerVisitor__add_decl(var_v, var114); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +abstract_compiler__AbstractCompilerVisitor__add_decl(var_v, var115); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } } else { -if (varonce115) { -var116 = varonce115; +if (varonce116) { +var117 = varonce116; } else { -var117 = "NULL, /* empty ("; -var118 = 16; -var119 = string__NativeString__to_s_with_length(var117, var118); -var116 = var119; -varonce115 = var116; +var118 = "NULL, /* empty ("; +var119 = 16; +var120 = string__NativeString__to_s_with_length(var118, var119); +var117 = var120; +varonce116 = var117; } -if (varonce120) { -var121 = varonce120; +if (varonce121) { +var122 = varonce121; } else { -var122 = ": "; -var123 = 2; -var124 = string__NativeString__to_s_with_length(var122, var123); -var121 = var124; -varonce120 = var121; +var123 = ": "; +var124 = 2; +var125 = string__NativeString__to_s_with_length(var123, var124); +var122 = var125; +varonce121 = var122; } -if (varonce125) { -var126 = varonce125; +if (varonce126) { +var127 = varonce126; } else { -var127 = " not a live type) */"; -var128 = 20; -var129 = string__NativeString__to_s_with_length(var127, var128); -var126 = var129; -varonce125 = var126; +var128 = " not a live type) */"; +var129 = 20; +var130 = string__NativeString__to_s_with_length(var128, var129); +var127 = var130; +varonce126 = var127; } -var130 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var130 = array_instance Array[Object] */ -var131 = 5; -var132 = NEW_array__NativeArray(var131, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var132)->values[0] = (val*) var116; -((struct instance_array__NativeArray*)var132)->values[1] = (val*) var_t; -((struct instance_array__NativeArray*)var132)->values[2] = (val*) var121; -((struct instance_array__NativeArray*)var132)->values[3] = (val*) var_tv; -((struct instance_array__NativeArray*)var132)->values[4] = (val*) var126; +var131 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var131 = array_instance Array[Object] */ +var132 = 5; +var133 = NEW_array__NativeArray(var132, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var133)->values[0] = (val*) var117; +((struct instance_array__NativeArray*)var133)->values[1] = (val*) var_t; +((struct instance_array__NativeArray*)var133)->values[2] = (val*) var122; +((struct instance_array__NativeArray*)var133)->values[3] = (val*) var_tv; +((struct instance_array__NativeArray*)var133)->values[4] = (val*) var127; { -((void (*)(val*, val*, long))(var130->class->vft[COLOR_array__Array__with_native]))(var130, var132, var131) /* with_native on */; +((void (*)(val*, val*, long))(var131->class->vft[COLOR_array__Array__with_native]))(var131, var133, var132) /* with_native on */; } } { -var133 = ((val* (*)(val*))(var130->class->vft[COLOR_string__Object__to_s]))(var130) /* to_s on */; +var134 = ((val* (*)(val*))(var131->class->vft[COLOR_string__Object__to_s]))(var131) /* to_s on */; } { -abstract_compiler__AbstractCompilerVisitor__add_decl(var_v, var133); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +abstract_compiler__AbstractCompilerVisitor__add_decl(var_v, var134); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } } } -CONTINUE_label: (void)0; { -array__ArrayIterator__next(var56); /* Direct call array#ArrayIterator#next on */ +array__ArrayIterator__next(var_57); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; -if (varonce134) { -var135 = varonce134; +{ +{ /* Inline abstract_collection#Iterator#finish (var_57) on */ +RET_LABEL135:(void)0; +} +} +if (varonce136) { +var137 = varonce136; } else { -var136 = "}"; -var137 = 1; -var138 = string__NativeString__to_s_with_length(var136, var137); -var135 = var138; -varonce134 = var135; +var138 = "}"; +var139 = 1; +var140 = string__NativeString__to_s_with_length(var138, var139); +var137 = var140; +varonce136 = var137; } { -abstract_compiler__AbstractCompilerVisitor__add_decl(var_v, var135); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +abstract_compiler__AbstractCompilerVisitor__add_decl(var_v, var137); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } -if (varonce139) { -var140 = varonce139; +if (varonce141) { +var142 = varonce141; } else { -var141 = "};"; -var142 = 2; -var143 = string__NativeString__to_s_with_length(var141, var142); -var140 = var143; -varonce139 = var140; +var143 = "};"; +var144 = 2; +var145 = string__NativeString__to_s_with_length(var143, var144); +var142 = var145; +varonce141 = var142; } { -abstract_compiler__AbstractCompilerVisitor__add_decl(var_v, var140); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +abstract_compiler__AbstractCompilerVisitor__add_decl(var_v, var142); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } RET_LABEL:; }