X-Git-Url: http://nitlanguage.org diff --git a/c_src/modelbuilder.sep.1.c b/c_src/modelbuilder.sep.1.c index 5d76261..67ba3ca 100644 --- a/c_src/modelbuilder.sep.1.c +++ b/c_src/modelbuilder.sep.1.c @@ -3,10 +3,10 @@ val* modelbuilder__ToolContext__opt_path(val* self) { val* var /* : OptionArray */; val* var1 /* : OptionArray */; -var1 = self->attrs[COLOR_modelbuilder__ToolContext___64dopt_path].val; /* @opt_path on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @opt_path"); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 37); +var1 = self->attrs[COLOR_modelbuilder__ToolContext___opt_path].val; /* _opt_path on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_path"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 37); show_backtrace(1); } var = var1; @@ -17,29 +17,29 @@ return var; val* VIRTUAL_modelbuilder__ToolContext__opt_path(val* self) { val* var /* : OptionArray */; val* var1 /* : OptionArray */; -var1 = modelbuilder__ToolContext__opt_path(self); -var = var1; -RET_LABEL:; -return var; +val* var3 /* : OptionArray */; +{ /* Inline modelbuilder#ToolContext#opt_path (self) on */ +var3 = self->attrs[COLOR_modelbuilder__ToolContext___opt_path].val; /* _opt_path on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_path"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 37); +show_backtrace(1); } -/* method modelbuilder#ToolContext#opt_path= for (self: ToolContext, OptionArray) */ -void modelbuilder__ToolContext__opt_path_61d(val* self, val* p0) { -self->attrs[COLOR_modelbuilder__ToolContext___64dopt_path].val = p0; /* @opt_path on */ -RET_LABEL:; +var1 = var3; +RET_LABEL2:(void)0; } -/* method modelbuilder#ToolContext#opt_path= for (self: Object, OptionArray) */ -void VIRTUAL_modelbuilder__ToolContext__opt_path_61d(val* self, val* p0) { -modelbuilder__ToolContext__opt_path_61d(self, p0); +var = var1; RET_LABEL:; +return var; } /* method modelbuilder#ToolContext#opt_only_metamodel for (self: ToolContext): OptionBool */ val* modelbuilder__ToolContext__opt_only_metamodel(val* self) { val* var /* : OptionBool */; val* var1 /* : OptionBool */; -var1 = self->attrs[COLOR_modelbuilder__ToolContext___64dopt_only_metamodel].val; /* @opt_only_metamodel on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @opt_only_metamodel"); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 40); +var1 = self->attrs[COLOR_modelbuilder__ToolContext___opt_only_metamodel].val; /* _opt_only_metamodel on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_only_metamodel"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 40); show_backtrace(1); } var = var1; @@ -50,29 +50,29 @@ return var; val* VIRTUAL_modelbuilder__ToolContext__opt_only_metamodel(val* self) { val* var /* : OptionBool */; val* var1 /* : OptionBool */; -var1 = modelbuilder__ToolContext__opt_only_metamodel(self); -var = var1; -RET_LABEL:; -return var; +val* var3 /* : OptionBool */; +{ /* Inline modelbuilder#ToolContext#opt_only_metamodel (self) on */ +var3 = self->attrs[COLOR_modelbuilder__ToolContext___opt_only_metamodel].val; /* _opt_only_metamodel on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_only_metamodel"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 40); +show_backtrace(1); } -/* method modelbuilder#ToolContext#opt_only_metamodel= for (self: ToolContext, OptionBool) */ -void modelbuilder__ToolContext__opt_only_metamodel_61d(val* self, val* p0) { -self->attrs[COLOR_modelbuilder__ToolContext___64dopt_only_metamodel].val = p0; /* @opt_only_metamodel on */ -RET_LABEL:; +var1 = var3; +RET_LABEL2:(void)0; } -/* method modelbuilder#ToolContext#opt_only_metamodel= for (self: Object, OptionBool) */ -void VIRTUAL_modelbuilder__ToolContext__opt_only_metamodel_61d(val* self, val* p0) { -modelbuilder__ToolContext__opt_only_metamodel_61d(self, p0); +var = var1; RET_LABEL:; +return var; } /* method modelbuilder#ToolContext#opt_only_parse for (self: ToolContext): OptionBool */ val* modelbuilder__ToolContext__opt_only_parse(val* self) { val* var /* : OptionBool */; val* var1 /* : OptionBool */; -var1 = self->attrs[COLOR_modelbuilder__ToolContext___64dopt_only_parse].val; /* @opt_only_parse on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @opt_only_parse"); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 43); +var1 = self->attrs[COLOR_modelbuilder__ToolContext___opt_only_parse].val; /* _opt_only_parse on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_only_parse"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 43); show_backtrace(1); } var = var1; @@ -83,60 +83,169 @@ return var; val* VIRTUAL_modelbuilder__ToolContext__opt_only_parse(val* self) { val* var /* : OptionBool */; val* var1 /* : OptionBool */; -var1 = modelbuilder__ToolContext__opt_only_parse(self); +val* var3 /* : OptionBool */; +{ /* Inline modelbuilder#ToolContext#opt_only_parse (self) on */ +var3 = self->attrs[COLOR_modelbuilder__ToolContext___opt_only_parse].val; /* _opt_only_parse on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_only_parse"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 43); +show_backtrace(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} var = var1; RET_LABEL:; return var; } -/* method modelbuilder#ToolContext#opt_only_parse= for (self: ToolContext, OptionBool) */ -void modelbuilder__ToolContext__opt_only_parse_61d(val* self, val* p0) { -self->attrs[COLOR_modelbuilder__ToolContext___64dopt_only_parse].val = p0; /* @opt_only_parse on */ +/* method modelbuilder#ToolContext#opt_ignore_visibility for (self: ToolContext): OptionBool */ +val* modelbuilder__ToolContext__opt_ignore_visibility(val* self) { +val* var /* : OptionBool */; +val* var1 /* : OptionBool */; +var1 = self->attrs[COLOR_modelbuilder__ToolContext___opt_ignore_visibility].val; /* _opt_ignore_visibility on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_ignore_visibility"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 46); +show_backtrace(1); +} +var = var1; RET_LABEL:; +return var; +} +/* method modelbuilder#ToolContext#opt_ignore_visibility for (self: Object): OptionBool */ +val* VIRTUAL_modelbuilder__ToolContext__opt_ignore_visibility(val* self) { +val* var /* : OptionBool */; +val* var1 /* : OptionBool */; +val* var3 /* : OptionBool */; +{ /* Inline modelbuilder#ToolContext#opt_ignore_visibility (self) on */ +var3 = self->attrs[COLOR_modelbuilder__ToolContext___opt_ignore_visibility].val; /* _opt_ignore_visibility on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_ignore_visibility"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 46); +show_backtrace(1); +} +var1 = var3; +RET_LABEL2:(void)0; } -/* method modelbuilder#ToolContext#opt_only_parse= for (self: Object, OptionBool) */ -void VIRTUAL_modelbuilder__ToolContext__opt_only_parse_61d(val* self, val* p0) { -modelbuilder__ToolContext__opt_only_parse_61d(self, p0); +var = var1; RET_LABEL:; +return var; } /* method modelbuilder#ToolContext#init for (self: ToolContext) */ void modelbuilder__ToolContext__init(val* self) { val* var /* : OptionContext */; -val* var1 /* : OptionArray */; -val* var2 /* : OptionBool */; -val* var3 /* : OptionBool */; -val* var4 /* : Array[Option] */; -long var5 /* : Int */; -val* var6 /* : NativeArray[Option] */; +val* var2 /* : OptionContext */; +val* var3 /* : OptionArray */; +val* var5 /* : OptionArray */; +val* var6 /* : OptionBool */; +val* var8 /* : OptionBool */; +val* var9 /* : OptionBool */; +val* var11 /* : OptionBool */; +val* var12 /* : OptionBool */; +val* var14 /* : OptionBool */; +val* var15 /* : Array[Option] */; +long var16 /* : Int */; +val* var17 /* : NativeArray[Option] */; +{ ((void (*)(val*))(self->class->vft[COLOR_modelbuilder__ToolContext__init]))(self) /* init on */; -var = ((val* (*)(val*))(self->class->vft[COLOR_toolcontext__ToolContext__option_context]))(self) /* option_context on */; -var1 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ToolContext__opt_path]))(self) /* opt_path on */; -var2 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ToolContext__opt_only_parse]))(self) /* opt_only_parse on */; -var3 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ToolContext__opt_only_metamodel]))(self) /* opt_only_metamodel on */; -var4 = NEW_array__Array(&type_array__Arrayopts__Option); -{ /* var4 = array_instance Array[Option] */ -var5 = 3; -var6 = NEW_array__NativeArray(var5, &type_array__NativeArrayopts__Option); -((struct instance_array__NativeArray*)var6)->values[0] = (val*) var1; -((struct instance_array__NativeArray*)var6)->values[1] = (val*) var2; -((struct instance_array__NativeArray*)var6)->values[2] = (val*) var3; -((void (*)(val*, val*, long))(var4->class->vft[COLOR_array__Array__with_native]))(var4, var6, var5) /* with_native on */; -} -((void (*)(val*, val*))(var->class->vft[COLOR_opts__OptionContext__add_option]))(var, var4) /* add_option on */; +} +{ +{ /* Inline toolcontext#ToolContext#option_context (self) on */ +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); +show_backtrace(1); +} +var = var2; +RET_LABEL1:(void)0; +} +} +{ +{ /* Inline modelbuilder#ToolContext#opt_path (self) on */ +var5 = self->attrs[COLOR_modelbuilder__ToolContext___opt_path].val; /* _opt_path on */ +if (unlikely(var5 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_path"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 37); +show_backtrace(1); +} +var3 = var5; +RET_LABEL4:(void)0; +} +} +{ +{ /* Inline modelbuilder#ToolContext#opt_only_parse (self) on */ +var8 = self->attrs[COLOR_modelbuilder__ToolContext___opt_only_parse].val; /* _opt_only_parse on */ +if (unlikely(var8 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_only_parse"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 43); +show_backtrace(1); +} +var6 = var8; +RET_LABEL7:(void)0; +} +} +{ +{ /* Inline modelbuilder#ToolContext#opt_only_metamodel (self) on */ +var11 = self->attrs[COLOR_modelbuilder__ToolContext___opt_only_metamodel].val; /* _opt_only_metamodel on */ +if (unlikely(var11 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_only_metamodel"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 40); +show_backtrace(1); +} +var9 = var11; +RET_LABEL10:(void)0; +} +} +{ +{ /* Inline modelbuilder#ToolContext#opt_ignore_visibility (self) on */ +var14 = self->attrs[COLOR_modelbuilder__ToolContext___opt_ignore_visibility].val; /* _opt_ignore_visibility on */ +if (unlikely(var14 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_ignore_visibility"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 46); +show_backtrace(1); +} +var12 = var14; +RET_LABEL13:(void)0; +} +} +var15 = NEW_array__Array(&type_array__Arrayopts__Option); +{ /* var15 = array_instance Array[Option] */ +var16 = 4; +var17 = NEW_array__NativeArray(var16, &type_array__NativeArrayopts__Option); +((struct instance_array__NativeArray*)var17)->values[0] = (val*) var3; +((struct instance_array__NativeArray*)var17)->values[1] = (val*) var6; +((struct instance_array__NativeArray*)var17)->values[2] = (val*) var9; +((struct instance_array__NativeArray*)var17)->values[3] = (val*) var12; +{ +((void (*)(val*, val*, long))(var15->class->vft[COLOR_array__Array__with_native]))(var15, var17, var16) /* with_native on */; +} +} +{ +opts__OptionContext__add_option(var, var15); /* Direct call opts#OptionContext#add_option on */ +} RET_LABEL:; } /* method modelbuilder#ToolContext#init for (self: Object) */ void VIRTUAL_modelbuilder__ToolContext__init(val* self) { -modelbuilder__ToolContext__init(self); +modelbuilder__ToolContext__init(self); /* Direct call modelbuilder#ToolContext#init on */ RET_LABEL:; } /* method modelbuilder#ToolContext#modelbuilder for (self: ToolContext): ModelBuilder */ val* modelbuilder__ToolContext__modelbuilder(val* self) { val* var /* : ModelBuilder */; val* var1 /* : nullable ModelBuilder */; -var1 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ToolContext__modelbuilder_real]))(self) /* modelbuilder_real on */; -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s", "Cast failed"); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 52); +val* var3 /* : nullable ModelBuilder */; +{ +{ /* Inline modelbuilder#ToolContext#modelbuilder_real (self) on */ +var3 = self->attrs[COLOR_modelbuilder__ToolContext___modelbuilder_real].val; /* _modelbuilder_real on */ +var1 = var3; +RET_LABEL2:(void)0; +} +} +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 55); show_backtrace(1); } var = var1; @@ -157,7 +266,7 @@ return var; val* modelbuilder__ToolContext__modelbuilder_real(val* self) { val* var /* : nullable ModelBuilder */; val* var1 /* : nullable ModelBuilder */; -var1 = self->attrs[COLOR_modelbuilder__ToolContext___64dmodelbuilder_real].val; /* @modelbuilder_real on */ +var1 = self->attrs[COLOR_modelbuilder__ToolContext___modelbuilder_real].val; /* _modelbuilder_real on */ var = var1; RET_LABEL:; return var; @@ -166,68 +275,242 @@ return var; val* VIRTUAL_modelbuilder__ToolContext__modelbuilder_real(val* self) { val* var /* : nullable ModelBuilder */; val* var1 /* : nullable ModelBuilder */; -var1 = modelbuilder__ToolContext__modelbuilder_real(self); +val* var3 /* : nullable ModelBuilder */; +{ /* Inline modelbuilder#ToolContext#modelbuilder_real (self) on */ +var3 = self->attrs[COLOR_modelbuilder__ToolContext___modelbuilder_real].val; /* _modelbuilder_real on */ +var1 = var3; +RET_LABEL2:(void)0; +} var = var1; RET_LABEL:; return var; } /* method modelbuilder#ToolContext#modelbuilder_real= for (self: ToolContext, nullable ModelBuilder) */ void modelbuilder__ToolContext__modelbuilder_real_61d(val* self, val* p0) { -self->attrs[COLOR_modelbuilder__ToolContext___64dmodelbuilder_real].val = p0; /* @modelbuilder_real on */ +self->attrs[COLOR_modelbuilder__ToolContext___modelbuilder_real].val = p0; /* _modelbuilder_real on */ RET_LABEL:; } /* method modelbuilder#ToolContext#modelbuilder_real= for (self: Object, nullable ModelBuilder) */ void VIRTUAL_modelbuilder__ToolContext__modelbuilder_real_61d(val* self, val* p0) { -modelbuilder__ToolContext__modelbuilder_real_61d(self, p0); +{ /* Inline modelbuilder#ToolContext#modelbuilder_real= (self,p0) on */ +self->attrs[COLOR_modelbuilder__ToolContext___modelbuilder_real].val = p0; /* _modelbuilder_real on */ +RET_LABEL1:(void)0; +} RET_LABEL:; } -/* method modelbuilder#ToolContext#run_global_phases for (self: ToolContext, MModule) */ +/* method modelbuilder#ToolContext#run_global_phases for (self: ToolContext, Array[MModule]) */ void modelbuilder__ToolContext__run_global_phases(val* self, val* p0) { -val* var_mainmodule /* var mainmodule: MModule */; -val* var /* : Sequence[Phase] */; -val* var1 /* : Iterator[nullable Object] */; -short int var2 /* : Bool */; -val* var3 /* : nullable Object */; +val* var_mmodules /* var mmodules: Array[MModule] */; +short int var /* : Bool */; +short int var1 /* : Bool */; +long var2 /* : Int */; +long var3 /* : Int */; +short int var4 /* : Bool */; +short int var5 /* : Bool */; +short int var7 /* : Bool */; +val* var8 /* : nullable Object */; +val* var_mainmodule /* var mainmodule: nullable Object */; +val* var9 /* : MModule */; +val* var10 /* : ModelBuilder */; +val* var11 /* : Model */; +val* var13 /* : Model */; +val* var14 /* : null */; +val* var15 /* : nullable Object */; +val* var16 /* : String */; +val* var18 /* : String */; +val* var19 /* : Location */; +val* var20 /* : nullable Object */; +val* var21 /* : Location */; +val* var23 /* : Location */; +val* var24 /* : nullable SourceFile */; +val* var26 /* : nullable SourceFile */; +long var27 /* : Int */; +long var28 /* : Int */; +long var29 /* : Int */; +long var30 /* : Int */; +short int var31 /* : Bool */; +val* var33 /* : Sequence[Phase] */; +val* var34 /* : Iterator[nullable Object] */; +short int var35 /* : Bool */; +val* var36 /* : nullable Object */; val* var_phase /* var phase: Phase */; -var_mainmodule = p0; -var = ((val* (*)(val*))(self->class->vft[COLOR_phase__ToolContext__phases_list]))(self) /* phases_list on */; -var1 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_collection__Collection__iterator]))(var) /* iterator on */; +short int var37 /* : Bool */; +short int var39 /* : Bool */; +var_mmodules = p0; +{ +var = array__AbstractArrayRead__is_empty(var_mmodules); +} +var1 = !var; +if (unlikely(!var1)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 61); +show_backtrace(1); +} +{ +var2 = array__AbstractArrayRead__length(var_mmodules); +} +var3 = 1; +{ +{ /* Inline kernel#Int#== (var2,var3) on */ +var7 = var2 == var3; +var5 = var7; +goto RET_LABEL6; +RET_LABEL6:(void)0; +} +var4 = var5; +} +if (var4){ +{ +var8 = abstract_collection__SequenceRead__first(var_mmodules); +} +var_mainmodule = var8; +} else { +var9 = NEW_mmodule__MModule(&type_mmodule__MModule); +{ +var10 = modelbuilder__ToolContext__modelbuilder(self); +} +{ +{ /* Inline modelbuilder#ModelBuilder#model (var10) on */ +var13 = var10->attrs[COLOR_modelbuilder__ModelBuilder___model].val; /* _model on */ +if (unlikely(var13 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 98); +show_backtrace(1); +} +var11 = var13; +RET_LABEL12:(void)0; +} +} +var14 = NULL; +{ +var15 = abstract_collection__SequenceRead__first(var_mmodules); +} +{ +{ /* Inline mmodule#MModule#name (var15) on */ +var18 = var15->attrs[COLOR_mmodule__MModule___name].val; /* _name on */ +if (unlikely(var18 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); +PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 86); +show_backtrace(1); +} +var16 = var18; +RET_LABEL17:(void)0; +} +} +var19 = NEW_location__Location(&type_location__Location); +{ +var20 = abstract_collection__SequenceRead__first(var_mmodules); +} +{ +{ /* Inline mmodule#MModule#location (var20) on */ +var23 = var20->attrs[COLOR_mmodule__MModule___location].val; /* _location on */ +if (unlikely(var23 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location"); +PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 89); +show_backtrace(1); +} +var21 = var23; +RET_LABEL22:(void)0; +} +} +{ +{ /* Inline location#Location#file (var21) on */ +var26 = var21->attrs[COLOR_location__Location___file].val; /* _file on */ +var24 = var26; +RET_LABEL25:(void)0; +} +} +var27 = 0; +var28 = 0; +var29 = 0; +var30 = 0; +{ +location__Location__init(var19, var24, var27, var28, var29, var30); /* Direct call location#Location#init on */ +} +{ +mmodule__MModule__init(var9, var11, var14, var16, var19); /* Direct call mmodule#MModule#init on */ +} +var_mainmodule = var9; +var31 = 1; +{ +{ /* Inline mmodule#MModule#is_fictive= (var_mainmodule,var31) on */ +var_mainmodule->attrs[COLOR_mmodule__MModule___is_fictive].s = var31; /* _is_fictive on */ +RET_LABEL32:(void)0; +} +} +{ +mmodule__MModule__set_imported_mmodules(var_mainmodule, var_mmodules); /* Direct call mmodule#MModule#set_imported_mmodules on */ +} +} +{ +var33 = phase__ToolContext__phases_list(self); +} +{ +var34 = ((val* (*)(val*))(var33->class->vft[COLOR_abstract_collection__Collection__iterator]))(var33) /* iterator on */; +} for(;;) { -var2 = ((short int (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var1) /* is_ok on */; -if(!var2) break; -var3 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__item]))(var1) /* item on */; -var_phase = var3; -((void (*)(val*, val*))(var_phase->class->vft[COLOR_modelbuilder__Phase__process_mainmodule]))(var_phase, var_mainmodule) /* process_mainmodule on */; +{ +var35 = ((short int (*)(val*))(var34->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var34) /* is_ok on */; +} +if(!var35) break; +{ +var36 = ((val* (*)(val*))(var34->class->vft[COLOR_abstract_collection__Iterator__item]))(var34) /* item on */; +} +var_phase = var36; +{ +{ /* Inline phase#Phase#disabled (var_phase) on */ +var39 = var_phase->attrs[COLOR_phase__Phase___disabled].s; /* _disabled on */ +var37 = var39; +RET_LABEL38:(void)0; +} +} +if (var37){ +goto CONTINUE_label; +} else { +} +{ +((void (*)(val*, val*, val*))(var_phase->class->vft[COLOR_modelbuilder__Phase__process_mainmodule]))(var_phase, var_mainmodule, var_mmodules) /* process_mainmodule on */; +} CONTINUE_label: (void)0; -((void (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__next]))(var1) /* next on */; +{ +((void (*)(val*))(var34->class->vft[COLOR_abstract_collection__Iterator__next]))(var34) /* next on */; +} } BREAK_label: (void)0; RET_LABEL:; } -/* method modelbuilder#ToolContext#run_global_phases for (self: Object, MModule) */ +/* method modelbuilder#ToolContext#run_global_phases for (self: Object, Array[MModule]) */ void VIRTUAL_modelbuilder__ToolContext__run_global_phases(val* self, val* p0) { -modelbuilder__ToolContext__run_global_phases(self, p0); +modelbuilder__ToolContext__run_global_phases(self, p0); /* Direct call modelbuilder#ToolContext#run_global_phases on */ RET_LABEL:; } -/* method modelbuilder#Phase#process_mainmodule for (self: Phase, MModule) */ -void modelbuilder__Phase__process_mainmodule(val* self, val* p0) { +/* method modelbuilder#Phase#process_mainmodule for (self: Phase, MModule, SequenceRead[MModule]) */ +void modelbuilder__Phase__process_mainmodule(val* self, val* p0, val* p1) { val* var_mainmodule /* var mainmodule: MModule */; +val* var_given_mmodules /* var given_mmodules: SequenceRead[MModule] */; var_mainmodule = p0; +var_given_mmodules = p1; RET_LABEL:; } -/* method modelbuilder#Phase#process_mainmodule for (self: Object, MModule) */ -void VIRTUAL_modelbuilder__Phase__process_mainmodule(val* self, val* p0) { -modelbuilder__Phase__process_mainmodule(self, p0); +/* method modelbuilder#Phase#process_mainmodule for (self: Object, MModule, SequenceRead[MModule]) */ +void VIRTUAL_modelbuilder__Phase__process_mainmodule(val* self, val* p0, val* p1) { +val* var_mainmodule /* var mainmodule: MModule */; +val* var_given_mmodules /* var given_mmodules: SequenceRead[MModule] */; +{ /* Inline modelbuilder#Phase#process_mainmodule (self,p0,p1) on */ +var_mainmodule = p0; +var_given_mmodules = p1; +RET_LABEL1:(void)0; +} RET_LABEL:; } /* method modelbuilder#ModelBuilder#model for (self: ModelBuilder): Model */ val* modelbuilder__ModelBuilder__model(val* self) { val* var /* : Model */; val* var1 /* : Model */; -var1 = self->attrs[COLOR_modelbuilder__ModelBuilder___64dmodel].val; /* @model on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @model"); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 73); +var1 = self->attrs[COLOR_modelbuilder__ModelBuilder___model].val; /* _model on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 98); show_backtrace(1); } var = var1; @@ -238,29 +521,42 @@ return var; val* VIRTUAL_modelbuilder__ModelBuilder__model(val* self) { val* var /* : Model */; val* var1 /* : Model */; -var1 = modelbuilder__ModelBuilder__model(self); +val* var3 /* : Model */; +{ /* Inline modelbuilder#ModelBuilder#model (self) on */ +var3 = self->attrs[COLOR_modelbuilder__ModelBuilder___model].val; /* _model on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 98); +show_backtrace(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} var = var1; RET_LABEL:; return var; } /* method modelbuilder#ModelBuilder#model= for (self: ModelBuilder, Model) */ void modelbuilder__ModelBuilder__model_61d(val* self, val* p0) { -self->attrs[COLOR_modelbuilder__ModelBuilder___64dmodel].val = p0; /* @model on */ +self->attrs[COLOR_modelbuilder__ModelBuilder___model].val = p0; /* _model on */ RET_LABEL:; } /* method modelbuilder#ModelBuilder#model= for (self: Object, Model) */ void VIRTUAL_modelbuilder__ModelBuilder__model_61d(val* self, val* p0) { -modelbuilder__ModelBuilder__model_61d(self, p0); +{ /* Inline modelbuilder#ModelBuilder#model= (self,p0) on */ +self->attrs[COLOR_modelbuilder__ModelBuilder___model].val = p0; /* _model on */ +RET_LABEL1:(void)0; +} RET_LABEL:; } /* method modelbuilder#ModelBuilder#toolcontext for (self: ModelBuilder): ToolContext */ val* modelbuilder__ModelBuilder__toolcontext(val* self) { val* var /* : ToolContext */; val* var1 /* : ToolContext */; -var1 = self->attrs[COLOR_modelbuilder__ModelBuilder___64dtoolcontext].val; /* @toolcontext on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @toolcontext"); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 76); +var1 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); show_backtrace(1); } var = var1; @@ -271,101 +567,256 @@ return var; val* VIRTUAL_modelbuilder__ModelBuilder__toolcontext(val* self) { val* var /* : ToolContext */; val* var1 /* : ToolContext */; -var1 = modelbuilder__ModelBuilder__toolcontext(self); +val* var3 /* : ToolContext */; +{ /* Inline modelbuilder#ModelBuilder#toolcontext (self) on */ +var3 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +show_backtrace(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} var = var1; RET_LABEL:; return var; } /* method modelbuilder#ModelBuilder#toolcontext= for (self: ModelBuilder, ToolContext) */ void modelbuilder__ModelBuilder__toolcontext_61d(val* self, val* p0) { -self->attrs[COLOR_modelbuilder__ModelBuilder___64dtoolcontext].val = p0; /* @toolcontext on */ +self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val = p0; /* _toolcontext on */ RET_LABEL:; } /* method modelbuilder#ModelBuilder#toolcontext= for (self: Object, ToolContext) */ void VIRTUAL_modelbuilder__ModelBuilder__toolcontext_61d(val* self, val* p0) { -modelbuilder__ModelBuilder__toolcontext_61d(self, p0); +{ /* Inline modelbuilder#ModelBuilder#toolcontext= (self,p0) on */ +self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val = p0; /* _toolcontext on */ +RET_LABEL1:(void)0; +} RET_LABEL:; } /* method modelbuilder#ModelBuilder#run_phases for (self: ModelBuilder) */ void modelbuilder__ModelBuilder__run_phases(val* self) { val* var /* : Model */; -val* var1 /* : Array[MModule] */; -val* var2 /* : Array[nullable Object] */; +val* var2 /* : Model */; +val* var3 /* : Array[MModule] */; +val* var5 /* : Array[MModule] */; +val* var6 /* : Array[nullable Object] */; val* var_mmodules /* var mmodules: Array[MModule] */; -val* var3 /* : Model */; -val* var4 /* : POSet[MModule] */; -val* var5 /* : Array[AModule] */; +val* var7 /* : Model */; +val* var9 /* : Model */; +val* var10 /* : POSet[MModule] */; +val* var12 /* : POSet[MModule] */; +val* var13 /* : Array[AModule] */; val* var_nmodules /* var nmodules: Array[AModule] */; -val* var6 /* : Iterator[nullable Object] */; -short int var7 /* : Bool */; -val* var8 /* : nullable Object */; -val* var_mm /* var mm: MModule */; -val* var9 /* : HashMap[MModule, AModule] */; -val* var10 /* : nullable Object */; -val* var11 /* : ToolContext */; -val* var12 /* : ToolContext */; -val* var13 /* : OptionBool */; -val* var14 /* : nullable Object */; +val* var14 /* : ArrayIterator[nullable Object] */; short int var15 /* : Bool */; -val* var16 /* : ToolContext */; +val* var16 /* : nullable Object */; +val* var_mm /* var mm: MModule */; +val* var17 /* : HashMap[MModule, AModule] */; +val* var19 /* : HashMap[MModule, AModule] */; +val* var20 /* : nullable Object */; +val* var21 /* : ToolContext */; +val* var23 /* : ToolContext */; +val* var24 /* : ToolContext */; +val* var26 /* : ToolContext */; +val* var27 /* : OptionBool */; +val* var29 /* : OptionBool */; +val* var30 /* : nullable Object */; +val* var32 /* : nullable Object */; +short int var33 /* : Bool */; +val* var34 /* : ToolContext */; +val* var36 /* : ToolContext */; static val* varonce; -val* var17 /* : String */; -char* var18 /* : NativeString */; -long var19 /* : Int */; -val* var20 /* : String */; -long var21 /* : Int */; -long var22 /* : Int */; -var = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__model]))(self) /* model on */; -var1 = ((val* (*)(val*))(var->class->vft[COLOR_mmodule__Model__mmodules]))(var) /* mmodules on */; -var2 = ((val* (*)(val*))(var1->class->vft[COLOR_array__Collection__to_a]))(var1) /* to_a on */; -var_mmodules = var2; -var3 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__model]))(self) /* model on */; -var4 = ((val* (*)(val*))(var3->class->vft[COLOR_mmodule__Model__mmodule_importation_hierarchy]))(var3) /* mmodule_importation_hierarchy on */; -((void (*)(val*, val*))(var4->class->vft[COLOR_sorter__AbstractSorter__sort]))(var4, var_mmodules) /* sort on */; -var5 = NEW_array__Array(&type_array__Arrayparser_nodes__AModule); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_nmodules = var5; -var6 = ((val* (*)(val*))(var_mmodules->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_mmodules) /* iterator on */; +val* var37 /* : String */; +char* var38 /* : NativeString */; +long var39 /* : Int */; +val* var40 /* : FlatString */; +long var41 /* : Int */; +long var42 /* : Int */; +{ +{ /* Inline modelbuilder#ModelBuilder#model (self) on */ +var2 = self->attrs[COLOR_modelbuilder__ModelBuilder___model].val; /* _model on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 98); +show_backtrace(1); +} +var = var2; +RET_LABEL1:(void)0; +} +} +{ +{ /* Inline mmodule#Model#mmodules (var) on */ +var5 = var->attrs[COLOR_mmodule__Model___mmodules].val; /* _mmodules on */ +if (unlikely(var5 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodules"); +PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 28); +show_backtrace(1); +} +var3 = var5; +RET_LABEL4:(void)0; +} +} +{ +var6 = array__Collection__to_a(var3); +} +var_mmodules = var6; +{ +{ /* Inline modelbuilder#ModelBuilder#model (self) on */ +var9 = self->attrs[COLOR_modelbuilder__ModelBuilder___model].val; /* _model on */ +if (unlikely(var9 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 98); +show_backtrace(1); +} +var7 = var9; +RET_LABEL8:(void)0; +} +} +{ +{ /* Inline mmodule#Model#mmodule_importation_hierarchy (var7) on */ +var12 = var7->attrs[COLOR_mmodule__Model___mmodule_importation_hierarchy].val; /* _mmodule_importation_hierarchy on */ +if (unlikely(var12 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule_importation_hierarchy"); +PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 37); +show_backtrace(1); +} +var10 = var12; +RET_LABEL11:(void)0; +} +} +{ +sorter__Comparator__sort(var10, var_mmodules); /* Direct call sorter#Comparator#sort on */ +} +var13 = NEW_array__Array(&type_array__Arrayparser_nodes__AModule); +{ +array__Array__init(var13); /* Direct call array#Array#init on */ +} +var_nmodules = var13; +{ +var14 = array__AbstractArrayRead__iterator(var_mmodules); +} for(;;) { -var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on */; -if(!var7) break; -var8 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__item]))(var6) /* item on */; -var_mm = var8; -var9 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__mmodule2nmodule]))(self) /* mmodule2nmodule on */; -var10 = ((val* (*)(val*, val*))(var9->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var9, var_mm) /* [] on */; -((void (*)(val*, val*))(var_nmodules->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_nmodules, var10) /* add on */; +{ +var15 = array__ArrayIterator__is_ok(var14); +} +if(!var15) break; +{ +var16 = array__ArrayIterator__item(var14); +} +var_mm = var16; +{ +{ /* Inline modelbuilder#ModelBuilder#mmodule2nmodule (self) on */ +var19 = self->attrs[COLOR_modelbuilder__ModelBuilder___mmodule2nmodule].val; /* _mmodule2nmodule on */ +if (unlikely(var19 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule2nmodule"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 697); +show_backtrace(1); +} +var17 = var19; +RET_LABEL18:(void)0; +} +} +{ +var20 = hash_collection__HashMap___91d_93d(var17, var_mm); +} +{ +array__Array__add(var_nmodules, var20); /* Direct call array#Array#add on */ +} CONTINUE_label: (void)0; -((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on */; +{ +array__ArrayIterator__next(var14); /* Direct call array#ArrayIterator#next on */ +} } BREAK_label: (void)0; -var11 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(self) /* toolcontext on */; -((void (*)(val*, val*))(var11->class->vft[COLOR_phase__ToolContext__run_phases]))(var11, var_nmodules) /* run_phases on */; -var12 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(self) /* toolcontext on */; -var13 = ((val* (*)(val*))(var12->class->vft[COLOR_modelbuilder__ToolContext__opt_only_metamodel]))(var12) /* opt_only_metamodel on */; -var14 = ((val* (*)(val*))(var13->class->vft[COLOR_opts__Option__value]))(var13) /* value on */; -var15 = ((struct instance_kernel__Bool*)var14)->value; /* autounbox from nullable Object to Bool */; -if (var15){ -var16 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(self) /* toolcontext on */; +{ +{ /* Inline modelbuilder#ModelBuilder#toolcontext (self) on */ +var23 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var23 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +show_backtrace(1); +} +var21 = var23; +RET_LABEL22:(void)0; +} +} +{ +phase__ToolContext__run_phases(var21, var_nmodules); /* Direct call phase#ToolContext#run_phases on */ +} +{ +{ /* Inline modelbuilder#ModelBuilder#toolcontext (self) on */ +var26 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var26 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +show_backtrace(1); +} +var24 = var26; +RET_LABEL25:(void)0; +} +} +{ +{ /* Inline modelbuilder#ToolContext#opt_only_metamodel (var24) on */ +var29 = var24->attrs[COLOR_modelbuilder__ToolContext___opt_only_metamodel].val; /* _opt_only_metamodel on */ +if (unlikely(var29 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_only_metamodel"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 40); +show_backtrace(1); +} +var27 = var29; +RET_LABEL28:(void)0; +} +} +{ +{ /* Inline opts#Option#value (var27) on */ +var32 = var27->attrs[COLOR_opts__Option___value].val; /* _value on */ +var30 = var32; +RET_LABEL31:(void)0; +} +} +var33 = ((struct instance_kernel__Bool*)var30)->value; /* autounbox from nullable Object to Bool */; +if (var33){ +{ +{ /* Inline modelbuilder#ModelBuilder#toolcontext (self) on */ +var36 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var36 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +show_backtrace(1); +} +var34 = var36; +RET_LABEL35:(void)0; +} +} if (varonce) { -var17 = varonce; +var37 = varonce; } else { -var18 = "*** ONLY METAMODEL"; -var19 = 18; -var20 = string__NativeString__to_s_with_length(var18, var19); -var17 = var20; -varonce = var17; +var38 = "*** ONLY METAMODEL"; +var39 = 18; +var40 = string__NativeString__to_s_with_length(var38, var39); +var37 = var40; +varonce = var37; +} +var41 = 1; +{ +toolcontext__ToolContext__info(var34, var37, var41); /* Direct call toolcontext#ToolContext#info on */ +} +var42 = 0; +{ +{ /* Inline kernel#Object#exit (self,var42) on */ +exit(var42); +RET_LABEL43:(void)0; +} } -var21 = 1; -((void (*)(val*, val*, long))(var16->class->vft[COLOR_toolcontext__ToolContext__info]))(var16, var17, var21) /* info on */; -var22 = 0; -((void (*)(val*, long))(self->class->vft[COLOR_kernel__Object__exit]))(self, var22) /* exit on */; } else { } RET_LABEL:; } /* method modelbuilder#ModelBuilder#run_phases for (self: Object) */ void VIRTUAL_modelbuilder__ModelBuilder__run_phases(val* self) { -modelbuilder__ModelBuilder__run_phases(self); +modelbuilder__ModelBuilder__run_phases(self); /* Direct call modelbuilder#ModelBuilder#run_phases on */ RET_LABEL:; } /* method modelbuilder#ModelBuilder#init for (self: ModelBuilder, Model, ToolContext) */ @@ -373,203 +824,265 @@ void modelbuilder__ModelBuilder__init(val* self, val* p0, val* p1) { val* var_model /* var model: Model */; val* var_toolcontext /* var toolcontext: ToolContext */; val* var /* : nullable ModelBuilder */; -val* var1 /* : null */; -short int var2 /* : Bool */; -val* var3 /* : Array[String] */; -val* var4 /* : OptionArray */; -val* var5 /* : nullable Object */; -static val* varonce; -val* var6 /* : String */; -char* var7 /* : NativeString */; -long var8 /* : Int */; -val* var9 /* : String */; -val* var10 /* : String */; -val* var_path_env /* var path_env: String */; +val* var4 /* : nullable ModelBuilder */; +val* var5 /* : null */; +short int var6 /* : Bool */; +short int var7 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var9 /* : Bool */; short int var11 /* : Bool */; -short int var12 /* : Bool */; val* var13 /* : Array[String] */; -char var14 /* : Char */; val* var15 /* : Array[String] */; -val* var16 /* : Pattern */; -static val* varonce17; -val* var18 /* : String */; -char* var19 /* : NativeString */; -long var20 /* : Int */; -val* var21 /* : String */; +val* var16 /* : OptionArray */; +val* var18 /* : OptionArray */; +val* var19 /* : nullable Object */; +val* var21 /* : nullable Object */; +static val* varonce; val* var22 /* : String */; -short int var23 /* : Bool */; -short int var24 /* : Bool */; -val* var25 /* : Array[Object] */; -long var26 /* : Int */; -val* var_ /* var : Array[Object] */; -static val* varonce27; -val* var28 /* : String */; -char* var29 /* : NativeString */; -long var30 /* : Int */; -val* var31 /* : String */; -static val* varonce32; -val* var33 /* : String */; -char* var34 /* : NativeString */; -long var35 /* : Int */; -val* var36 /* : String */; -val* var37 /* : String */; -val* var_libname /* var libname: String */; -short int var38 /* : Bool */; -val* var39 /* : Array[String] */; -val* var40 /* : Array[Object] */; -long var41 /* : Int */; -val* var_42 /* var : Array[Object] */; -static val* varonce43; -val* var44 /* : String */; -char* var45 /* : NativeString */; -long var46 /* : Int */; +char* var23 /* : NativeString */; +long var24 /* : Int */; +val* var25 /* : FlatString */; +val* var26 /* : String */; +val* var_path_env /* var path_env: String */; +short int var27 /* : Bool */; +short int var28 /* : Bool */; +val* var29 /* : Array[String] */; +val* var31 /* : Array[String] */; +char var32 /* : Char */; +val* var33 /* : Array[Text] */; +val* var34 /* : Pattern */; +val* var35 /* : nullable String */; +val* var37 /* : nullable String */; +val* var_nit_dir /* var nit_dir: nullable String */; +val* var38 /* : null */; +short int var39 /* : Bool */; +short int var40 /* : Bool */; +val* var_other42 /* var other: nullable Object */; +short int var43 /* : Bool */; +short int var44 /* : Bool */; +short int var45 /* : Bool */; +static val* varonce46; val* var47 /* : String */; -val* var48 /* : Sys */; -val* var49 /* : String */; -val* var50 /* : String */; -static val* varonce51; -val* var52 /* : String */; -char* var53 /* : NativeString */; -long var54 /* : Int */; -val* var55 /* : String */; -val* var56 /* : String */; -val* var_libname57 /* var libname: String */; -short int var58 /* : Bool */; -val* var59 /* : Array[String] */; -val* var60 /* : String */; -var_model = p0; +char* var48 /* : NativeString */; +long var49 /* : Int */; +val* var50 /* : FlatString */; +val* var51 /* : Array[Object] */; +long var52 /* : Int */; +val* var53 /* : NativeArray[Object] */; +val* var54 /* : String */; +val* var_libname /* var libname: String */; +short int var55 /* : Bool */; +val* var56 /* : Array[String] */; +val* var58 /* : Array[String] */; +var_model = p0; var_toolcontext = p1; -((void (*)(val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__model_61d]))(self, var_model) /* model= on */; -((void (*)(val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext_61d]))(self, var_toolcontext) /* toolcontext= on */; -var = ((val* (*)(val*))(var_toolcontext->class->vft[COLOR_modelbuilder__ToolContext__modelbuilder_real]))(var_toolcontext) /* modelbuilder_real on */; -var1 = NULL; +{ +{ /* Inline modelbuilder#ModelBuilder#model= (self,var_model) on */ +self->attrs[COLOR_modelbuilder__ModelBuilder___model].val = var_model; /* _model on */ +RET_LABEL1:(void)0; +} +} +{ +{ /* Inline modelbuilder#ModelBuilder#toolcontext= (self,var_toolcontext) on */ +self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val = var_toolcontext; /* _toolcontext on */ +RET_LABEL2:(void)0; +} +} +{ +{ /* Inline modelbuilder#ToolContext#modelbuilder_real (var_toolcontext) on */ +var4 = var_toolcontext->attrs[COLOR_modelbuilder__ToolContext___modelbuilder_real].val; /* _modelbuilder_real on */ +var = var4; +RET_LABEL3:(void)0; +} +} +var5 = NULL; if (var == NULL) { -var2 = 1; /* is null */ +var6 = 1; /* is null */ } else { -var2 = 0; /* arg is null but recv is not */ +var6 = 0; /* arg is null but recv is not */ } -if (!var2) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 102); +if (0) { +{ /* Inline kernel#Object#== (var,var5) on */ +var_other = var5; +{ +{ /* Inline kernel#Object#is_same_instance (var,var_other) on */ +var11 = var == var_other; +var9 = var11; +goto RET_LABEL10; +RET_LABEL10:(void)0; +} +} +var7 = var9; +goto RET_LABEL8; +RET_LABEL8:(void)0; +} +var6 = var7; +} +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 127); +show_backtrace(1); +} +{ +{ /* Inline modelbuilder#ToolContext#modelbuilder_real= (var_toolcontext,self) on */ +var_toolcontext->attrs[COLOR_modelbuilder__ToolContext___modelbuilder_real].val = self; /* _modelbuilder_real on */ +RET_LABEL12:(void)0; +} +} +{ +{ /* Inline modelbuilder#ModelBuilder#paths (self) on */ +var15 = self->attrs[COLOR_modelbuilder__ModelBuilder___paths].val; /* _paths on */ +if (unlikely(var15 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _paths"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 289); show_backtrace(1); } -((void (*)(val*, val*))(var_toolcontext->class->vft[COLOR_modelbuilder__ToolContext__modelbuilder_real_61d]))(var_toolcontext, self) /* modelbuilder_real= on */; -var3 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__paths]))(self) /* paths on */; -var4 = ((val* (*)(val*))(var_toolcontext->class->vft[COLOR_modelbuilder__ToolContext__opt_path]))(var_toolcontext) /* opt_path on */; -var5 = ((val* (*)(val*))(var4->class->vft[COLOR_opts__Option__value]))(var4) /* value on */; -((void (*)(val*, val*))(var3->class->vft[COLOR_abstract_collection__Sequence__append]))(var3, var5) /* append on */; +var13 = var15; +RET_LABEL14:(void)0; +} +} +{ +{ /* Inline modelbuilder#ToolContext#opt_path (var_toolcontext) on */ +var18 = var_toolcontext->attrs[COLOR_modelbuilder__ToolContext___opt_path].val; /* _opt_path on */ +if (unlikely(var18 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_path"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 37); +show_backtrace(1); +} +var16 = var18; +RET_LABEL17:(void)0; +} +} +{ +{ /* Inline opts#Option#value (var16) on */ +var21 = var16->attrs[COLOR_opts__Option___value].val; /* _value on */ +var19 = var21; +RET_LABEL20:(void)0; +} +} +{ +abstract_collection__Sequence__append(var13, var19); /* Direct call abstract_collection#Sequence#append on */ +} if (varonce) { -var6 = varonce; -} else { -var7 = "NIT_PATH"; -var8 = 8; -var9 = string__NativeString__to_s_with_length(var7, var8); -var6 = var9; -varonce = var6; -} -var10 = ((val* (*)(val*))(var6->class->vft[COLOR_environ__String__environ]))(var6) /* environ on */; -var_path_env = var10; -var11 = ((short int (*)(val*))(var_path_env->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var_path_env) /* is_empty on */; -var12 = !var11; -if (var12){ -var13 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__paths]))(self) /* paths on */; -var14 = ':'; -var16 = BOX_kernel__Char(var14); /* autobox from Char to Pattern */ -var15 = ((val* (*)(val*, val*))(var_path_env->class->vft[COLOR_string_search__String__split_with]))(var_path_env, var16) /* split_with on */; -((void (*)(val*, val*))(var13->class->vft[COLOR_abstract_collection__Sequence__append]))(var13, var15) /* append on */; +var22 = varonce; } else { +var23 = "NIT_PATH"; +var24 = 8; +var25 = string__NativeString__to_s_with_length(var23, var24); +var22 = var25; +varonce = var22; +} +{ +var26 = environ__String__environ(var22); +} +var_path_env = var26; +{ +var27 = string__Text__is_empty(var_path_env); +} +var28 = !var27; +if (var28){ +{ +{ /* Inline modelbuilder#ModelBuilder#paths (self) on */ +var31 = self->attrs[COLOR_modelbuilder__ModelBuilder___paths].val; /* _paths on */ +if (unlikely(var31 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _paths"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 289); +show_backtrace(1); +} +var29 = var31; +RET_LABEL30:(void)0; +} +} +var32 = ':'; +{ +var34 = BOX_kernel__Char(var32); /* autobox from Char to Pattern */ +var33 = string_search__Text__split_with(var_path_env, var34); +} +{ +abstract_collection__Sequence__append(var29, var33); /* Direct call abstract_collection#Sequence#append on */ +} +} else { +} +{ +{ /* Inline toolcontext#ToolContext#nit_dir (var_toolcontext) on */ +var37 = var_toolcontext->attrs[COLOR_toolcontext__ToolContext___nit_dir].val; /* _nit_dir on */ +var35 = var37; +RET_LABEL36:(void)0; +} +} +var_nit_dir = var35; +var38 = NULL; +if (var_nit_dir == NULL) { +var39 = 0; /* is null */ +} else { +var39 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_nit_dir,var38) on */ +var_other42 = var38; +{ +var44 = ((short int (*)(val*, val*))(var_nit_dir->class->vft[COLOR_kernel__Object___61d_61d]))(var_nit_dir, var_other42) /* == on */; +var43 = var44; +} +var45 = !var43; +var40 = var45; +goto RET_LABEL41; +RET_LABEL41:(void)0; +} +var39 = var40; +} +if (var39){ +if (varonce46) { +var47 = varonce46; +} else { +var48 = "/lib"; +var49 = 4; +var50 = string__NativeString__to_s_with_length(var48, var49); +var47 = var50; +varonce46 = var47; +} +var51 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var51 = array_instance Array[Object] */ +var52 = 2; +var53 = NEW_array__NativeArray(var52, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var53)->values[0] = (val*) var_nit_dir; +((struct instance_array__NativeArray*)var53)->values[1] = (val*) var47; +{ +((void (*)(val*, val*, long))(var51->class->vft[COLOR_array__Array__with_native]))(var51, var53, var52) /* with_native on */; +} +} +{ +var54 = ((val* (*)(val*))(var51->class->vft[COLOR_string__Object__to_s]))(var51) /* to_s on */; +} +var_libname = var54; +{ +var55 = file__String__file_exists(var_libname); +} +if (var55){ +{ +{ /* Inline modelbuilder#ModelBuilder#paths (self) on */ +var58 = self->attrs[COLOR_modelbuilder__ModelBuilder___paths].val; /* _paths on */ +if (unlikely(var58 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _paths"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 289); +show_backtrace(1); +} +var56 = var58; +RET_LABEL57:(void)0; +} +} +{ +array__Array__add(var56, var_libname); /* Direct call array#Array#add on */ } -if (varonce17) { -var18 = varonce17; } else { -var19 = "NIT_DIR"; -var20 = 7; -var21 = string__NativeString__to_s_with_length(var19, var20); -var18 = var21; -varonce17 = var18; } -var22 = ((val* (*)(val*))(var18->class->vft[COLOR_environ__String__environ]))(var18) /* environ on */; -var_path_env = var22; -var23 = ((short int (*)(val*))(var_path_env->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var_path_env) /* is_empty on */; -var24 = !var23; -if (var24){ -var25 = NEW_array__Array(&type_array__Arraykernel__Object); -var26 = 3; -((void (*)(val*, long))(var25->class->vft[COLOR_array__Array__with_capacity]))(var25, var26) /* with_capacity on */; -var_ = var25; -if (varonce27) { -var28 = varonce27; -} else { -var29 = ""; -var30 = 0; -var31 = string__NativeString__to_s_with_length(var29, var30); -var28 = var31; -varonce27 = var28; -} -((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var28) /* add on */; -((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var_path_env) /* add on */; -if (varonce32) { -var33 = varonce32; -} else { -var34 = "/lib"; -var35 = 4; -var36 = string__NativeString__to_s_with_length(var34, var35); -var33 = var36; -varonce32 = var33; -} -((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var33) /* add on */; -var37 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on */; -var_libname = var37; -var38 = ((short int (*)(val*))(var_libname->class->vft[COLOR_file__String__file_exists]))(var_libname) /* file_exists on */; -if (var38){ -var39 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__paths]))(self) /* paths on */; -((void (*)(val*, val*))(var39->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var39, var_libname) /* add on */; -} else { -} -} else { -} -var40 = NEW_array__Array(&type_array__Arraykernel__Object); -var41 = 3; -((void (*)(val*, long))(var40->class->vft[COLOR_array__Array__with_capacity]))(var40, var41) /* with_capacity on */; -var_42 = var40; -if (varonce43) { -var44 = varonce43; -} else { -var45 = ""; -var46 = 0; -var47 = string__NativeString__to_s_with_length(var45, var46); -var44 = var47; -varonce43 = var44; -} -((void (*)(val*, val*))(var_42->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_42, var44) /* add on */; -var48 = ((val* (*)(val*))(self->class->vft[COLOR_kernel__Object__sys]))(self) /* sys on */; -var49 = ((val* (*)(val*))(var48->class->vft[COLOR_string__Sys__program_name]))(var48) /* program_name on */; -var50 = ((val* (*)(val*))(var49->class->vft[COLOR_file__String__dirname]))(var49) /* dirname on */; -((void (*)(val*, val*))(var_42->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_42, var50) /* add on */; -if (varonce51) { -var52 = varonce51; -} else { -var53 = "/../lib"; -var54 = 7; -var55 = string__NativeString__to_s_with_length(var53, var54); -var52 = var55; -varonce51 = var52; -} -((void (*)(val*, val*))(var_42->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_42, var52) /* add on */; -var56 = ((val* (*)(val*))(var_42->class->vft[COLOR_string__Object__to_s]))(var_42) /* to_s on */; -var_libname57 = var56; -var58 = ((short int (*)(val*))(var_libname57->class->vft[COLOR_file__String__file_exists]))(var_libname57) /* file_exists on */; -if (var58){ -var59 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__paths]))(self) /* paths on */; -var60 = ((val* (*)(val*))(var_libname57->class->vft[COLOR_file__String__simplify_path]))(var_libname57) /* simplify_path on */; -((void (*)(val*, val*))(var59->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var59, var60) /* add on */; } else { } RET_LABEL:; } /* method modelbuilder#ModelBuilder#init for (self: Object, Model, ToolContext) */ void VIRTUAL_modelbuilder__ModelBuilder__init(val* self, val* p0, val* p1) { -modelbuilder__ModelBuilder__init(self, p0, p1); +modelbuilder__ModelBuilder__init(self, p0, p1); /* Direct call modelbuilder#ModelBuilder#init on */ RET_LABEL:; } /* method modelbuilder#ModelBuilder#parse for (self: ModelBuilder, Sequence[String]): Array[MModule] */ @@ -577,172 +1090,343 @@ val* modelbuilder__ModelBuilder__parse(val* self, val* p0) { val* var /* : Array[MModule] */; val* var_modules /* var modules: Sequence[String] */; long var1 /* : Int */; +long var3 /* : Int */; long var_time0 /* var time0: Int */; -val* var2 /* : ToolContext */; +val* var4 /* : ToolContext */; +val* var6 /* : ToolContext */; static val* varonce; -val* var3 /* : String */; -char* var4 /* : NativeString */; -long var5 /* : Int */; -val* var6 /* : String */; -long var7 /* : Int */; -val* var8 /* : ArraySet[MModule] */; +val* var7 /* : String */; +char* var8 /* : NativeString */; +long var9 /* : Int */; +val* var10 /* : FlatString */; +long var11 /* : Int */; +val* var12 /* : ArraySet[MModule] */; val* var_mmodules /* var mmodules: ArraySet[MModule] */; -val* var9 /* : Iterator[nullable Object] */; -short int var10 /* : Bool */; -val* var11 /* : nullable Object */; +val* var13 /* : Iterator[nullable Object] */; +short int var14 /* : Bool */; +val* var15 /* : nullable Object */; val* var_a /* var a: String */; -val* var12 /* : nullable AModule */; +val* var16 /* : nullable AModule */; val* var_nmodule /* var nmodule: nullable AModule */; -val* var13 /* : null */; -short int var14 /* : Bool */; -val* var15 /* : nullable MModule */; -long var16 /* : Int */; -long var_time1 /* var time1: Int */; -val* var17 /* : ToolContext */; -static val* varonce18; -val* var19 /* : String */; -char* var20 /* : NativeString */; -long var21 /* : Int */; -val* var22 /* : String */; -long var23 /* : Int */; -long var25 /* : Int */; -static val* varonce26; -val* var27 /* : String */; -char* var28 /* : NativeString */; +val* var17 /* : null */; +short int var18 /* : Bool */; +short int var19 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var21 /* : Bool */; +short int var23 /* : Bool */; +val* var24 /* : nullable MModule */; +val* var26 /* : nullable MModule */; +long var27 /* : Int */; long var29 /* : Int */; -val* var30 /* : String */; -val* var31 /* : Array[Object] */; -long var32 /* : Int */; -val* var33 /* : NativeArray[Object] */; -val* var34 /* : Object */; -val* var35 /* : String */; +long var_time1 /* var time1: Int */; +val* var30 /* : ToolContext */; +val* var32 /* : ToolContext */; +static val* varonce33; +val* var34 /* : String */; +char* var35 /* : NativeString */; long var36 /* : Int */; -val* var37 /* : ToolContext */; -val* var38 /* : ToolContext */; -val* var39 /* : OptionBool */; -val* var40 /* : nullable Object */; -short int var41 /* : Bool */; -val* var42 /* : ToolContext */; -static val* varonce43; -val* var44 /* : String */; -char* var45 /* : NativeString */; -long var46 /* : Int */; -val* var47 /* : String */; +val* var37 /* : FlatString */; +long var38 /* : Int */; +short int var40 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +long var41 /* : Int */; +static val* varonce42; +val* var43 /* : String */; +char* var44 /* : NativeString */; +long var45 /* : Int */; +val* var46 /* : FlatString */; +val* var47 /* : Array[Object] */; long var48 /* : Int */; -long var49 /* : Int */; -val* var50 /* : Array[nullable Object] */; +val* var49 /* : NativeArray[Object] */; +val* var50 /* : Object */; +val* var51 /* : String */; +long var52 /* : Int */; +val* var53 /* : ToolContext */; +val* var55 /* : ToolContext */; +val* var56 /* : ToolContext */; +val* var58 /* : ToolContext */; +val* var59 /* : OptionBool */; +val* var61 /* : OptionBool */; +val* var62 /* : nullable Object */; +val* var64 /* : nullable Object */; +short int var65 /* : Bool */; +val* var66 /* : ToolContext */; +val* var68 /* : ToolContext */; +static val* varonce69; +val* var70 /* : String */; +char* var71 /* : NativeString */; +long var72 /* : Int */; +val* var73 /* : FlatString */; +long var74 /* : Int */; +long var75 /* : Int */; +val* var77 /* : Array[nullable Object] */; var_modules = p0; -var1 = ((long (*)(val*))(self->class->vft[COLOR_time__Object__get_time]))(self) /* get_time on */; +{ +{ /* Inline time#Object#get_time (self) on */ +var3 = kernel_Any_Any_get_time_0(self); +var1 = var3; +goto RET_LABEL2; +RET_LABEL2:(void)0; +} +} var_time0 = var1; -var2 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(self) /* toolcontext on */; +{ +{ /* Inline modelbuilder#ModelBuilder#toolcontext (self) on */ +var6 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var6 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +show_backtrace(1); +} +var4 = var6; +RET_LABEL5:(void)0; +} +} if (varonce) { -var3 = varonce; +var7 = varonce; } else { -var4 = "*** PARSE ***"; -var5 = 13; -var6 = string__NativeString__to_s_with_length(var4, var5); -var3 = var6; -varonce = var3; +var8 = "*** PARSE ***"; +var9 = 13; +var10 = string__NativeString__to_s_with_length(var8, var9); +var7 = var10; +varonce = var7; +} +var11 = 1; +{ +toolcontext__ToolContext__info(var4, var7, var11); /* Direct call toolcontext#ToolContext#info on */ +} +var12 = NEW_array__ArraySet(&type_array__ArraySetmmodule__MModule); +{ +array__ArraySet__init(var12); /* Direct call array#ArraySet#init on */ +} +var_mmodules = var12; +{ +var13 = ((val* (*)(val*))(var_modules->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_modules) /* iterator on */; } -var7 = 1; -((void (*)(val*, val*, long))(var2->class->vft[COLOR_toolcontext__ToolContext__info]))(var2, var3, var7) /* info on */; -var8 = NEW_array__ArraySet(&type_array__ArraySetmmodule__MModule); -((void (*)(val*))(var8->class->vft[COLOR_array__ArraySet__init]))(var8) /* init on */; -var_mmodules = var8; -var9 = ((val* (*)(val*))(var_modules->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_modules) /* iterator on */; for(;;) { -var10 = ((short int (*)(val*))(var9->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var9) /* is_ok on */; -if(!var10) break; -var11 = ((val* (*)(val*))(var9->class->vft[COLOR_abstract_collection__Iterator__item]))(var9) /* item on */; -var_a = var11; -var12 = ((val* (*)(val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__load_module]))(self, var_a) /* load_module on */; -var_nmodule = var12; -var13 = NULL; +{ +var14 = ((short int (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var13) /* is_ok on */; +} +if(!var14) break; +{ +var15 = ((val* (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__item]))(var13) /* item on */; +} +var_a = var15; +{ +var16 = modelbuilder__ModelBuilder__load_module(self, var_a); +} +var_nmodule = var16; +var17 = NULL; if (var_nmodule == NULL) { -var14 = 1; /* is null */ +var18 = 1; /* is null */ } else { -var14 = 0; /* arg is null but recv is not */ +var18 = 0; /* arg is null but recv is not */ } -if (var14){ +if (0) { +{ /* Inline kernel#Object#== (var_nmodule,var17) on */ +var_other = var17; +{ +{ /* Inline kernel#Object#is_same_instance (var_nmodule,var_other) on */ +var23 = var_nmodule == var_other; +var21 = var23; +goto RET_LABEL22; +RET_LABEL22:(void)0; +} +} +var19 = var21; +goto RET_LABEL20; +RET_LABEL20:(void)0; +} +var18 = var19; +} +if (var18){ goto CONTINUE_label; } else { } -var15 = ((val* (*)(val*))(var_nmodule->class->vft[COLOR_modelbuilder__AModule__mmodule]))(var_nmodule) /* mmodule on */; -if (var15 == NULL) { -fprintf(stderr, "Runtime error: %s", "Cast failed"); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 139); +{ +{ /* Inline modelbuilder#AModule#mmodule (var_nmodule) on */ +var26 = var_nmodule->attrs[COLOR_modelbuilder__AModule___mmodule].val; /* _mmodule on */ +var24 = var26; +RET_LABEL25:(void)0; +} +} +if (unlikely(var24 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 161); show_backtrace(1); } -((void (*)(val*, val*))(var_mmodules->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_mmodules, var15) /* add on */; +{ +array__ArraySet__add(var_mmodules, var24); /* Direct call array#ArraySet#add on */ +} CONTINUE_label: (void)0; -((void (*)(val*))(var9->class->vft[COLOR_abstract_collection__Iterator__next]))(var9) /* next on */; +{ +((void (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__next]))(var13) /* next on */; +} } BREAK_label: (void)0; -var16 = ((long (*)(val*))(self->class->vft[COLOR_time__Object__get_time]))(self) /* get_time on */; -var_time1 = var16; -var17 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(self) /* toolcontext on */; -if (varonce18) { -var19 = varonce18; -} else { -var20 = "*** END PARSE: "; -var21 = 15; -var22 = string__NativeString__to_s_with_length(var20, var21); -var19 = var22; -varonce18 = var19; -} -{ /* Inline kernel#Int#- (var_time1,var_time0) */ -var25 = var_time1 - var_time0; -var23 = var25; -goto RET_LABEL24; -RET_LABEL24:(void)0; +{ +{ /* Inline time#Object#get_time (self) on */ +var29 = kernel_Any_Any_get_time_0(self); +var27 = var29; +goto RET_LABEL28; +RET_LABEL28:(void)0; +} +} +var_time1 = var27; +{ +{ /* Inline modelbuilder#ModelBuilder#toolcontext (self) on */ +var32 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var32 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +show_backtrace(1); } -if (varonce26) { -var27 = varonce26; +var30 = var32; +RET_LABEL31:(void)0; +} +} +if (varonce33) { +var34 = varonce33; } else { -var28 = " ***"; -var29 = 4; -var30 = string__NativeString__to_s_with_length(var28, var29); -var27 = var30; -varonce26 = var27; +var35 = "*** END PARSE: "; +var36 = 15; +var37 = string__NativeString__to_s_with_length(var35, var36); +var34 = var37; +varonce33 = var34; +} +{ +{ /* Inline kernel#Int#- (var_time1,var_time0) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var40 = 1; /* easy isa OTHER*/ +if (unlikely(!var40)) { +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); +show_backtrace(1); +} +var41 = var_time1 - var_time0; +var38 = var41; +goto RET_LABEL39; +RET_LABEL39:(void)0; +} +} +if (varonce42) { +var43 = varonce42; +} else { +var44 = " ***"; +var45 = 4; +var46 = string__NativeString__to_s_with_length(var44, var45); +var43 = var46; +varonce42 = var43; +} +var47 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var47 = array_instance Array[Object] */ +var48 = 3; +var49 = NEW_array__NativeArray(var48, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var49)->values[0] = (val*) var34; +var50 = BOX_kernel__Int(var38); /* autobox from Int to Object */ +((struct instance_array__NativeArray*)var49)->values[1] = (val*) var50; +((struct instance_array__NativeArray*)var49)->values[2] = (val*) var43; +{ +((void (*)(val*, val*, long))(var47->class->vft[COLOR_array__Array__with_native]))(var47, var49, var48) /* with_native on */; +} +} +{ +var51 = ((val* (*)(val*))(var47->class->vft[COLOR_string__Object__to_s]))(var47) /* to_s on */; +} +var52 = 2; +{ +toolcontext__ToolContext__info(var30, var51, var52); /* Direct call toolcontext#ToolContext#info on */ +} +{ +{ /* Inline modelbuilder#ModelBuilder#toolcontext (self) on */ +var55 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var55 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +show_backtrace(1); +} +var53 = var55; +RET_LABEL54:(void)0; +} +} +{ +toolcontext__ToolContext__check_errors(var53); /* Direct call toolcontext#ToolContext#check_errors on */ +} +{ +{ /* Inline modelbuilder#ModelBuilder#toolcontext (self) on */ +var58 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var58 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +show_backtrace(1); +} +var56 = var58; +RET_LABEL57:(void)0; +} +} +{ +{ /* Inline modelbuilder#ToolContext#opt_only_parse (var56) on */ +var61 = var56->attrs[COLOR_modelbuilder__ToolContext___opt_only_parse].val; /* _opt_only_parse on */ +if (unlikely(var61 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_only_parse"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 43); +show_backtrace(1); +} +var59 = var61; +RET_LABEL60:(void)0; +} +} +{ +{ /* Inline opts#Option#value (var59) on */ +var64 = var59->attrs[COLOR_opts__Option___value].val; /* _value on */ +var62 = var64; +RET_LABEL63:(void)0; +} +} +var65 = ((struct instance_kernel__Bool*)var62)->value; /* autounbox from nullable Object to Bool */; +if (var65){ +{ +{ /* Inline modelbuilder#ModelBuilder#toolcontext (self) on */ +var68 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var68 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +show_backtrace(1); +} +var66 = var68; +RET_LABEL67:(void)0; +} +} +if (varonce69) { +var70 = varonce69; +} else { +var71 = "*** ONLY PARSE..."; +var72 = 17; +var73 = string__NativeString__to_s_with_length(var71, var72); +var70 = var73; +varonce69 = var70; +} +var74 = 1; +{ +toolcontext__ToolContext__info(var66, var70, var74); /* Direct call toolcontext#ToolContext#info on */ +} +var75 = 0; +{ +{ /* Inline kernel#Object#exit (self,var75) on */ +exit(var75); +RET_LABEL76:(void)0; +} } -var31 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var31 = array_instance Array[Object] */ -var32 = 3; -var33 = NEW_array__NativeArray(var32, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var33)->values[0] = (val*) var19; -var34 = BOX_kernel__Int(var23); /* autobox from Int to Object */ -((struct instance_array__NativeArray*)var33)->values[1] = (val*) var34; -((struct instance_array__NativeArray*)var33)->values[2] = (val*) var27; -((void (*)(val*, val*, long))(var31->class->vft[COLOR_array__Array__with_native]))(var31, var33, var32) /* with_native on */; -} -var35 = ((val* (*)(val*))(var31->class->vft[COLOR_string__Object__to_s]))(var31) /* to_s on */; -var36 = 2; -((void (*)(val*, val*, long))(var17->class->vft[COLOR_toolcontext__ToolContext__info]))(var17, var35, var36) /* info on */; -var37 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(self) /* toolcontext on */; -((void (*)(val*))(var37->class->vft[COLOR_toolcontext__ToolContext__check_errors]))(var37) /* check_errors on */; -var38 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(self) /* toolcontext on */; -var39 = ((val* (*)(val*))(var38->class->vft[COLOR_modelbuilder__ToolContext__opt_only_parse]))(var38) /* opt_only_parse on */; -var40 = ((val* (*)(val*))(var39->class->vft[COLOR_opts__Option__value]))(var39) /* value on */; -var41 = ((struct instance_kernel__Bool*)var40)->value; /* autounbox from nullable Object to Bool */; -if (var41){ -var42 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(self) /* toolcontext on */; -if (varonce43) { -var44 = varonce43; -} else { -var45 = "*** ONLY PARSE..."; -var46 = 17; -var47 = string__NativeString__to_s_with_length(var45, var46); -var44 = var47; -varonce43 = var44; -} -var48 = 1; -((void (*)(val*, val*, long))(var42->class->vft[COLOR_toolcontext__ToolContext__info]))(var42, var44, var48) /* info on */; -var49 = 0; -((void (*)(val*, long))(self->class->vft[COLOR_kernel__Object__exit]))(self, var49) /* exit on */; } else { } -var50 = ((val* (*)(val*))(var_mmodules->class->vft[COLOR_array__Collection__to_a]))(var_mmodules) /* to_a on */; -var = var50; +{ +var77 = array__Collection__to_a(var_mmodules); +} +var = var77; goto RET_LABEL; RET_LABEL:; return var; @@ -763,149 +1447,259 @@ val* var_anode /* var anode: ANode */; val* var_mmodule /* var mmodule: MModule */; val* var_name /* var name: String */; val* var1 /* : Model */; -val* var2 /* : nullable Array[MClass] */; +val* var3 /* : Model */; +val* var4 /* : nullable Array[MClass] */; val* var_classes /* var classes: nullable Array[MClass] */; -val* var3 /* : null */; -short int var4 /* : Bool */; val* var5 /* : null */; -val* var6 /* : null */; +short int var6 /* : Bool */; +short int var7 /* : Bool */; +val* var8 /* : null */; +val* var9 /* : null */; val* var_res /* var res: nullable MClass */; -val* var7 /* : Iterator[nullable Object] */; -short int var8 /* : Bool */; -val* var9 /* : nullable Object */; +val* var10 /* : ArrayIterator[nullable Object] */; +short int var11 /* : Bool */; +val* var12 /* : nullable Object */; val* var_mclass /* var mclass: MClass */; -val* var10 /* : POSetElement[MModule] */; -val* var11 /* : MModule */; -short int var12 /* : Bool */; -short int var13 /* : Bool */; -val* var14 /* : MModule */; -val* var15 /* : MVisibility */; -short int var16 /* : Bool */; -short int var17 /* : Bool */; -val* var18 /* : null */; +val* var13 /* : POSetElement[MModule] */; +val* var15 /* : POSetElement[MModule] */; +val* var16 /* : MModule */; +val* var18 /* : MModule */; short int var19 /* : Bool */; +short int var20 /* : Bool */; +val* var21 /* : MModule */; +val* var23 /* : MModule */; +val* var24 /* : MVisibility */; +val* var26 /* : MVisibility */; +short int var27 /* : Bool */; +short int var28 /* : Bool */; +val* var29 /* : null */; +short int var30 /* : Bool */; +short int var31 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var33 /* : Bool */; +short int var35 /* : Bool */; static val* varonce; -val* var20 /* : String */; -char* var21 /* : NativeString */; -long var22 /* : Int */; -val* var23 /* : String */; -static val* varonce24; -val* var25 /* : String */; -char* var26 /* : NativeString */; -long var27 /* : Int */; -val* var28 /* : String */; -val* var29 /* : String */; -static val* varonce30; -val* var31 /* : String */; -char* var32 /* : NativeString */; -long var33 /* : Int */; -val* var34 /* : String */; -val* var35 /* : String */; -val* var36 /* : Array[Object] */; -long var37 /* : Int */; -val* var38 /* : NativeArray[Object] */; -val* var39 /* : String */; -val* var40 /* : null */; -var_anode = p0; -var_mmodule = p1; -var_name = p2; -var1 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__model]))(self) /* model on */; -var2 = ((val* (*)(val*, val*))(var1->class->vft[COLOR_model__Model__get_mclasses_by_name]))(var1, var_name) /* get_mclasses_by_name on */; -var_classes = var2; -var3 = NULL; -if (var_classes == NULL) { -var4 = 1; /* is null */ -} else { -var4 = 0; /* arg is null but recv is not */ -} -if (var4){ +val* var36 /* : String */; +char* var37 /* : NativeString */; +long var38 /* : Int */; +val* var39 /* : FlatString */; +static val* varonce40; +val* var41 /* : String */; +char* var42 /* : NativeString */; +long var43 /* : Int */; +val* var44 /* : FlatString */; +val* var45 /* : String */; +static val* varonce46; +val* var47 /* : String */; +char* var48 /* : NativeString */; +long var49 /* : Int */; +val* var50 /* : FlatString */; +val* var51 /* : String */; +val* var52 /* : Array[Object] */; +long var53 /* : Int */; +val* var54 /* : NativeArray[Object] */; +val* var55 /* : String */; +val* var56 /* : null */; +var_anode = p0; +var_mmodule = p1; +var_name = p2; +{ +{ /* Inline modelbuilder#ModelBuilder#model (self) on */ +var3 = self->attrs[COLOR_modelbuilder__ModelBuilder___model].val; /* _model on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 98); +show_backtrace(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} +} +{ +var4 = model__Model__get_mclasses_by_name(var1, var_name); +} +var_classes = var4; var5 = NULL; -var = var5; +if (var_classes == NULL) { +var6 = 1; /* is null */ +} else { +var6 = 0; /* arg is null but recv is not */ +} +if (0) { +var7 = abstract_collection__SequenceRead___61d_61d(var_classes, var5); +var6 = var7; +} +if (var6){ +var8 = NULL; +var = var8; goto RET_LABEL; } else { } -var6 = NULL; -var_res = var6; -var7 = ((val* (*)(val*))(var_classes->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_classes) /* iterator on */; +var9 = NULL; +var_res = var9; +{ +var10 = array__AbstractArrayRead__iterator(var_classes); +} for(;;) { -var8 = ((short int (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var7) /* is_ok on */; -if(!var8) break; -var9 = ((val* (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__item]))(var7) /* item on */; -var_mclass = var9; -var10 = ((val* (*)(val*))(var_mmodule->class->vft[COLOR_mmodule__MModule__in_importation]))(var_mmodule) /* in_importation on */; -var11 = ((val* (*)(val*))(var_mclass->class->vft[COLOR_model__MClass__intro_mmodule]))(var_mclass) /* intro_mmodule on */; -var12 = ((short int (*)(val*, val*))(var10->class->vft[COLOR_poset__POSetElement___60d_61d]))(var10, var11) /* <= on */; -var13 = !var12; -if (var13){ +{ +var11 = array__ArrayIterator__is_ok(var10); +} +if(!var11) break; +{ +var12 = array__ArrayIterator__item(var10); +} +var_mclass = var12; +{ +{ /* Inline mmodule#MModule#in_importation (var_mmodule) on */ +var15 = var_mmodule->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on */ +if (unlikely(var15 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation"); +PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 101); +show_backtrace(1); +} +var13 = var15; +RET_LABEL14:(void)0; +} +} +{ +{ /* Inline model#MClass#intro_mmodule (var_mclass) on */ +var18 = var_mclass->attrs[COLOR_model__MClass___intro_mmodule].val; /* _intro_mmodule on */ +if (unlikely(var18 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule"); +PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 335); +show_backtrace(1); +} +var16 = var18; +RET_LABEL17:(void)0; +} +} +{ +var19 = poset__POSetElement___60d_61d(var13, var16); +} +var20 = !var19; +if (var20){ goto CONTINUE_label; } else { } -var14 = ((val* (*)(val*))(var_mclass->class->vft[COLOR_model__MClass__intro_mmodule]))(var_mclass) /* intro_mmodule on */; -var15 = ((val* (*)(val*))(var_mclass->class->vft[COLOR_model__MClass__visibility]))(var_mclass) /* visibility on */; -var16 = ((short int (*)(val*, val*, val*))(var_mmodule->class->vft[COLOR_mmodule__MModule__is_visible]))(var_mmodule, var14, var15) /* is_visible on */; -var17 = !var16; -if (var17){ +{ +{ /* Inline model#MClass#intro_mmodule (var_mclass) on */ +var23 = var_mclass->attrs[COLOR_model__MClass___intro_mmodule].val; /* _intro_mmodule on */ +if (unlikely(var23 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule"); +PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 335); +show_backtrace(1); +} +var21 = var23; +RET_LABEL22:(void)0; +} +} +{ +{ /* Inline model#MClass#visibility (var_mclass) on */ +var26 = var_mclass->attrs[COLOR_model__MClass___visibility].val; /* _visibility on */ +if (unlikely(var26 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility"); +PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 359); +show_backtrace(1); +} +var24 = var26; +RET_LABEL25:(void)0; +} +} +{ +var27 = mmodule__MModule__is_visible(var_mmodule, var21, var24); +} +var28 = !var27; +if (var28){ goto CONTINUE_label; } else { } -var18 = NULL; +var29 = NULL; if (var_res == NULL) { -var19 = 1; /* is null */ +var30 = 1; /* is null */ } else { -var19 = 0; /* arg is null but recv is not */ +var30 = 0; /* arg is null but recv is not */ +} +if (0) { +{ /* Inline kernel#Object#== (var_res,var29) on */ +var_other = var29; +{ +{ /* Inline kernel#Object#is_same_instance (var_res,var_other) on */ +var35 = var_res == var_other; +var33 = var35; +goto RET_LABEL34; +RET_LABEL34:(void)0; } -if (var19){ +} +var31 = var33; +goto RET_LABEL32; +RET_LABEL32:(void)0; +} +var30 = var31; +} +if (var30){ var_res = var_mclass; } else { if (varonce) { -var20 = varonce; +var36 = varonce; } else { -var21 = "Ambigous class name \'"; -var22 = 21; -var23 = string__NativeString__to_s_with_length(var21, var22); -var20 = var23; -varonce = var20; +var37 = "Ambigous class name \'"; +var38 = 21; +var39 = string__NativeString__to_s_with_length(var37, var38); +var36 = var39; +varonce = var36; } -if (varonce24) { -var25 = varonce24; +if (varonce40) { +var41 = varonce40; } else { -var26 = "\'; conflict between "; -var27 = 20; -var28 = string__NativeString__to_s_with_length(var26, var27); -var25 = var28; -varonce24 = var25; +var42 = "\'; conflict between "; +var43 = 20; +var44 = string__NativeString__to_s_with_length(var42, var43); +var41 = var44; +varonce40 = var41; } -var29 = ((val* (*)(val*))(var_mclass->class->vft[COLOR_model__MClass__full_name]))(var_mclass) /* full_name on */; -if (varonce30) { -var31 = varonce30; +{ +var45 = model__MClass__full_name(var_mclass); +} +if (varonce46) { +var47 = varonce46; } else { -var32 = " and "; -var33 = 5; -var34 = string__NativeString__to_s_with_length(var32, var33); -var31 = var34; -varonce30 = var31; -} -var35 = ((val* (*)(val*))(var_res->class->vft[COLOR_model__MClass__full_name]))(var_res) /* full_name on */; -var36 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var36 = array_instance Array[Object] */ -var37 = 6; -var38 = NEW_array__NativeArray(var37, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var38)->values[0] = (val*) var20; -((struct instance_array__NativeArray*)var38)->values[1] = (val*) var_name; -((struct instance_array__NativeArray*)var38)->values[2] = (val*) var25; -((struct instance_array__NativeArray*)var38)->values[3] = (val*) var29; -((struct instance_array__NativeArray*)var38)->values[4] = (val*) var31; -((struct instance_array__NativeArray*)var38)->values[5] = (val*) var35; -((void (*)(val*, val*, long))(var36->class->vft[COLOR_array__Array__with_native]))(var36, var38, var37) /* with_native on */; -} -var39 = ((val* (*)(val*))(var36->class->vft[COLOR_string__Object__to_s]))(var36) /* to_s on */; -((void (*)(val*, val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(self, var_anode, var39) /* error on */; -var40 = NULL; -var = var40; +var48 = " and "; +var49 = 5; +var50 = string__NativeString__to_s_with_length(var48, var49); +var47 = var50; +varonce46 = var47; +} +{ +var51 = model__MClass__full_name(var_res); +} +var52 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var52 = array_instance Array[Object] */ +var53 = 6; +var54 = NEW_array__NativeArray(var53, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var54)->values[0] = (val*) var36; +((struct instance_array__NativeArray*)var54)->values[1] = (val*) var_name; +((struct instance_array__NativeArray*)var54)->values[2] = (val*) var41; +((struct instance_array__NativeArray*)var54)->values[3] = (val*) var45; +((struct instance_array__NativeArray*)var54)->values[4] = (val*) var47; +((struct instance_array__NativeArray*)var54)->values[5] = (val*) var51; +{ +((void (*)(val*, val*, long))(var52->class->vft[COLOR_array__Array__with_native]))(var52, var54, var53) /* with_native on */; +} +} +{ +var55 = ((val* (*)(val*))(var52->class->vft[COLOR_string__Object__to_s]))(var52) /* to_s on */; +} +{ +modelbuilder__ModelBuilder__error(self, var_anode, var55); /* Direct call modelbuilder#ModelBuilder#error on */ +} +var56 = NULL; +var = var56; goto RET_LABEL; } CONTINUE_label: (void)0; -((void (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__next]))(var7) /* next on */; +{ +array__ArrayIterator__next(var10); /* Direct call array#ArrayIterator#next on */ +} } BREAK_label: (void)0; var = var_res; @@ -930,293 +1724,817 @@ val* var_mmodule /* var mmodule: MModule */; val* var_mtype /* var mtype: MType */; val* var_name /* var name: String */; val* var1 /* : Model */; -val* var2 /* : nullable Array[MProperty] */; +val* var3 /* : Model */; +val* var4 /* : nullable Array[MProperty] */; val* var_props /* var props: nullable Array[MProperty] */; -val* var3 /* : null */; -short int var4 /* : Bool */; val* var5 /* : null */; -val* var6 /* : HashMap3[MModule, MType, String, nullable MProperty] */; -val* var7 /* : nullable Object */; -val* var_cache /* var cache: nullable MProperty */; +short int var6 /* : Bool */; +short int var7 /* : Bool */; val* var8 /* : null */; -short int var9 /* : Bool */; -val* var10 /* : null */; +val* var9 /* : HashMap3[MModule, MType, String, nullable MProperty] */; +val* var11 /* : HashMap3[MModule, MType, String, nullable MProperty] */; +val* var12 /* : nullable Object */; +val* var_cache /* var cache: nullable MProperty */; +val* var13 /* : null */; +short int var14 /* : Bool */; +short int var15 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var17 /* : Bool */; +short int var18 /* : Bool */; +short int var19 /* : Bool */; +val* var20 /* : null */; val* var_res /* var res: nullable MProperty */; -val* var11 /* : null */; +val* var21 /* : null */; val* var_ress /* var ress: nullable Array[MProperty] */; -val* var12 /* : Iterator[nullable Object] */; -short int var13 /* : Bool */; -val* var14 /* : nullable Object */; -val* var_mprop /* var mprop: MProperty */; -short int var15 /* : Bool */; -short int var16 /* : Bool */; -val* var17 /* : MClassDef */; -val* var18 /* : MModule */; -val* var19 /* : MVisibility */; -short int var20 /* : Bool */; -short int var21 /* : Bool */; -val* var22 /* : null */; +val* var22 /* : ArrayIterator[nullable Object] */; short int var23 /* : Bool */; -val* var24 /* : MClassDef */; -val* var25 /* : MClassType */; -val* var_restype /* var restype: MClassType */; -val* var26 /* : MClassDef */; -val* var27 /* : MClassType */; -val* var_mproptype /* var mproptype: MClassType */; -val* var28 /* : null */; -short int var29 /* : Bool */; -val* var30 /* : null */; -short int var31 /* : Bool */; -val* var32 /* : null */; -short int var33 /* : Bool */; -val* var34 /* : Array[MProperty] */; -val* var35 /* : null */; +val* var24 /* : nullable Object */; +val* var_mprop /* var mprop: MProperty */; +short int var25 /* : Bool */; +short int var26 /* : Bool */; +val* var27 /* : MClassDef */; +val* var29 /* : MClassDef */; +val* var30 /* : MModule */; +val* var32 /* : MModule */; +val* var33 /* : MVisibility */; +val* var35 /* : MVisibility */; short int var36 /* : Bool */; -val* var37 /* : MClassDef */; -val* var38 /* : MClassType */; -val* var_restype39 /* var restype: MClassType */; -val* var40 /* : Iterator[nullable Object] */; -short int var41 /* : Bool */; -val* var42 /* : nullable Object */; -val* var_mprop43 /* var mprop: MProperty */; -val* var44 /* : MClassDef */; -val* var45 /* : MClassType */; -val* var_mproptype46 /* var mproptype: MClassType */; -val* var47 /* : null */; +short int var37 /* : Bool */; +val* var38 /* : null */; +short int var39 /* : Bool */; +short int var40 /* : Bool */; +val* var_other42 /* var other: nullable Object */; +short int var43 /* : Bool */; +short int var45 /* : Bool */; +short int var46 /* : Bool */; +short int var47 /* : Bool */; short int var48 /* : Bool */; short int var49 /* : Bool */; -static val* varonce; -val* var50 /* : String */; -char* var51 /* : NativeString */; -long var52 /* : Int */; -val* var53 /* : String */; -static val* varonce54; -val* var55 /* : String */; -char* var56 /* : NativeString */; -long var57 /* : Int */; -val* var58 /* : String */; -static val* varonce59; -val* var60 /* : String */; -char* var61 /* : NativeString */; -long var62 /* : Int */; -val* var63 /* : String */; -val* var64 /* : String */; -static val* varonce65; -val* var66 /* : String */; -char* var67 /* : NativeString */; -long var68 /* : Int */; -val* var69 /* : String */; -val* var70 /* : String */; -val* var71 /* : Array[Object] */; -long var72 /* : Int */; -val* var73 /* : NativeArray[Object] */; -val* var74 /* : String */; +int cltype; +int idtype; +short int var_ /* var : Bool */; +short int var50 /* : Bool */; +int cltype51; +int idtype52; +short int var_53 /* var : Bool */; +short int var54 /* : Bool */; +short int var56 /* : Bool */; +short int var_57 /* var : Bool */; +short int var58 /* : Bool */; +short int var60 /* : Bool */; +val* var61 /* : MClassDef */; +val* var63 /* : MClassDef */; +val* var64 /* : MClassType */; +val* var66 /* : MClassType */; +val* var_restype /* var restype: MClassType */; +val* var67 /* : MClassDef */; +val* var69 /* : MClassDef */; +val* var70 /* : MClassType */; +val* var72 /* : MClassType */; +val* var_mproptype /* var mproptype: MClassType */; +val* var73 /* : null */; +short int var74 /* : Bool */; val* var75 /* : null */; -val* var77 /* : HashMap3[MModule, MType, String, nullable MProperty] */; +short int var76 /* : Bool */; +short int var77 /* : Bool */; +val* var78 /* : Array[MProperty] */; +short int var79 /* : Bool */; +short int var80 /* : Bool */; +val* var81 /* : null */; +short int var82 /* : Bool */; +short int var83 /* : Bool */; +short int var85 /* : Bool */; +short int var86 /* : Bool */; +short int var87 /* : Bool */; +short int var_88 /* var : Bool */; +short int var89 /* : Bool */; +int cltype90; +int idtype91; +short int var_92 /* var : Bool */; +short int var93 /* : Bool */; +short int var95 /* : Bool */; +val* var96 /* : MClassDef */; +val* var98 /* : MClassDef */; +val* var99 /* : MClassType */; +val* var101 /* : MClassType */; +val* var_restype102 /* var restype: MClassType */; +val* var103 /* : Array[MProperty] */; +val* var_ress2 /* var ress2: Array[MProperty] */; +val* var104 /* : ArrayIterator[nullable Object] */; +short int var105 /* : Bool */; +val* var106 /* : nullable Object */; +val* var_mprop107 /* var mprop: MProperty */; +val* var108 /* : MClassDef */; +val* var110 /* : MClassDef */; +val* var111 /* : MClassType */; +val* var113 /* : MClassType */; +val* var_mproptype114 /* var mproptype: MClassType */; +val* var115 /* : null */; +short int var116 /* : Bool */; +short int var117 /* : Bool */; +short int var118 /* : Bool */; +short int var119 /* : Bool */; +int cltype120; +int idtype121; +short int var122 /* : Bool */; +short int var_123 /* var : Bool */; +short int var124 /* : Bool */; +short int var126 /* : Bool */; +short int var127 /* : Bool */; +short int var129 /* : Bool */; +val* var130 /* : null */; +val* var131 /* : null */; +short int var132 /* : Bool */; +short int var133 /* : Bool */; +short int var135 /* : Bool */; +short int var136 /* : Bool */; +short int var137 /* : Bool */; +long var138 /* : Int */; +long var139 /* : Int */; +short int var140 /* : Bool */; +short int var142 /* : Bool */; +int cltype143; +int idtype144; +const char* var_class_name; +short int var145 /* : Bool */; +val* var146 /* : Array[String] */; +val* var_s /* var s: Array[String] */; +val* var147 /* : ArrayIterator[nullable Object] */; +short int var148 /* : Bool */; +val* var149 /* : nullable Object */; +val* var_mprop150 /* var mprop: MProperty */; +val* var151 /* : String */; +static val* varonce; +val* var153 /* : String */; +char* var154 /* : NativeString */; +long var155 /* : Int */; +val* var156 /* : FlatString */; +static val* varonce157; +val* var158 /* : String */; +char* var159 /* : NativeString */; +long var160 /* : Int */; +val* var161 /* : FlatString */; +static val* varonce162; +val* var163 /* : String */; +char* var164 /* : NativeString */; +long var165 /* : Int */; +val* var166 /* : FlatString */; +static val* varonce167; +val* var168 /* : String */; +char* var169 /* : NativeString */; +long var170 /* : Int */; +val* var171 /* : FlatString */; +val* var172 /* : String */; +val* var173 /* : Array[Object] */; +long var174 /* : Int */; +val* var175 /* : NativeArray[Object] */; +val* var176 /* : String */; +val* var177 /* : HashMap3[MModule, MType, String, nullable MProperty] */; +val* var179 /* : HashMap3[MModule, MType, String, nullable MProperty] */; var_anode = p0; var_mmodule = p1; var_mtype = p2; var_name = p3; -var1 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__model]))(self) /* model on */; -var2 = ((val* (*)(val*, val*))(var1->class->vft[COLOR_model__Model__get_mproperties_by_name]))(var1, var_name) /* get_mproperties_by_name on */; -var_props = var2; -var3 = NULL; +{ +{ /* Inline modelbuilder#ModelBuilder#model (self) on */ +var3 = self->attrs[COLOR_modelbuilder__ModelBuilder___model].val; /* _model on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 98); +show_backtrace(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} +} +{ +var4 = model__Model__get_mproperties_by_name(var1, var_name); +} +var_props = var4; +var5 = NULL; if (var_props == NULL) { -var4 = 1; /* is null */ +var6 = 1; /* is null */ } else { -var4 = 0; /* arg is null but recv is not */ +var6 = 0; /* arg is null but recv is not */ } -if (var4){ -var5 = NULL; -var = var5; +if (0) { +var7 = abstract_collection__SequenceRead___61d_61d(var_props, var5); +var6 = var7; +} +if (var6){ +var8 = NULL; +var = var8; goto RET_LABEL; } else { } -var6 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name2_cache]))(self) /* try_get_mproperty_by_name2_cache on */; -var7 = ((val* (*)(val*, val*, val*, val*))(var6->class->vft[COLOR_more_collections__HashMap3___91d_93d]))(var6, var_mmodule, var_mtype, var_name) /* [] on */; -var_cache = var7; -var8 = NULL; +{ +{ /* Inline modelbuilder#ModelBuilder#try_get_mproperty_by_name2_cache (self) on */ +var11 = self->attrs[COLOR_modelbuilder__ModelBuilder___try_get_mproperty_by_name2_cache].val; /* _try_get_mproperty_by_name2_cache on */ +if (unlikely(var11 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_get_mproperty_by_name2_cache"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 280); +show_backtrace(1); +} +var9 = var11; +RET_LABEL10:(void)0; +} +} +{ +var12 = more_collections__HashMap3___91d_93d(var9, var_mmodule, var_mtype, var_name); +} +var_cache = var12; +var13 = NULL; if (var_cache == NULL) { -var9 = 0; /* is null */ +var14 = 0; /* is null */ } else { -var9 = 1; /* arg is null and recv is not */ +var14 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_cache,var13) on */ +var_other = var13; +{ +var18 = ((short int (*)(val*, val*))(var_cache->class->vft[COLOR_kernel__Object___61d_61d]))(var_cache, var_other) /* == on */; +var17 = var18; +} +var19 = !var17; +var15 = var19; +goto RET_LABEL16; +RET_LABEL16:(void)0; } -if (var9){ +var14 = var15; +} +if (var14){ var = var_cache; goto RET_LABEL; } else { } -var10 = NULL; -var_res = var10; -var11 = NULL; -var_ress = var11; -var12 = ((val* (*)(val*))(var_props->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_props) /* iterator on */; +var20 = NULL; +var_res = var20; +var21 = NULL; +var_ress = var21; +{ +var22 = array__AbstractArrayRead__iterator(var_props); +} for(;;) { -var13 = ((short int (*)(val*))(var12->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var12) /* is_ok on */; -if(!var13) break; -var14 = ((val* (*)(val*))(var12->class->vft[COLOR_abstract_collection__Iterator__item]))(var12) /* item on */; -var_mprop = var14; -var15 = ((short int (*)(val*, val*, val*))(var_mtype->class->vft[COLOR_model__MType__has_mproperty]))(var_mtype, var_mmodule, var_mprop) /* has_mproperty on */; -var16 = !var15; -if (var16){ +{ +var23 = array__ArrayIterator__is_ok(var22); +} +if(!var23) break; +{ +var24 = array__ArrayIterator__item(var22); +} +var_mprop = var24; +{ +var25 = model__MType__has_mproperty(var_mtype, var_mmodule, var_mprop); +} +var26 = !var25; +if (var26){ goto CONTINUE_label; } else { } -var17 = ((val* (*)(val*))(var_mprop->class->vft[COLOR_model__MProperty__intro_mclassdef]))(var_mprop) /* intro_mclassdef on */; -var18 = ((val* (*)(val*))(var17->class->vft[COLOR_model__MClassDef__mmodule]))(var17) /* mmodule on */; -var19 = ((val* (*)(val*))(var_mprop->class->vft[COLOR_model__MProperty__visibility]))(var_mprop) /* visibility on */; -var20 = ((short int (*)(val*, val*, val*))(var_mmodule->class->vft[COLOR_mmodule__MModule__is_visible]))(var_mmodule, var18, var19) /* is_visible on */; -var21 = !var20; -if (var21){ +{ +{ /* Inline model#MProperty#intro_mclassdef (var_mprop) on */ +var29 = var_mprop->attrs[COLOR_model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on */ +if (unlikely(var29 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef"); +PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1602); +show_backtrace(1); +} +var27 = var29; +RET_LABEL28:(void)0; +} +} +{ +{ /* Inline model#MClassDef#mmodule (var27) on */ +var32 = var27->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on */ +if (unlikely(var32 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); +PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471); +show_backtrace(1); +} +var30 = var32; +RET_LABEL31:(void)0; +} +} +{ +{ /* Inline model#MProperty#visibility (var_mprop) on */ +var35 = var_mprop->attrs[COLOR_model__MProperty___visibility].val; /* _visibility on */ +if (unlikely(var35 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility"); +PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1617); +show_backtrace(1); +} +var33 = var35; +RET_LABEL34:(void)0; +} +} +{ +var36 = mmodule__MModule__is_visible(var_mmodule, var30, var33); +} +var37 = !var36; +if (var37){ goto CONTINUE_label; } else { } -var22 = NULL; +var38 = NULL; if (var_res == NULL) { -var23 = 1; /* is null */ +var39 = 1; /* is null */ } else { -var23 = 0; /* arg is null but recv is not */ +var39 = 0; /* arg is null but recv is not */ } -if (var23){ +if (0) { +{ /* Inline kernel#Object#== (var_res,var38) on */ +var_other42 = var38; +{ +{ /* Inline kernel#Object#is_same_instance (var_res,var_other42) on */ +var45 = var_res == var_other42; +var43 = var45; +goto RET_LABEL44; +RET_LABEL44:(void)0; +} +} +var40 = var43; +goto RET_LABEL41; +RET_LABEL41:(void)0; +} +var39 = var40; +} +if (var39){ var_res = var_mprop; +goto CONTINUE_label; } else { -var24 = ((val* (*)(val*))(var_res->class->vft[COLOR_model__MProperty__intro_mclassdef]))(var_res) /* intro_mclassdef on */; -var25 = ((val* (*)(val*))(var24->class->vft[COLOR_model__MClassDef__bound_mtype]))(var24) /* bound_mtype on */; -var_restype = var25; -var26 = ((val* (*)(val*))(var_mprop->class->vft[COLOR_model__MProperty__intro_mclassdef]))(var_mprop) /* intro_mclassdef on */; -var27 = ((val* (*)(val*))(var26->class->vft[COLOR_model__MClassDef__bound_mtype]))(var26) /* bound_mtype on */; -var_mproptype = var27; -var28 = NULL; -var29 = ((short int (*)(val*, val*, val*, val*))(var_restype->class->vft[COLOR_model__MType__is_subtype]))(var_restype, var_mmodule, var28, var_mproptype) /* is_subtype on */; -if (var29){ -} else { -var30 = NULL; -var31 = ((short int (*)(val*, val*, val*, val*))(var_mproptype->class->vft[COLOR_model__MType__is_subtype]))(var_mproptype, var_mmodule, var30, var_restype) /* is_subtype on */; -if (var31){ -var_res = var_mprop; +} +/* isa MMethod */ +cltype = type_model__MMethod.color; +idtype = type_model__MMethod.id; +if(cltype >= var_res->type->table_size) { +var49 = 0; } else { -var32 = NULL; -if (var_ress == NULL) { -var33 = 1; /* is null */ +var49 = var_res->type->type_table[cltype] == idtype; +} +var_ = var49; +if (var49){ +/* isa MMethod */ +cltype51 = type_model__MMethod.color; +idtype52 = type_model__MMethod.id; +if(cltype51 >= var_mprop->type->table_size) { +var50 = 0; } else { -var33 = 0; /* arg is null but recv is not */ +var50 = var_mprop->type->type_table[cltype51] == idtype52; } -if (var33){ -var34 = NEW_array__Array(&type_array__Arraymodel__MProperty); -((void (*)(val*))(var34->class->vft[COLOR_array__Array__init]))(var34) /* init on */; -var_ress = var34; +var48 = var50; } else { +var48 = var_; +} +var_53 = var48; +if (var48){ +{ +{ /* Inline model#MMethod#is_init (var_res) on */ +var56 = var_res->attrs[COLOR_model__MMethod___is_init].s; /* _is_init on */ +var54 = var56; +RET_LABEL55:(void)0; } -((void (*)(val*, val*))(var_ress->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_ress, var_mprop) /* add on */; } +var47 = var54; +} else { +var47 = var_53; } +var_57 = var47; +if (var47){ +{ +{ /* Inline model#MMethod#is_init (var_mprop) on */ +var60 = var_mprop->attrs[COLOR_model__MMethod___is_init].s; /* _is_init on */ +var58 = var60; +RET_LABEL59:(void)0; } -CONTINUE_label: (void)0; -((void (*)(val*))(var12->class->vft[COLOR_abstract_collection__Iterator__next]))(var12) /* next on */; } -BREAK_label: (void)0; -var35 = NULL; -if (var_ress == NULL) { -var36 = 0; /* is null */ +var46 = var58; } else { -var36 = 1; /* arg is null and recv is not */ +var46 = var_57; } -if (var36){ -if (var_res == NULL) { -fprintf(stderr, "Runtime error: %s", "Reciever is null"); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 217); +if (var46){ +{ +{ /* Inline model#MProperty#intro_mclassdef (var_res) on */ +var63 = var_res->attrs[COLOR_model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on */ +if (unlikely(var63 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef"); +PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1602); show_backtrace(1); -} else { -var37 = ((val* (*)(val*))(var_res->class->vft[COLOR_model__MProperty__intro_mclassdef]))(var_res) /* intro_mclassdef on */; } -var38 = ((val* (*)(val*))(var37->class->vft[COLOR_model__MClassDef__bound_mtype]))(var37) /* bound_mtype on */; -var_restype39 = var38; -var40 = ((val* (*)(val*))(var_ress->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_ress) /* iterator on */; -for(;;) { -var41 = ((short int (*)(val*))(var40->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var40) /* is_ok on */; -if(!var41) break; -var42 = ((val* (*)(val*))(var40->class->vft[COLOR_abstract_collection__Iterator__item]))(var40) /* item on */; -var_mprop43 = var42; -var44 = ((val* (*)(val*))(var_mprop43->class->vft[COLOR_model__MProperty__intro_mclassdef]))(var_mprop43) /* intro_mclassdef on */; -var45 = ((val* (*)(val*))(var44->class->vft[COLOR_model__MClassDef__bound_mtype]))(var44) /* bound_mtype on */; -var_mproptype46 = var45; -var47 = NULL; -var48 = ((short int (*)(val*, val*, val*, val*))(var_restype39->class->vft[COLOR_model__MType__is_subtype]))(var_restype39, var_mmodule, var47, var_mproptype46) /* is_subtype on */; -var49 = !var48; -if (var49){ -if (varonce) { -var50 = varonce; -} else { -var51 = "Ambigous property name \'"; -var52 = 24; -var53 = string__NativeString__to_s_with_length(var51, var52); -var50 = var53; -varonce = var50; +var61 = var63; +RET_LABEL62:(void)0; +} +} +{ +{ /* Inline model#MClassDef#bound_mtype (var61) on */ +var66 = var61->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var66 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); +PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477); +show_backtrace(1); +} +var64 = var66; +RET_LABEL65:(void)0; +} +} +var_restype = var64; +{ +{ /* Inline model#MProperty#intro_mclassdef (var_mprop) on */ +var69 = var_mprop->attrs[COLOR_model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on */ +if (unlikely(var69 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef"); +PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1602); +show_backtrace(1); +} +var67 = var69; +RET_LABEL68:(void)0; } -if (varonce54) { -var55 = varonce54; -} else { -var56 = "\' for "; -var57 = 6; -var58 = string__NativeString__to_s_with_length(var56, var57); -var55 = var58; -varonce54 = var55; } -if (varonce59) { -var60 = varonce59; +{ +{ /* Inline model#MClassDef#bound_mtype (var67) on */ +var72 = var67->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var72 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); +PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477); +show_backtrace(1); +} +var70 = var72; +RET_LABEL71:(void)0; +} +} +var_mproptype = var70; +var73 = NULL; +{ +var74 = model__MType__is_subtype(var_mproptype, var_mmodule, var73, var_restype); +} +if (var74){ +var_res = var_mprop; +goto CONTINUE_label; } else { -var61 = "; conflict between "; -var62 = 19; -var63 = string__NativeString__to_s_with_length(var61, var62); -var60 = var63; -varonce59 = var60; } -var64 = ((val* (*)(val*))(var_mprop43->class->vft[COLOR_model__MProperty__full_name]))(var_mprop43) /* full_name on */; -if (varonce65) { -var66 = varonce65; } else { -var67 = " and "; -var68 = 5; -var69 = string__NativeString__to_s_with_length(var67, var68); -var66 = var69; -varonce65 = var66; } -if (var_res == NULL) { -fprintf(stderr, "Runtime error: %s", "Reciever is null"); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 221); -show_backtrace(1); -} else { -var70 = ((val* (*)(val*))(var_res->class->vft[COLOR_model__MProperty__full_name]))(var_res) /* full_name on */; -} -var71 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var71 = array_instance Array[Object] */ -var72 = 8; -var73 = NEW_array__NativeArray(var72, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var73)->values[0] = (val*) var50; -((struct instance_array__NativeArray*)var73)->values[1] = (val*) var_name; -((struct instance_array__NativeArray*)var73)->values[2] = (val*) var55; -((struct instance_array__NativeArray*)var73)->values[3] = (val*) var_mtype; -((struct instance_array__NativeArray*)var73)->values[4] = (val*) var60; -((struct instance_array__NativeArray*)var73)->values[5] = (val*) var64; -((struct instance_array__NativeArray*)var73)->values[6] = (val*) var66; -((struct instance_array__NativeArray*)var73)->values[7] = (val*) var70; -((void (*)(val*, val*, long))(var71->class->vft[COLOR_array__Array__with_native]))(var71, var73, var72) /* with_native on */; -} -var74 = ((val* (*)(val*))(var71->class->vft[COLOR_string__Object__to_s]))(var71) /* to_s on */; -((void (*)(val*, val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(self, var_anode, var74) /* error on */; var75 = NULL; -var = var75; -goto RET_LABEL; +if (var_ress == NULL) { +var76 = 1; /* is null */ } else { +var76 = 0; /* arg is null but recv is not */ } -CONTINUE_label76: (void)0; -((void (*)(val*))(var40->class->vft[COLOR_abstract_collection__Iterator__next]))(var40) /* next on */; +if (0) { +var77 = abstract_collection__SequenceRead___61d_61d(var_ress, var75); +var76 = var77; } -BREAK_label76: (void)0; -} else { +if (var76){ +var78 = NEW_array__Array(&type_array__Arraymodel__MProperty); +{ +array__Array__init(var78); /* Direct call array#Array#init on */ +} +var_ress = var78; +{ +array__Array__add(var_ress, var_res); /* Direct call array#Array#add on */ +} +} else { +} +{ +array__Array__add(var_ress, var_mprop); /* Direct call array#Array#add on */ +} +CONTINUE_label: (void)0; +{ +array__ArrayIterator__next(var22); /* Direct call array#ArrayIterator#next on */ +} +} +BREAK_label: (void)0; +var81 = NULL; +if (var_ress == NULL) { +var82 = 0; /* is null */ +} else { +var82 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_ress,var81) on */ +var_other = var81; +{ +var86 = ((short int (*)(val*, val*))(var_ress->class->vft[COLOR_kernel__Object___61d_61d]))(var_ress, var_other) /* == on */; +var85 = var86; +} +var87 = !var85; +var83 = var87; +goto RET_LABEL84; +RET_LABEL84:(void)0; +} +var82 = var83; +} +var_88 = var82; +if (var82){ +/* isa MMethod */ +cltype90 = type_model__MMethod.color; +idtype91 = type_model__MMethod.id; +if(var_res == NULL) { +var89 = 0; +} else { +if(cltype90 >= var_res->type->table_size) { +var89 = 0; +} else { +var89 = var_res->type->type_table[cltype90] == idtype91; +} +} +var80 = var89; +} else { +var80 = var_88; +} +var_92 = var80; +if (var80){ +{ +{ /* Inline model#MMethod#is_init (var_res) on */ +var95 = var_res->attrs[COLOR_model__MMethod___is_init].s; /* _is_init on */ +var93 = var95; +RET_LABEL94:(void)0; +} +} +var79 = var93; +} else { +var79 = var_92; +} +if (var79){ +{ +{ /* Inline model#MProperty#intro_mclassdef (var_res) on */ +var98 = var_res->attrs[COLOR_model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on */ +if (unlikely(var98 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef"); +PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1602); +show_backtrace(1); +} +var96 = var98; +RET_LABEL97:(void)0; +} +} +{ +{ /* Inline model#MClassDef#bound_mtype (var96) on */ +var101 = var96->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var101 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); +PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477); +show_backtrace(1); +} +var99 = var101; +RET_LABEL100:(void)0; +} +} +var_restype102 = var99; +var103 = NEW_array__Array(&type_array__Arraymodel__MProperty); +{ +array__Array__init(var103); /* Direct call array#Array#init on */ +} +var_ress2 = var103; +{ +var104 = array__AbstractArrayRead__iterator(var_ress); +} +for(;;) { +{ +var105 = array__ArrayIterator__is_ok(var104); +} +if(!var105) break; +{ +var106 = array__ArrayIterator__item(var104); +} +var_mprop107 = var106; +{ +{ /* Inline model#MProperty#intro_mclassdef (var_mprop107) on */ +var110 = var_mprop107->attrs[COLOR_model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on */ +if (unlikely(var110 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef"); +PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1602); +show_backtrace(1); +} +var108 = var110; +RET_LABEL109:(void)0; +} +} +{ +{ /* Inline model#MClassDef#bound_mtype (var108) on */ +var113 = var108->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var113 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); +PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477); +show_backtrace(1); +} +var111 = var113; +RET_LABEL112:(void)0; +} +} +var_mproptype114 = var111; +var115 = NULL; +{ +var116 = model__MType__is_subtype(var_restype102, var_mmodule, var115, var_mproptype114); +} +var117 = !var116; +if (var117){ +{ +array__Array__add(var_ress2, var_mprop107); /* Direct call array#Array#add on */ +} +} else { +/* isa MMethod */ +cltype120 = type_model__MMethod.color; +idtype121 = type_model__MMethod.id; +if(cltype120 >= var_mprop107->type->table_size) { +var119 = 0; +} else { +var119 = var_mprop107->type->type_table[cltype120] == idtype121; +} +var122 = !var119; +var_123 = var122; +if (var122){ +var118 = var_123; +} else { +{ +{ /* Inline model#MMethod#is_init (var_mprop107) on */ +var126 = var_mprop107->attrs[COLOR_model__MMethod___is_init].s; /* _is_init on */ +var124 = var126; +RET_LABEL125:(void)0; +} +} +var127 = !var124; +var118 = var127; +} +if (var118){ +{ +array__Array__add(var_ress2, var_mprop107); /* Direct call array#Array#add on */ +} +} else { +} +} +CONTINUE_label128: (void)0; +{ +array__ArrayIterator__next(var104); /* Direct call array#ArrayIterator#next on */ +} +} +BREAK_label128: (void)0; +{ +var129 = array__AbstractArrayRead__is_empty(var_ress2); +} +if (var129){ +var130 = NULL; +var_ress = var130; +} else { +var_ress = var_ress2; +{ +array__Array__add(var_ress, var_res); /* Direct call array#Array#add on */ +} +} +} else { +} +var131 = NULL; +if (var_ress == NULL) { +var132 = 0; /* is null */ +} else { +var132 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_ress,var131) on */ +var_other = var131; +{ +var136 = ((short int (*)(val*, val*))(var_ress->class->vft[COLOR_kernel__Object___61d_61d]))(var_ress, var_other) /* == on */; +var135 = var136; +} +var137 = !var135; +var133 = var137; +goto RET_LABEL134; +RET_LABEL134:(void)0; +} +var132 = var133; +} +if (var132){ +{ +var138 = array__AbstractArrayRead__length(var_ress); +} +var139 = 1; +{ +{ /* Inline kernel#Int#> (var138,var139) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var142 = 1; /* easy isa OTHER*/ +if (unlikely(!var142)) { +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", 327); +show_backtrace(1); +} +var145 = var138 > var139; +var140 = var145; +goto RET_LABEL141; +RET_LABEL141:(void)0; +} +} +if (unlikely(!var140)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 270); +show_backtrace(1); +} +var146 = NEW_array__Array(&type_array__Arraystring__String); +{ +array__Array__init(var146); /* Direct call array#Array#init on */ +} +var_s = var146; +{ +var147 = array__AbstractArrayRead__iterator(var_ress); +} +for(;;) { +{ +var148 = array__ArrayIterator__is_ok(var147); +} +if(!var148) break; +{ +var149 = array__ArrayIterator__item(var147); +} +var_mprop150 = var149; +{ +var151 = model__MProperty__full_name(var_mprop150); +} +{ +array__Array__add(var_s, var151); /* Direct call array#Array#add on */ +} +CONTINUE_label152: (void)0; +{ +array__ArrayIterator__next(var147); /* Direct call array#ArrayIterator#next on */ +} +} +BREAK_label152: (void)0; +if (varonce) { +var153 = varonce; +} else { +var154 = "Ambigous property name \'"; +var155 = 24; +var156 = string__NativeString__to_s_with_length(var154, var155); +var153 = var156; +varonce = var153; +} +if (varonce157) { +var158 = varonce157; +} else { +var159 = "\' for "; +var160 = 6; +var161 = string__NativeString__to_s_with_length(var159, var160); +var158 = var161; +varonce157 = var158; +} +if (varonce162) { +var163 = varonce162; +} else { +var164 = "; conflict between "; +var165 = 19; +var166 = string__NativeString__to_s_with_length(var164, var165); +var163 = var166; +varonce162 = var163; +} +if (varonce167) { +var168 = varonce167; +} else { +var169 = " and "; +var170 = 5; +var171 = string__NativeString__to_s_with_length(var169, var170); +var168 = var171; +varonce167 = var168; +} +{ +var172 = string__Collection__join(var_s, var168); +} +var173 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var173 = array_instance Array[Object] */ +var174 = 6; +var175 = NEW_array__NativeArray(var174, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var175)->values[0] = (val*) var153; +((struct instance_array__NativeArray*)var175)->values[1] = (val*) var_name; +((struct instance_array__NativeArray*)var175)->values[2] = (val*) var158; +((struct instance_array__NativeArray*)var175)->values[3] = (val*) var_mtype; +((struct instance_array__NativeArray*)var175)->values[4] = (val*) var163; +((struct instance_array__NativeArray*)var175)->values[5] = (val*) var172; +{ +((void (*)(val*, val*, long))(var173->class->vft[COLOR_array__Array__with_native]))(var173, var175, var174) /* with_native on */; +} +} +{ +var176 = ((val* (*)(val*))(var173->class->vft[COLOR_string__Object__to_s]))(var173) /* to_s on */; +} +{ +modelbuilder__ModelBuilder__error(self, var_anode, var176); /* Direct call modelbuilder#ModelBuilder#error on */ +} +} else { +} +{ +{ /* Inline modelbuilder#ModelBuilder#try_get_mproperty_by_name2_cache (self) on */ +var179 = self->attrs[COLOR_modelbuilder__ModelBuilder___try_get_mproperty_by_name2_cache].val; /* _try_get_mproperty_by_name2_cache on */ +if (unlikely(var179 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_get_mproperty_by_name2_cache"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 280); +show_backtrace(1); +} +var177 = var179; +RET_LABEL178:(void)0; +} +} +{ +more_collections__HashMap3___91d_93d_61d(var177, var_mmodule, var_mtype, var_name, var_res); /* Direct call more_collections#HashMap3#[]= on */ } -var77 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name2_cache]))(self) /* try_get_mproperty_by_name2_cache on */; -((void (*)(val*, val*, val*, val*, val*))(var77->class->vft[COLOR_more_collections__HashMap3___91d_93d_61d]))(var77, var_mmodule, var_mtype, var_name, var_res) /* []= on */; var = var_res; goto RET_LABEL; RET_LABEL:; @@ -1235,10 +2553,10 @@ return var; val* modelbuilder__ModelBuilder__try_get_mproperty_by_name2_cache(val* self) { val* var /* : HashMap3[MModule, MType, String, nullable MProperty] */; val* var1 /* : HashMap3[MModule, MType, String, nullable MProperty] */; -var1 = self->attrs[COLOR_modelbuilder__ModelBuilder___64dtry_get_mproperty_by_name2_cache].val; /* @try_get_mproperty_by_name2_cache on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @try_get_mproperty_by_name2_cache"); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 231); +var1 = self->attrs[COLOR_modelbuilder__ModelBuilder___try_get_mproperty_by_name2_cache].val; /* _try_get_mproperty_by_name2_cache on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_get_mproperty_by_name2_cache"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 280); show_backtrace(1); } var = var1; @@ -1249,20 +2567,20 @@ return var; val* VIRTUAL_modelbuilder__ModelBuilder__try_get_mproperty_by_name2_cache(val* self) { val* var /* : HashMap3[MModule, MType, String, nullable MProperty] */; val* var1 /* : HashMap3[MModule, MType, String, nullable MProperty] */; -var1 = modelbuilder__ModelBuilder__try_get_mproperty_by_name2_cache(self); -var = var1; -RET_LABEL:; -return var; +val* var3 /* : HashMap3[MModule, MType, String, nullable MProperty] */; +{ /* Inline modelbuilder#ModelBuilder#try_get_mproperty_by_name2_cache (self) on */ +var3 = self->attrs[COLOR_modelbuilder__ModelBuilder___try_get_mproperty_by_name2_cache].val; /* _try_get_mproperty_by_name2_cache on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_get_mproperty_by_name2_cache"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 280); +show_backtrace(1); } -/* method modelbuilder#ModelBuilder#try_get_mproperty_by_name2_cache= for (self: ModelBuilder, HashMap3[MModule, MType, String, nullable MProperty]) */ -void modelbuilder__ModelBuilder__try_get_mproperty_by_name2_cache_61d(val* self, val* p0) { -self->attrs[COLOR_modelbuilder__ModelBuilder___64dtry_get_mproperty_by_name2_cache].val = p0; /* @try_get_mproperty_by_name2_cache on */ -RET_LABEL:; +var1 = var3; +RET_LABEL2:(void)0; } -/* method modelbuilder#ModelBuilder#try_get_mproperty_by_name2_cache= for (self: Object, HashMap3[MModule, MType, String, nullable MProperty]) */ -void VIRTUAL_modelbuilder__ModelBuilder__try_get_mproperty_by_name2_cache_61d(val* self, val* p0) { -modelbuilder__ModelBuilder__try_get_mproperty_by_name2_cache_61d(self, p0); +var = var1; RET_LABEL:; +return var; } /* method modelbuilder#ModelBuilder#try_get_mproperty_by_name for (self: ModelBuilder, ANode, MClassDef, String): nullable MProperty */ val* modelbuilder__ModelBuilder__try_get_mproperty_by_name(val* self, val* p0, val* p1, val* p2) { @@ -1271,15 +2589,41 @@ val* var_anode /* var anode: ANode */; val* var_mclassdef /* var mclassdef: MClassDef */; val* var_name /* var name: String */; val* var1 /* : MModule */; -val* var2 /* : MClassType */; -val* var3 /* : nullable MProperty */; +val* var3 /* : MModule */; +val* var4 /* : MClassType */; +val* var6 /* : MClassType */; +val* var7 /* : nullable MProperty */; var_anode = p0; var_mclassdef = p1; var_name = p2; -var1 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__mmodule]))(var_mclassdef) /* mmodule on */; -var2 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__bound_mtype]))(var_mclassdef) /* bound_mtype on */; -var3 = ((val* (*)(val*, val*, val*, val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name2]))(self, var_anode, var1, var2, var_name) /* try_get_mproperty_by_name2 on */; -var = var3; +{ +{ /* Inline model#MClassDef#mmodule (var_mclassdef) on */ +var3 = var_mclassdef->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); +PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471); +show_backtrace(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} +} +{ +{ /* Inline model#MClassDef#bound_mtype (var_mclassdef) on */ +var6 = var_mclassdef->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var6 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); +PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477); +show_backtrace(1); +} +var4 = var6; +RET_LABEL5:(void)0; +} +} +{ +var7 = modelbuilder__ModelBuilder__try_get_mproperty_by_name2(self, var_anode, var1, var4, var_name); +} +var = var7; goto RET_LABEL; RET_LABEL:; return var; @@ -1297,10 +2641,10 @@ return var; val* modelbuilder__ModelBuilder__paths(val* self) { val* var /* : Array[String] */; val* var1 /* : Array[String] */; -var1 = self->attrs[COLOR_modelbuilder__ModelBuilder___64dpaths].val; /* @paths on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @paths"); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 240); +var1 = self->attrs[COLOR_modelbuilder__ModelBuilder___paths].val; /* _paths on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _paths"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 289); show_backtrace(1); } var = var1; @@ -1311,397 +2655,333 @@ return var; val* VIRTUAL_modelbuilder__ModelBuilder__paths(val* self) { val* var /* : Array[String] */; val* var1 /* : Array[String] */; -var1 = modelbuilder__ModelBuilder__paths(self); -var = var1; -RET_LABEL:; -return var; +val* var3 /* : Array[String] */; +{ /* Inline modelbuilder#ModelBuilder#paths (self) on */ +var3 = self->attrs[COLOR_modelbuilder__ModelBuilder___paths].val; /* _paths on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _paths"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 289); +show_backtrace(1); } -/* method modelbuilder#ModelBuilder#paths= for (self: ModelBuilder, Array[String]) */ -void modelbuilder__ModelBuilder__paths_61d(val* self, val* p0) { -self->attrs[COLOR_modelbuilder__ModelBuilder___64dpaths].val = p0; /* @paths on */ -RET_LABEL:; +var1 = var3; +RET_LABEL2:(void)0; } -/* method modelbuilder#ModelBuilder#paths= for (self: Object, Array[String]) */ -void VIRTUAL_modelbuilder__ModelBuilder__paths_61d(val* self, val* p0) { -modelbuilder__ModelBuilder__paths_61d(self, p0); +var = var1; RET_LABEL:; +return var; } -/* method modelbuilder#ModelBuilder#get_mmodule_by_name for (self: ModelBuilder, ANode, nullable MModule, String): nullable MModule */ -val* modelbuilder__ModelBuilder__get_mmodule_by_name(val* self, val* p0, val* p1, val* p2) { -val* var /* : nullable MModule */; +/* method modelbuilder#ModelBuilder#search_mmodule_by_name for (self: ModelBuilder, ANode, nullable MGroup, String): nullable ModulePath */ +val* modelbuilder__ModelBuilder__search_mmodule_by_name(val* self, val* p0, val* p1, val* p2) { +val* var /* : nullable ModulePath */; val* var_anode /* var anode: ANode */; -val* var_mmodule /* var mmodule: nullable MModule */; +val* var_mgroup /* var mgroup: nullable MGroup */; val* var_name /* var name: String */; -val* var1 /* : Array[String] */; -val* var_tries /* var tries: Array[String] */; -val* var2 /* : null */; +val* var_c /* var c: nullable MGroup */; +val* var1 /* : null */; +short int var2 /* : Bool */; short int var3 /* : Bool */; -val* var4 /* : nullable MGroup */; -val* var_mgroup /* var mgroup: nullable MGroup */; -val* var5 /* : null */; +val* var_other /* var other: nullable Object */; +short int var5 /* : Bool */; short int var6 /* : Bool */; -val* var7 /* : nullable String */; +short int var7 /* : Bool */; +val* var8 /* : nullable String */; +val* var10 /* : nullable String */; val* var_dirname /* var dirname: nullable String */; -val* var8 /* : null */; -short int var9 /* : Bool */; +val* var11 /* : null */; +short int var12 /* : Bool */; +short int var13 /* : Bool */; static val* varonce; -val* var10 /* : String */; -char* var11 /* : NativeString */; -long var12 /* : Int */; -val* var13 /* : String */; -short int var14 /* : Bool */; -static val* varonce15; -val* var16 /* : String */; -char* var17 /* : NativeString */; -long var18 /* : Int */; -val* var19 /* : String */; +val* var14 /* : String */; +char* var15 /* : NativeString */; +long var16 /* : Int */; +val* var17 /* : FlatString */; +short int var18 /* : Bool */; +static val* varonce19; val* var20 /* : String */; -val* var21 /* : String */; -static val* varonce22; -val* var23 /* : String */; -char* var24 /* : NativeString */; -long var25 /* : Int */; -val* var26 /* : String */; +char* var21 /* : NativeString */; +long var22 /* : Int */; +val* var23 /* : FlatString */; +val* var24 /* : String */; +val* var25 /* : String */; +static val* varonce26; val* var27 /* : String */; +char* var28 /* : NativeString */; +long var29 /* : Int */; +val* var30 /* : FlatString */; +val* var31 /* : String */; val* var_try_file /* var try_file: String */; -short int var28 /* : Bool */; -val* var29 /* : String */; -val* var30 /* : nullable AModule */; -val* var_res /* var res: nullable AModule */; -val* var31 /* : null */; short int var32 /* : Bool */; -val* var33 /* : null */; -val* var34 /* : nullable MModule */; -static val* varonce35; -val* var36 /* : String */; -char* var37 /* : NativeString */; -long var38 /* : Int */; -val* var39 /* : String */; -val* var40 /* : String */; -val* var41 /* : String */; +val* var33 /* : String */; +val* var34 /* : nullable ModulePath */; +val* var_res /* var res: nullable ModulePath */; +val* var35 /* : null */; +short int var36 /* : Bool */; +short int var37 /* : Bool */; +short int var39 /* : Bool */; +short int var40 /* : Bool */; +short int var41 /* : Bool */; static val* varonce42; val* var43 /* : String */; char* var44 /* : NativeString */; long var45 /* : Int */; -val* var46 /* : String */; +val* var46 /* : FlatString */; val* var47 /* : String */; val* var48 /* : String */; static val* varonce49; val* var50 /* : String */; char* var51 /* : NativeString */; long var52 /* : Int */; -val* var53 /* : String */; +val* var53 /* : FlatString */; val* var54 /* : String */; -short int var55 /* : Bool */; +val* var55 /* : String */; static val* varonce56; val* var57 /* : String */; char* var58 /* : NativeString */; long var59 /* : Int */; -val* var60 /* : String */; +val* var60 /* : FlatString */; val* var61 /* : String */; -val* var62 /* : String */; -val* var63 /* : nullable MGroup */; -val* var64 /* : String */; -val* var65 /* : nullable AModule */; -val* var_res66 /* var res: nullable AModule */; -val* var67 /* : null */; +short int var62 /* : Bool */; +val* var63 /* : String */; +val* var64 /* : nullable ModulePath */; +val* var_res65 /* var res: nullable ModulePath */; +val* var66 /* : null */; +short int var67 /* : Bool */; short int var68 /* : Bool */; -val* var69 /* : null */; -val* var70 /* : nullable MModule */; -val* var71 /* : nullable MGroup */; -val* var72 /* : Array[String] */; +short int var70 /* : Bool */; +short int var71 /* : Bool */; +short int var72 /* : Bool */; +val* var73 /* : nullable MGroup */; +val* var75 /* : nullable MGroup */; +val* var76 /* : Array[String] */; +val* var78 /* : Array[String] */; val* var_lookpaths /* var lookpaths: Array[String] */; -short int var73 /* : Bool */; -val* var74 /* : null */; -short int var75 /* : Bool */; -short int var_ /* var : Bool */; -val* var76 /* : nullable MGroup */; -val* var77 /* : null */; -short int var78 /* : Bool */; -val* var79 /* : nullable MGroup */; -val* var80 /* : MProject */; -val* var81 /* : nullable MGroup */; -val* var82 /* : nullable String */; -val* var_dirname83 /* var dirname: nullable String */; -val* var84 /* : null */; +val* var79 /* : null */; +short int var80 /* : Bool */; +short int var81 /* : Bool */; +short int var83 /* : Bool */; +short int var84 /* : Bool */; short int var85 /* : Bool */; -static val* varonce86; -val* var87 /* : String */; -char* var88 /* : NativeString */; -long var89 /* : Int */; -val* var90 /* : String */; -val* var91 /* : String */; -val* var92 /* : String */; -short int var93 /* : Bool */; -short int var94 /* : Bool */; -short int var95 /* : Bool */; -short int var_96 /* var : Bool */; +val* var86 /* : MProject */; +val* var88 /* : MProject */; +val* var89 /* : nullable MGroup */; +val* var91 /* : nullable MGroup */; +val* var92 /* : nullable String */; +val* var94 /* : nullable String */; +val* var_dirname95 /* var dirname: nullable String */; +val* var96 /* : null */; short int var97 /* : Bool */; -val* var98 /* : Array[nullable Object] */; -val* var99 /* : null */; -val* var_candidate /* var candidate: nullable String */; -val* var100 /* : Iterator[nullable Object] */; +short int var98 /* : Bool */; +short int var100 /* : Bool */; short int var101 /* : Bool */; -val* var102 /* : nullable Object */; -val* var_dirname103 /* var dirname: String */; -static val* varonce104; -val* var105 /* : String */; -char* var106 /* : NativeString */; -long var107 /* : Int */; +short int var102 /* : Bool */; +static val* varonce103; +val* var104 /* : String */; +char* var105 /* : NativeString */; +long var106 /* : Int */; +val* var107 /* : FlatString */; val* var108 /* : String */; val* var109 /* : String */; -val* var110 /* : String */; -static val* varonce111; -val* var112 /* : String */; -char* var113 /* : NativeString */; -long var114 /* : Int */; -val* var115 /* : String */; -val* var116 /* : String */; -val* var117 /* : String */; -val* var_try_file118 /* var try_file: String */; +short int var110 /* : Bool */; +short int var111 /* : Bool */; +short int var112 /* : Bool */; +short int var_ /* var : Bool */; +short int var113 /* : Bool */; +val* var114 /* : Array[nullable Object] */; +val* var115 /* : Location */; +val* var116 /* : nullable ModulePath */; +val* var_candidate /* var candidate: nullable ModulePath */; +val* var117 /* : null */; +short int var118 /* : Bool */; short int var119 /* : Bool */; -val* var120 /* : null */; -short int var121 /* : Bool */; +val* var_other121 /* var other: nullable Object */; short int var122 /* : Bool */; -val* var123 /* : String */; -val* var_abs_candidate /* var abs_candidate: String */; -val* var124 /* : String */; -val* var_abs_try_file /* var abs_try_file: String */; -short int var125 /* : Bool */; -static val* varonce126; -val* var127 /* : String */; -char* var128 /* : NativeString */; -long var129 /* : Int */; -val* var130 /* : String */; -static val* varonce131; -val* var132 /* : String */; -char* var133 /* : NativeString */; -long var134 /* : Int */; -val* var135 /* : String */; -static val* varonce136; -val* var137 /* : String */; -char* var138 /* : NativeString */; -long var139 /* : Int */; -val* var140 /* : String */; -val* var141 /* : Array[Object] */; -long var142 /* : Int */; -val* var143 /* : NativeArray[Object] */; +short int var124 /* : Bool */; +val* var125 /* : null */; +short int var126 /* : Bool */; +short int var127 /* : Bool */; +short int var129 /* : Bool */; +short int var130 /* : Bool */; +short int var131 /* : Bool */; +static val* varonce132; +val* var133 /* : String */; +char* var134 /* : NativeString */; +long var135 /* : Int */; +val* var136 /* : FlatString */; +static val* varonce137; +val* var138 /* : String */; +char* var139 /* : NativeString */; +long var140 /* : Int */; +val* var141 /* : FlatString */; +val* var142 /* : String */; val* var144 /* : String */; static val* varonce145; val* var146 /* : String */; char* var147 /* : NativeString */; long var148 /* : Int */; -val* var149 /* : String */; -val* var150 /* : String */; +val* var149 /* : FlatString */; +static val* varonce150; val* var151 /* : String */; -static val* varonce152; -val* var153 /* : String */; -char* var154 /* : NativeString */; -long var155 /* : Int */; -val* var156 /* : String */; -val* var157 /* : String */; -val* var158 /* : String */; -static val* varonce159; -val* var160 /* : String */; -char* var161 /* : NativeString */; -long var162 /* : Int */; -val* var163 /* : String */; -val* var164 /* : String */; -val* var165 /* : String */; -short int var166 /* : Bool */; -val* var167 /* : null */; -short int var168 /* : Bool */; -short int var169 /* : Bool */; -val* var170 /* : String */; -val* var_abs_candidate171 /* var abs_candidate: String */; -val* var172 /* : String */; -val* var_abs_try_file173 /* var abs_try_file: String */; -short int var174 /* : Bool */; -static val* varonce175; -val* var176 /* : String */; -char* var177 /* : NativeString */; -long var178 /* : Int */; +char* var152 /* : NativeString */; +long var153 /* : Int */; +val* var154 /* : FlatString */; +val* var155 /* : String */; +val* var156 /* : Array[Object] */; +long var157 /* : Int */; +val* var158 /* : NativeArray[Object] */; +val* var159 /* : String */; +static val* varonce160; +val* var161 /* : String */; +char* var162 /* : NativeString */; +long var163 /* : Int */; +val* var164 /* : FlatString */; +static val* varonce165; +val* var166 /* : String */; +char* var167 /* : NativeString */; +long var168 /* : Int */; +val* var169 /* : FlatString */; +static val* varonce170; +val* var171 /* : String */; +char* var172 /* : NativeString */; +long var173 /* : Int */; +val* var174 /* : FlatString */; +val* var175 /* : String */; +val* var176 /* : Array[Object] */; +long var177 /* : Int */; +val* var178 /* : NativeArray[Object] */; val* var179 /* : String */; -static val* varonce180; -val* var181 /* : String */; -char* var182 /* : NativeString */; -long var183 /* : Int */; -val* var184 /* : String */; -static val* varonce185; -val* var186 /* : String */; -char* var187 /* : NativeString */; -long var188 /* : Int */; -val* var189 /* : String */; -val* var190 /* : Array[Object] */; -long var191 /* : Int */; -val* var192 /* : NativeArray[Object] */; -val* var193 /* : String */; -val* var195 /* : null */; -short int var196 /* : Bool */; -val* var197 /* : null */; -short int var198 /* : Bool */; -static val* varonce199; -val* var200 /* : String */; -char* var201 /* : NativeString */; -long var202 /* : Int */; -val* var203 /* : String */; -static val* varonce204; -val* var205 /* : String */; -char* var206 /* : NativeString */; -long var207 /* : Int */; -val* var208 /* : String */; -static val* varonce209; -val* var210 /* : String */; -char* var211 /* : NativeString */; -long var212 /* : Int */; -val* var213 /* : String */; -static val* varonce214; -val* var215 /* : String */; -char* var216 /* : NativeString */; -long var217 /* : Int */; -val* var218 /* : String */; -val* var219 /* : String */; -val* var220 /* : Array[Object] */; -long var221 /* : Int */; -val* var222 /* : NativeArray[Object] */; -val* var223 /* : String */; -static val* varonce224; -val* var225 /* : String */; -char* var226 /* : NativeString */; -long var227 /* : Int */; -val* var228 /* : String */; -static val* varonce229; -val* var230 /* : String */; -char* var231 /* : NativeString */; -long var232 /* : Int */; -val* var233 /* : String */; -static val* varonce234; -val* var235 /* : String */; -char* var236 /* : NativeString */; -long var237 /* : Int */; -val* var238 /* : String */; -val* var239 /* : String */; -val* var240 /* : Array[Object] */; -long var241 /* : Int */; -val* var242 /* : NativeArray[Object] */; -val* var243 /* : String */; -val* var244 /* : null */; -val* var245 /* : nullable AModule */; -val* var_res246 /* var res: nullable AModule */; -val* var247 /* : null */; -short int var248 /* : Bool */; -val* var249 /* : null */; -val* var250 /* : nullable MModule */; +val* var180 /* : null */; var_anode = p0; -var_mmodule = p1; +var_mgroup = p1; var_name = p2; -var1 = NEW_array__Array(&type_array__Arraystring__String); -((void (*)(val*))(var1->class->vft[COLOR_array__Array__init]))(var1) /* init on */; -var_tries = var1; -var2 = NULL; -if (var_mmodule == NULL) { -var3 = 0; /* is null */ -} else { -var3 = 1; /* arg is null and recv is not */ -} -if (var3){ -var4 = ((val* (*)(val*))(var_mmodule->class->vft[COLOR_mmodule__MModule__mgroup]))(var_mmodule) /* mgroup on */; -var_mgroup = var4; +var_c = var_mgroup; for(;;) { -var5 = NULL; -if (var_mgroup == NULL) { -var6 = 0; /* is null */ +var1 = NULL; +if (var_c == NULL) { +var2 = 0; /* is null */ } else { -var6 = 1; /* arg is null and recv is not */ +var2 = 1; /* arg is null and recv is not */ } -if (!var6) break; -var7 = ((val* (*)(val*))(var_mgroup->class->vft[COLOR_mproject__MGroup__filepath]))(var_mgroup) /* filepath on */; -var_dirname = var7; -var8 = NULL; +if (0) { +{ /* Inline kernel#Object#!= (var_c,var1) on */ +var_other = var1; +{ +var6 = ((short int (*)(val*, val*))(var_c->class->vft[COLOR_kernel__Object___61d_61d]))(var_c, var_other) /* == on */; +var5 = var6; +} +var7 = !var5; +var3 = var7; +goto RET_LABEL4; +RET_LABEL4:(void)0; +} +var2 = var3; +} +if (!var2) break; +{ +{ /* Inline mproject#MGroup#filepath (var_c) on */ +var10 = var_c->attrs[COLOR_mproject__MGroup___filepath].val; /* _filepath on */ +var8 = var10; +RET_LABEL9:(void)0; +} +} +var_dirname = var8; +var11 = NULL; if (var_dirname == NULL) { -var9 = 1; /* is null */ +var12 = 1; /* is null */ } else { -var9 = 0; /* arg is null but recv is not */ +var12 = 0; /* arg is null but recv is not */ +} +if (0) { +var13 = string__FlatString___61d_61d(var_dirname, var11); +var12 = var13; } -if (var9){ +if (var12){ goto BREAK_label; } else { } if (varonce) { -var10 = varonce; +var14 = varonce; } else { -var11 = ".nit"; -var12 = 4; -var13 = string__NativeString__to_s_with_length(var11, var12); -var10 = var13; -varonce = var10; +var15 = ".nit"; +var16 = 4; +var17 = string__NativeString__to_s_with_length(var15, var16); +var14 = var17; +varonce = var14; } -var14 = ((short int (*)(val*, val*))(var_dirname->class->vft[COLOR_string__AbstractString__has_suffix]))(var_dirname, var10) /* has_suffix on */; -if (var14){ +{ +var18 = string__Text__has_suffix(var_dirname, var14); +} +if (var18){ goto BREAK_label; } else { } -if (varonce15) { -var16 = varonce15; +if (varonce19) { +var20 = varonce19; } else { -var17 = "/"; -var18 = 1; -var19 = string__NativeString__to_s_with_length(var17, var18); -var16 = var19; -varonce15 = var16; +var21 = "/"; +var22 = 1; +var23 = string__NativeString__to_s_with_length(var21, var22); +var20 = var23; +varonce19 = var20; } -var20 = ((val* (*)(val*, val*))(var_dirname->class->vft[COLOR_string__String___43d]))(var_dirname, var16) /* + on */; -var21 = ((val* (*)(val*, val*))(var20->class->vft[COLOR_string__String___43d]))(var20, var_name) /* + on */; -if (varonce22) { -var23 = varonce22; -} else { -var24 = ".nit"; -var25 = 4; -var26 = string__NativeString__to_s_with_length(var24, var25); -var23 = var26; -varonce22 = var23; +{ +var24 = string__FlatString___43d(var_dirname, var20); } -var27 = ((val* (*)(val*, val*))(var21->class->vft[COLOR_string__String___43d]))(var21, var23) /* + on */; -var_try_file = var27; -((void (*)(val*, val*))(var_tries->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_tries, var_try_file) /* add on */; -var28 = ((short int (*)(val*))(var_try_file->class->vft[COLOR_file__String__file_exists]))(var_try_file) /* file_exists on */; -if (var28){ -var29 = ((val* (*)(val*))(var_try_file->class->vft[COLOR_file__String__simplify_path]))(var_try_file) /* simplify_path on */; -var30 = ((val* (*)(val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__load_module]))(self, var29) /* load_module on */; -var_res = var30; -var31 = NULL; -if (var_res == NULL) { -var32 = 1; /* is null */ +{ +var25 = string__FlatString___43d(var24, var_name); +} +if (varonce26) { +var27 = varonce26; } else { -var32 = 0; /* arg is null but recv is not */ +var28 = ".nit"; +var29 = 4; +var30 = string__NativeString__to_s_with_length(var28, var29); +var27 = var30; +varonce26 = var27; +} +{ +var31 = string__FlatString___43d(var25, var27); +} +var_try_file = var31; +{ +var32 = file__String__file_exists(var_try_file); } if (var32){ -var33 = NULL; -var = var33; -goto RET_LABEL; +{ +var33 = file__String__simplify_path(var_try_file); +} +{ +var34 = modelbuilder__ModelBuilder__identify_file(self, var33); +} +var_res = var34; +var35 = NULL; +if (var_res == NULL) { +var36 = 0; /* is null */ } else { +var36 = 1; /* arg is null and recv is not */ } -var34 = ((val* (*)(val*))(var_res->class->vft[COLOR_modelbuilder__AModule__mmodule]))(var_res) /* mmodule on */; -if (var34 == NULL) { -fprintf(stderr, "Runtime error: %s", "Cast failed"); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 272); +if (0) { +{ /* Inline kernel#Object#!= (var_res,var35) on */ +var_other = var35; +{ +var40 = ((short int (*)(val*, val*))(var_res->class->vft[COLOR_kernel__Object___61d_61d]))(var_res, var_other) /* == on */; +var39 = var40; +} +var41 = !var39; +var37 = var41; +goto RET_LABEL38; +RET_LABEL38:(void)0; +} +var36 = var37; +} +if (unlikely(!var36)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 311); show_backtrace(1); } -var = var34; +var = var_res; goto RET_LABEL; } else { } -if (varonce35) { -var36 = varonce35; -} else { -var37 = "/"; -var38 = 1; -var39 = string__NativeString__to_s_with_length(var37, var38); -var36 = var39; -varonce35 = var36; -} -var40 = ((val* (*)(val*, val*))(var_dirname->class->vft[COLOR_string__String___43d]))(var_dirname, var36) /* + on */; -var41 = ((val* (*)(val*, val*))(var40->class->vft[COLOR_string__String___43d]))(var40, var_name) /* + on */; if (varonce42) { var43 = varonce42; } else { @@ -1711,731 +2991,1666 @@ var46 = string__NativeString__to_s_with_length(var44, var45); var43 = var46; varonce42 = var43; } -var47 = ((val* (*)(val*, val*))(var41->class->vft[COLOR_string__String___43d]))(var41, var43) /* + on */; -var48 = ((val* (*)(val*, val*))(var47->class->vft[COLOR_string__String___43d]))(var47, var_name) /* + on */; +{ +var47 = string__FlatString___43d(var_dirname, var43); +} +{ +var48 = string__FlatString___43d(var47, var_name); +} if (varonce49) { var50 = varonce49; } else { -var51 = ".nit"; -var52 = 4; +var51 = "/"; +var52 = 1; var53 = string__NativeString__to_s_with_length(var51, var52); var50 = var53; varonce49 = var50; } -var54 = ((val* (*)(val*, val*))(var48->class->vft[COLOR_string__String___43d]))(var48, var50) /* + on */; -var_try_file = var54; -var55 = ((short int (*)(val*))(var_try_file->class->vft[COLOR_file__String__file_exists]))(var_try_file) /* file_exists on */; -if (var55){ +{ +var54 = string__FlatString___43d(var48, var50); +} +{ +var55 = string__FlatString___43d(var54, var_name); +} if (varonce56) { var57 = varonce56; } else { -var58 = "/"; -var59 = 1; +var58 = ".nit"; +var59 = 4; var60 = string__NativeString__to_s_with_length(var58, var59); var57 = var60; varonce56 = var57; } -var61 = ((val* (*)(val*, val*))(var_dirname->class->vft[COLOR_string__String___43d]))(var_dirname, var57) /* + on */; -var62 = ((val* (*)(val*, val*))(var61->class->vft[COLOR_string__String___43d]))(var61, var_name) /* + on */; -var63 = ((val* (*)(val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__get_mgroup]))(self, var62) /* get_mgroup on */; -var_mgroup = var63; -var64 = ((val* (*)(val*))(var_try_file->class->vft[COLOR_file__String__simplify_path]))(var_try_file) /* simplify_path on */; -var65 = ((val* (*)(val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__load_module]))(self, var64) /* load_module on */; -var_res66 = var65; -var67 = NULL; -if (var_res66 == NULL) { -var68 = 1; /* is null */ -} else { -var68 = 0; /* arg is null but recv is not */ +{ +var61 = string__FlatString___43d(var55, var57); } -if (var68){ -var69 = NULL; -var = var69; -goto RET_LABEL; +var_try_file = var61; +{ +var62 = file__String__file_exists(var_try_file); +} +if (var62){ +{ +var63 = file__String__simplify_path(var_try_file); +} +{ +var64 = modelbuilder__ModelBuilder__identify_file(self, var63); +} +var_res65 = var64; +var66 = NULL; +if (var_res65 == NULL) { +var67 = 0; /* is null */ } else { +var67 = 1; /* arg is null and recv is not */ } -var70 = ((val* (*)(val*))(var_res66->class->vft[COLOR_modelbuilder__AModule__mmodule]))(var_res66) /* mmodule on */; -if (var70 == NULL) { -fprintf(stderr, "Runtime error: %s", "Cast failed"); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 281); +if (0) { +{ /* Inline kernel#Object#!= (var_res65,var66) on */ +var_other = var66; +{ +var71 = ((short int (*)(val*, val*))(var_res65->class->vft[COLOR_kernel__Object___61d_61d]))(var_res65, var_other) /* == on */; +var70 = var71; +} +var72 = !var70; +var68 = var72; +goto RET_LABEL69; +RET_LABEL69:(void)0; +} +var67 = var68; +} +if (unlikely(!var67)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 319); show_backtrace(1); } -var = var70; +var = var_res65; goto RET_LABEL; } else { } -var71 = ((val* (*)(val*))(var_mgroup->class->vft[COLOR_mproject__MGroup__parent]))(var_mgroup) /* parent on */; -var_mgroup = var71; +{ +{ /* Inline mproject#MGroup#parent (var_c) on */ +var75 = var_c->attrs[COLOR_mproject__MGroup___parent].val; /* _parent on */ +var73 = var75; +RET_LABEL74:(void)0; +} +} +var_c = var73; CONTINUE_label: (void)0; } BREAK_label: (void)0; +{ +{ /* Inline modelbuilder#ModelBuilder#paths (self) on */ +var78 = self->attrs[COLOR_modelbuilder__ModelBuilder___paths].val; /* _paths on */ +if (unlikely(var78 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _paths"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 289); +show_backtrace(1); +} +var76 = var78; +RET_LABEL77:(void)0; +} +} +var_lookpaths = var76; +var79 = NULL; +if (var_mgroup == NULL) { +var80 = 0; /* is null */ +} else { +var80 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_mgroup,var79) on */ +var_other = var79; +{ +var84 = ((short int (*)(val*, val*))(var_mgroup->class->vft[COLOR_kernel__Object___61d_61d]))(var_mgroup, var_other) /* == on */; +var83 = var84; +} +var85 = !var83; +var81 = var85; +goto RET_LABEL82; +RET_LABEL82:(void)0; +} +var80 = var81; +} +if (var80){ +{ +{ /* Inline mproject#MGroup#mproject (var_mgroup) on */ +var88 = var_mgroup->attrs[COLOR_mproject__MGroup___mproject].val; /* _mproject on */ +if (unlikely(var88 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproject"); +PRINT_ERROR(" (%s:%d)\n", "src/model/mproject.nit", 60); +show_backtrace(1); +} +var86 = var88; +RET_LABEL87:(void)0; +} +} +{ +{ /* Inline mproject#MProject#root (var86) on */ +var91 = var86->attrs[COLOR_mproject__MProject___root].val; /* _root on */ +var89 = var91; +RET_LABEL90:(void)0; +} +} +if (var89 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 332); +show_backtrace(1); } else { +{ /* Inline mproject#MGroup#filepath (var89) on */ +if (unlikely(var89 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "src/model/mproject.nit", 83); +show_backtrace(1); } -var72 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__paths]))(self) /* paths on */; -var_lookpaths = var72; -var74 = NULL; -if (var_mmodule == NULL) { -var75 = 0; /* is null */ +var94 = var89->attrs[COLOR_mproject__MGroup___filepath].val; /* _filepath on */ +var92 = var94; +RET_LABEL93:(void)0; +} +} +var_dirname95 = var92; +var96 = NULL; +if (var_dirname95 == NULL) { +var97 = 0; /* is null */ } else { -var75 = 1; /* arg is null and recv is not */ +var97 = 1; /* arg is null and recv is not */ } -var_ = var75; -if (var75){ -var76 = ((val* (*)(val*))(var_mmodule->class->vft[COLOR_mmodule__MModule__mgroup]))(var_mmodule) /* mgroup on */; -var77 = NULL; -if (var76 == NULL) { -var78 = 0; /* is null */ +if (0) { +{ /* Inline kernel#Object#!= (var_dirname95,var96) on */ +var_other = var96; +{ +var101 = ((short int (*)(val*, val*))(var_dirname95->class->vft[COLOR_kernel__Object___61d_61d]))(var_dirname95, var_other) /* == on */; +var100 = var101; +} +var102 = !var100; +var98 = var102; +goto RET_LABEL99; +RET_LABEL99:(void)0; +} +var97 = var98; +} +if (var97){ +if (varonce103) { +var104 = varonce103; +} else { +var105 = ".."; +var106 = 2; +var107 = string__NativeString__to_s_with_length(var105, var106); +var104 = var107; +varonce103 = var104; +} +{ +var108 = file__String__join_path(var_dirname95, var104); +} +{ +var109 = file__String__simplify_path(var108); +} +var_dirname95 = var109; +{ +var111 = array__AbstractArrayRead__has(var_lookpaths, var_dirname95); +} +var112 = !var111; +var_ = var112; +if (var112){ +{ +var113 = file__String__file_exists(var_dirname95); +} +var110 = var113; +} else { +var110 = var_; +} +if (var110){ +{ +var114 = array__Collection__to_a(var_lookpaths); +} +var_lookpaths = var114; +{ +array__Array__add(var_lookpaths, var_dirname95); /* Direct call array#Array#add on */ +} +} else { +} +} else { +} +} else { +} +{ +var115 = ((val* (*)(val*))(var_anode->class->vft[COLOR_parser_nodes__ANode__hot_location]))(var_anode) /* hot_location on */; +} +{ +var116 = modelbuilder__ModelBuilder__search_module_in_paths(self, var115, var_name, var_lookpaths); +} +var_candidate = var116; +var117 = NULL; +if (var_candidate == NULL) { +var118 = 1; /* is null */ +} else { +var118 = 0; /* arg is null but recv is not */ +} +if (0) { +{ /* Inline kernel#Object#== (var_candidate,var117) on */ +var_other121 = var117; +{ +{ /* Inline kernel#Object#is_same_instance (var_candidate,var_other121) on */ +var124 = var_candidate == var_other121; +var122 = var124; +goto RET_LABEL123; +RET_LABEL123:(void)0; +} +} +var119 = var122; +goto RET_LABEL120; +RET_LABEL120:(void)0; +} +var118 = var119; +} +if (var118){ +var125 = NULL; +if (var_mgroup == NULL) { +var126 = 0; /* is null */ +} else { +var126 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_mgroup,var125) on */ +var_other = var125; +{ +var130 = ((short int (*)(val*, val*))(var_mgroup->class->vft[COLOR_kernel__Object___61d_61d]))(var_mgroup, var_other) /* == on */; +var129 = var130; +} +var131 = !var129; +var127 = var131; +goto RET_LABEL128; +RET_LABEL128:(void)0; +} +var126 = var127; +} +if (var126){ +if (varonce132) { +var133 = varonce132; +} else { +var134 = "Error: cannot find module "; +var135 = 26; +var136 = string__NativeString__to_s_with_length(var134, var135); +var133 = var136; +varonce132 = var133; +} +if (varonce137) { +var138 = varonce137; +} else { +var139 = " from "; +var140 = 6; +var141 = string__NativeString__to_s_with_length(var139, var140); +var138 = var141; +varonce137 = var138; +} +{ +{ /* Inline mproject#MGroup#name (var_mgroup) on */ +var144 = var_mgroup->attrs[COLOR_mproject__MGroup___name].val; /* _name on */ +if (unlikely(var144 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); +PRINT_ERROR(" (%s:%d)\n", "src/model/mproject.nit", 56); +show_backtrace(1); +} +var142 = var144; +RET_LABEL143:(void)0; +} +} +if (varonce145) { +var146 = varonce145; +} else { +var147 = ". tried "; +var148 = 8; +var149 = string__NativeString__to_s_with_length(var147, var148); +var146 = var149; +varonce145 = var146; +} +if (varonce150) { +var151 = varonce150; +} else { +var152 = ", "; +var153 = 2; +var154 = string__NativeString__to_s_with_length(var152, var153); +var151 = var154; +varonce150 = var151; +} +{ +var155 = string__Collection__join(var_lookpaths, var151); +} +var156 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var156 = array_instance Array[Object] */ +var157 = 6; +var158 = NEW_array__NativeArray(var157, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var158)->values[0] = (val*) var133; +((struct instance_array__NativeArray*)var158)->values[1] = (val*) var_name; +((struct instance_array__NativeArray*)var158)->values[2] = (val*) var138; +((struct instance_array__NativeArray*)var158)->values[3] = (val*) var142; +((struct instance_array__NativeArray*)var158)->values[4] = (val*) var146; +((struct instance_array__NativeArray*)var158)->values[5] = (val*) var155; +{ +((void (*)(val*, val*, long))(var156->class->vft[COLOR_array__Array__with_native]))(var156, var158, var157) /* with_native on */; +} +} +{ +var159 = ((val* (*)(val*))(var156->class->vft[COLOR_string__Object__to_s]))(var156) /* to_s on */; +} +{ +modelbuilder__ModelBuilder__error(self, var_anode, var159); /* Direct call modelbuilder#ModelBuilder#error on */ +} +} else { +if (varonce160) { +var161 = varonce160; +} else { +var162 = "Error: cannot find module "; +var163 = 26; +var164 = string__NativeString__to_s_with_length(var162, var163); +var161 = var164; +varonce160 = var161; +} +if (varonce165) { +var166 = varonce165; } else { -var78 = 1; /* arg is null and recv is not */ +var167 = ". tried "; +var168 = 8; +var169 = string__NativeString__to_s_with_length(var167, var168); +var166 = var169; +varonce165 = var166; } -var73 = var78; +if (varonce170) { +var171 = varonce170; } else { -var73 = var_; +var172 = ", "; +var173 = 2; +var174 = string__NativeString__to_s_with_length(var172, var173); +var171 = var174; +varonce170 = var171; } -if (var73){ -var79 = ((val* (*)(val*))(var_mmodule->class->vft[COLOR_mmodule__MModule__mgroup]))(var_mmodule) /* mgroup on */; -if (var79 == NULL) { -fprintf(stderr, "Runtime error: %s", "Reciever is null"); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 294); +{ +var175 = string__Collection__join(var_lookpaths, var171); +} +var176 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var176 = array_instance Array[Object] */ +var177 = 4; +var178 = NEW_array__NativeArray(var177, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var178)->values[0] = (val*) var161; +((struct instance_array__NativeArray*)var178)->values[1] = (val*) var_name; +((struct instance_array__NativeArray*)var178)->values[2] = (val*) var166; +((struct instance_array__NativeArray*)var178)->values[3] = (val*) var175; +{ +((void (*)(val*, val*, long))(var176->class->vft[COLOR_array__Array__with_native]))(var176, var178, var177) /* with_native on */; +} +} +{ +var179 = ((val* (*)(val*))(var176->class->vft[COLOR_string__Object__to_s]))(var176) /* to_s on */; +} +{ +modelbuilder__ModelBuilder__error(self, var_anode, var179); /* Direct call modelbuilder#ModelBuilder#error on */ +} +} +var180 = NULL; +var = var180; +goto RET_LABEL; +} else { +} +var = var_candidate; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method modelbuilder#ModelBuilder#search_mmodule_by_name for (self: Object, ANode, nullable MGroup, String): nullable ModulePath */ +val* VIRTUAL_modelbuilder__ModelBuilder__search_mmodule_by_name(val* self, val* p0, val* p1, val* p2) { +val* var /* : nullable ModulePath */; +val* var1 /* : nullable ModulePath */; +var1 = modelbuilder__ModelBuilder__search_mmodule_by_name(self, p0, p1, p2); +var = var1; +RET_LABEL:; +return var; +} +/* method modelbuilder#ModelBuilder#get_mmodule_by_name for (self: ModelBuilder, ANode, nullable MGroup, String): nullable MModule */ +val* modelbuilder__ModelBuilder__get_mmodule_by_name(val* self, val* p0, val* p1, val* p2) { +val* var /* : nullable MModule */; +val* var_anode /* var anode: ANode */; +val* var_mgroup /* var mgroup: nullable MGroup */; +val* var_name /* var name: String */; +val* var1 /* : nullable ModulePath */; +val* var_path /* var path: nullable ModulePath */; +val* var2 /* : null */; +short int var3 /* : Bool */; +short int var4 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var6 /* : Bool */; +short int var8 /* : Bool */; +val* var9 /* : null */; +val* var10 /* : String */; +val* var12 /* : String */; +val* var13 /* : nullable AModule */; +val* var_res /* var res: nullable AModule */; +val* var14 /* : null */; +short int var15 /* : Bool */; +short int var16 /* : Bool */; +short int var18 /* : Bool */; +short int var20 /* : Bool */; +val* var21 /* : null */; +val* var22 /* : nullable MModule */; +val* var24 /* : nullable MModule */; +var_anode = p0; +var_mgroup = p1; +var_name = p2; +{ +var1 = modelbuilder__ModelBuilder__search_mmodule_by_name(self, var_anode, var_mgroup, var_name); +} +var_path = var1; +var2 = NULL; +if (var_path == NULL) { +var3 = 1; /* is null */ +} else { +var3 = 0; /* arg is null but recv is not */ +} +if (0) { +{ /* Inline kernel#Object#== (var_path,var2) on */ +var_other = var2; +{ +{ /* Inline kernel#Object#is_same_instance (var_path,var_other) on */ +var8 = var_path == var_other; +var6 = var8; +goto RET_LABEL7; +RET_LABEL7:(void)0; +} +} +var4 = var6; +goto RET_LABEL5; +RET_LABEL5:(void)0; +} +var3 = var4; +} +if (var3){ +var9 = NULL; +var = var9; +goto RET_LABEL; +} else { +} +{ +{ /* Inline modelbuilder#ModulePath#filepath (var_path) on */ +var12 = var_path->attrs[COLOR_modelbuilder__ModulePath___filepath].val; /* _filepath on */ +if (unlikely(var12 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filepath"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 733); show_backtrace(1); +} +var10 = var12; +RET_LABEL11:(void)0; +} +} +{ +var13 = modelbuilder__ModelBuilder__load_module(self, var10); +} +var_res = var13; +var14 = NULL; +if (var_res == NULL) { +var15 = 1; /* is null */ +} else { +var15 = 0; /* arg is null but recv is not */ +} +if (0) { +{ /* Inline kernel#Object#== (var_res,var14) on */ +var_other = var14; +{ +{ /* Inline kernel#Object#is_same_instance (var_res,var_other) on */ +var20 = var_res == var_other; +var18 = var20; +goto RET_LABEL19; +RET_LABEL19:(void)0; +} +} +var16 = var18; +goto RET_LABEL17; +RET_LABEL17:(void)0; +} +var15 = var16; +} +if (var15){ +var21 = NULL; +var = var21; +goto RET_LABEL; } else { -var80 = ((val* (*)(val*))(var79->class->vft[COLOR_mproject__MGroup__mproject]))(var79) /* mproject on */; } -var81 = ((val* (*)(val*))(var80->class->vft[COLOR_mproject__MProject__root]))(var80) /* root on */; -if (var81 == NULL) { -fprintf(stderr, "Runtime error: %s", "Reciever is null"); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 294); +{ +{ /* Inline modelbuilder#AModule#mmodule (var_res) on */ +var24 = var_res->attrs[COLOR_modelbuilder__AModule___mmodule].val; /* _mmodule on */ +var22 = var24; +RET_LABEL23:(void)0; +} +} +if (unlikely(var22 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 365); +show_backtrace(1); +} +var = var22; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method modelbuilder#ModelBuilder#get_mmodule_by_name for (self: Object, ANode, nullable MGroup, String): nullable MModule */ +val* VIRTUAL_modelbuilder__ModelBuilder__get_mmodule_by_name(val* self, val* p0, val* p1, val* p2) { +val* var /* : nullable MModule */; +val* var1 /* : nullable MModule */; +var1 = modelbuilder__ModelBuilder__get_mmodule_by_name(self, p0, p1, p2); +var = var1; +RET_LABEL:; +return var; +} +/* method modelbuilder#ModelBuilder#search_module_in_paths for (self: ModelBuilder, nullable Location, String, Collection[String]): nullable ModulePath */ +val* modelbuilder__ModelBuilder__search_module_in_paths(val* self, val* p0, val* p1, val* p2) { +val* var /* : nullable ModulePath */; +val* var_location /* var location: nullable Location */; +val* var_name /* var name: String */; +val* var_lookpaths /* var lookpaths: Collection[String] */; +val* var1 /* : null */; +val* var_candidate /* var candidate: nullable String */; +val* var2 /* : Iterator[nullable Object] */; +short int var3 /* : Bool */; +val* var4 /* : nullable Object */; +val* var_dirname /* var dirname: String */; +static val* varonce; +val* var5 /* : String */; +char* var6 /* : NativeString */; +long var7 /* : Int */; +val* var8 /* : FlatString */; +val* var9 /* : String */; +val* var10 /* : String */; +static val* varonce11; +val* var12 /* : String */; +char* var13 /* : NativeString */; +long var14 /* : Int */; +val* var15 /* : FlatString */; +val* var16 /* : String */; +val* var17 /* : String */; +val* var_try_file /* var try_file: String */; +short int var18 /* : Bool */; +val* var19 /* : null */; +short int var20 /* : Bool */; +short int var21 /* : Bool */; +short int var22 /* : Bool */; +short int var23 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var25 /* : Bool */; +short int var26 /* : Bool */; +short int var27 /* : Bool */; +val* var28 /* : String */; +val* var_abs_candidate /* var abs_candidate: String */; +val* var29 /* : String */; +val* var_abs_try_file /* var abs_try_file: String */; +short int var30 /* : Bool */; +short int var31 /* : Bool */; +short int var33 /* : Bool */; +short int var34 /* : Bool */; +short int var35 /* : Bool */; +val* var36 /* : ToolContext */; +val* var38 /* : ToolContext */; +static val* varonce39; +val* var40 /* : String */; +char* var41 /* : NativeString */; +long var42 /* : Int */; +val* var43 /* : FlatString */; +static val* varonce44; +val* var45 /* : String */; +char* var46 /* : NativeString */; +long var47 /* : Int */; +val* var48 /* : FlatString */; +static val* varonce49; +val* var50 /* : String */; +char* var51 /* : NativeString */; +long var52 /* : Int */; +val* var53 /* : FlatString */; +val* var54 /* : Array[Object] */; +long var55 /* : Int */; +val* var56 /* : NativeArray[Object] */; +val* var57 /* : String */; +static val* varonce58; +val* var59 /* : String */; +char* var60 /* : NativeString */; +long var61 /* : Int */; +val* var62 /* : FlatString */; +val* var63 /* : String */; +val* var64 /* : String */; +static val* varonce65; +val* var66 /* : String */; +char* var67 /* : NativeString */; +long var68 /* : Int */; +val* var69 /* : FlatString */; +val* var70 /* : String */; +val* var71 /* : String */; +static val* varonce72; +val* var73 /* : String */; +char* var74 /* : NativeString */; +long var75 /* : Int */; +val* var76 /* : FlatString */; +val* var77 /* : String */; +val* var78 /* : String */; +short int var79 /* : Bool */; +val* var80 /* : null */; +short int var81 /* : Bool */; +short int var82 /* : Bool */; +short int var83 /* : Bool */; +short int var84 /* : Bool */; +short int var86 /* : Bool */; +short int var87 /* : Bool */; +short int var88 /* : Bool */; +val* var89 /* : String */; +val* var_abs_candidate90 /* var abs_candidate: String */; +val* var91 /* : String */; +val* var_abs_try_file92 /* var abs_try_file: String */; +short int var93 /* : Bool */; +short int var94 /* : Bool */; +short int var96 /* : Bool */; +short int var97 /* : Bool */; +short int var98 /* : Bool */; +val* var99 /* : ToolContext */; +val* var101 /* : ToolContext */; +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 */; +static val* varonce112; +val* var113 /* : String */; +char* var114 /* : NativeString */; +long var115 /* : Int */; +val* var116 /* : FlatString */; +val* var117 /* : Array[Object] */; +long var118 /* : Int */; +val* var119 /* : NativeArray[Object] */; +val* var120 /* : String */; +val* var121 /* : null */; +short int var122 /* : Bool */; +short int var123 /* : Bool */; +val* var124 /* : null */; +val* var125 /* : nullable ModulePath */; +var_location = p0; +var_name = p1; +var_lookpaths = p2; +var1 = NULL; +var_candidate = var1; +{ +var2 = ((val* (*)(val*))(var_lookpaths->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_lookpaths) /* iterator on */; +} +for(;;) { +{ +var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var2) /* is_ok on */; +} +if(!var3) break; +{ +var4 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__item]))(var2) /* item on */; +} +var_dirname = var4; +if (varonce) { +var5 = varonce; +} else { +var6 = "/"; +var7 = 1; +var8 = string__NativeString__to_s_with_length(var6, var7); +var5 = var8; +varonce = var5; +} +{ +var9 = string__FlatString___43d(var_dirname, var5); +} +{ +var10 = string__FlatString___43d(var9, var_name); +} +if (varonce11) { +var12 = varonce11; +} else { +var13 = ".nit"; +var14 = 4; +var15 = string__NativeString__to_s_with_length(var13, var14); +var12 = var15; +varonce11 = var12; +} +{ +var16 = string__FlatString___43d(var10, var12); +} +{ +var17 = file__String__simplify_path(var16); +} +var_try_file = var17; +{ +var18 = file__String__file_exists(var_try_file); +} +if (var18){ +var19 = NULL; +if (var_candidate == NULL) { +var20 = 1; /* is null */ +} else { +var20 = 0; /* arg is null but recv is not */ +} +if (0) { +var21 = string__FlatString___61d_61d(var_candidate, var19); +var20 = var21; +} +if (var20){ +var_candidate = var_try_file; +} else { +{ +{ /* Inline kernel#Object#!= (var_candidate,var_try_file) on */ +var_other = var_try_file; +{ +var26 = ((short int (*)(val*, val*))(var_candidate->class->vft[COLOR_kernel__Object___61d_61d]))(var_candidate, var_other) /* == on */; +var25 = var26; +} +var27 = !var25; +var23 = var27; +goto RET_LABEL24; +RET_LABEL24:(void)0; +} +var22 = var23; +} +if (var22){ +{ +var28 = modelbuilder__ModelBuilder__module_absolute_path(self, var_candidate); +} +var_abs_candidate = var28; +{ +var29 = modelbuilder__ModelBuilder__module_absolute_path(self, var_try_file); +} +var_abs_try_file = var29; +{ +{ /* Inline kernel#Object#!= (var_abs_candidate,var_abs_try_file) on */ +var_other = var_abs_try_file; +{ +var34 = ((short int (*)(val*, val*))(var_abs_candidate->class->vft[COLOR_kernel__Object___61d_61d]))(var_abs_candidate, var_other) /* == on */; +var33 = var34; +} +var35 = !var33; +var31 = var35; +goto RET_LABEL32; +RET_LABEL32:(void)0; +} +var30 = var31; +} +if (var30){ +{ +{ /* Inline modelbuilder#ModelBuilder#toolcontext (self) on */ +var38 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var38 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +show_backtrace(1); +} +var36 = var38; +RET_LABEL37:(void)0; +} +} +if (varonce39) { +var40 = varonce39; +} else { +var41 = "Error: conflicting module file for "; +var42 = 35; +var43 = string__NativeString__to_s_with_length(var41, var42); +var40 = var43; +varonce39 = var40; +} +if (varonce44) { +var45 = varonce44; +} else { +var46 = ": "; +var47 = 2; +var48 = string__NativeString__to_s_with_length(var46, var47); +var45 = var48; +varonce44 = var45; +} +if (varonce49) { +var50 = varonce49; +} else { +var51 = " "; +var52 = 1; +var53 = string__NativeString__to_s_with_length(var51, var52); +var50 = var53; +varonce49 = var50; +} +var54 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var54 = array_instance Array[Object] */ +var55 = 6; +var56 = NEW_array__NativeArray(var55, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var56)->values[0] = (val*) var40; +((struct instance_array__NativeArray*)var56)->values[1] = (val*) var_name; +((struct instance_array__NativeArray*)var56)->values[2] = (val*) var45; +((struct instance_array__NativeArray*)var56)->values[3] = (val*) var_candidate; +((struct instance_array__NativeArray*)var56)->values[4] = (val*) var50; +((struct instance_array__NativeArray*)var56)->values[5] = (val*) var_try_file; +{ +((void (*)(val*, val*, long))(var54->class->vft[COLOR_array__Array__with_native]))(var54, var56, var55) /* with_native on */; +} +} +{ +var57 = ((val* (*)(val*))(var54->class->vft[COLOR_string__Object__to_s]))(var54) /* to_s on */; +} +{ +toolcontext__ToolContext__error(var36, var_location, var57); /* Direct call toolcontext#ToolContext#error on */ +} +} else { +} +} else { +} +} +} else { +} +if (varonce58) { +var59 = varonce58; +} else { +var60 = "/"; +var61 = 1; +var62 = string__NativeString__to_s_with_length(var60, var61); +var59 = var62; +varonce58 = var59; +} +{ +var63 = string__FlatString___43d(var_dirname, var59); +} +{ +var64 = string__FlatString___43d(var63, var_name); +} +if (varonce65) { +var66 = varonce65; +} else { +var67 = "/"; +var68 = 1; +var69 = string__NativeString__to_s_with_length(var67, var68); +var66 = var69; +varonce65 = var66; +} +{ +var70 = string__FlatString___43d(var64, var66); +} +{ +var71 = string__FlatString___43d(var70, var_name); +} +if (varonce72) { +var73 = varonce72; +} else { +var74 = ".nit"; +var75 = 4; +var76 = string__NativeString__to_s_with_length(var74, var75); +var73 = var76; +varonce72 = var73; +} +{ +var77 = string__FlatString___43d(var71, var73); +} +{ +var78 = file__String__simplify_path(var77); +} +var_try_file = var78; +{ +var79 = file__String__file_exists(var_try_file); +} +if (var79){ +var80 = NULL; +if (var_candidate == NULL) { +var81 = 1; /* is null */ +} else { +var81 = 0; /* arg is null but recv is not */ +} +if (0) { +var82 = string__FlatString___61d_61d(var_candidate, var80); +var81 = var82; +} +if (var81){ +var_candidate = var_try_file; +} else { +{ +{ /* Inline kernel#Object#!= (var_candidate,var_try_file) on */ +var_other = var_try_file; +{ +var87 = ((short int (*)(val*, val*))(var_candidate->class->vft[COLOR_kernel__Object___61d_61d]))(var_candidate, var_other) /* == on */; +var86 = var87; +} +var88 = !var86; +var84 = var88; +goto RET_LABEL85; +RET_LABEL85:(void)0; +} +var83 = var84; +} +if (var83){ +{ +var89 = modelbuilder__ModelBuilder__module_absolute_path(self, var_candidate); +} +var_abs_candidate90 = var89; +{ +var91 = modelbuilder__ModelBuilder__module_absolute_path(self, var_try_file); +} +var_abs_try_file92 = var91; +{ +{ /* Inline kernel#Object#!= (var_abs_candidate90,var_abs_try_file92) on */ +var_other = var_abs_try_file92; +{ +var97 = ((short int (*)(val*, val*))(var_abs_candidate90->class->vft[COLOR_kernel__Object___61d_61d]))(var_abs_candidate90, var_other) /* == on */; +var96 = var97; +} +var98 = !var96; +var94 = var98; +goto RET_LABEL95; +RET_LABEL95:(void)0; +} +var93 = var94; +} +if (var93){ +{ +{ /* Inline modelbuilder#ModelBuilder#toolcontext (self) on */ +var101 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var101 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +show_backtrace(1); +} +var99 = var101; +RET_LABEL100:(void)0; +} +} +if (varonce102) { +var103 = varonce102; +} else { +var104 = "Error: conflicting module file for "; +var105 = 35; +var106 = string__NativeString__to_s_with_length(var104, var105); +var103 = var106; +varonce102 = var103; +} +if (varonce107) { +var108 = varonce107; +} else { +var109 = ": "; +var110 = 2; +var111 = string__NativeString__to_s_with_length(var109, var110); +var108 = var111; +varonce107 = var108; +} +if (varonce112) { +var113 = varonce112; +} else { +var114 = " "; +var115 = 1; +var116 = string__NativeString__to_s_with_length(var114, var115); +var113 = var116; +varonce112 = var113; +} +var117 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var117 = array_instance Array[Object] */ +var118 = 6; +var119 = NEW_array__NativeArray(var118, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var119)->values[0] = (val*) var103; +((struct instance_array__NativeArray*)var119)->values[1] = (val*) var_name; +((struct instance_array__NativeArray*)var119)->values[2] = (val*) var108; +((struct instance_array__NativeArray*)var119)->values[3] = (val*) var_candidate; +((struct instance_array__NativeArray*)var119)->values[4] = (val*) var113; +((struct instance_array__NativeArray*)var119)->values[5] = (val*) var_try_file; +{ +((void (*)(val*, val*, long))(var117->class->vft[COLOR_array__Array__with_native]))(var117, var119, var118) /* with_native on */; +} +} +{ +var120 = ((val* (*)(val*))(var117->class->vft[COLOR_string__Object__to_s]))(var117) /* to_s on */; +} +{ +toolcontext__ToolContext__error(var99, var_location, var120); /* Direct call toolcontext#ToolContext#error on */ +} +} else { +} +} else { +} +} +} else { +} +CONTINUE_label: (void)0; +{ +((void (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__next]))(var2) /* next on */; +} +} +BREAK_label: (void)0; +var121 = NULL; +if (var_candidate == NULL) { +var122 = 1; /* is null */ +} else { +var122 = 0; /* arg is null but recv is not */ +} +if (0) { +var123 = string__FlatString___61d_61d(var_candidate, var121); +var122 = var123; +} +if (var122){ +var124 = NULL; +var = var124; +goto RET_LABEL; +} else { +} +{ +var125 = modelbuilder__ModelBuilder__identify_file(self, var_candidate); +} +var = var125; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method modelbuilder#ModelBuilder#search_module_in_paths for (self: Object, nullable Location, String, Collection[String]): nullable ModulePath */ +val* VIRTUAL_modelbuilder__ModelBuilder__search_module_in_paths(val* self, val* p0, val* p1, val* p2) { +val* var /* : nullable ModulePath */; +val* var1 /* : nullable ModulePath */; +var1 = modelbuilder__ModelBuilder__search_module_in_paths(self, p0, p1, p2); +var = var1; +RET_LABEL:; +return var; +} +/* method modelbuilder#ModelBuilder#identified_files for (self: ModelBuilder): HashMap[String, nullable ModulePath] */ +val* modelbuilder__ModelBuilder__identified_files(val* self) { +val* var /* : HashMap[String, nullable ModulePath] */; +val* var1 /* : HashMap[String, nullable ModulePath] */; +var1 = self->attrs[COLOR_modelbuilder__ModelBuilder___identified_files].val; /* _identified_files on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _identified_files"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 405); +show_backtrace(1); +} +var = var1; +RET_LABEL:; +return var; +} +/* method modelbuilder#ModelBuilder#identified_files for (self: Object): HashMap[String, nullable ModulePath] */ +val* VIRTUAL_modelbuilder__ModelBuilder__identified_files(val* self) { +val* var /* : HashMap[String, nullable ModulePath] */; +val* var1 /* : HashMap[String, nullable ModulePath] */; +val* var3 /* : HashMap[String, nullable ModulePath] */; +{ /* Inline modelbuilder#ModelBuilder#identified_files (self) on */ +var3 = self->attrs[COLOR_modelbuilder__ModelBuilder___identified_files].val; /* _identified_files on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _identified_files"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 405); +show_backtrace(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} +var = var1; +RET_LABEL:; +return var; +} +/* method modelbuilder#ModelBuilder#identify_file for (self: ModelBuilder, String): nullable ModulePath */ +val* modelbuilder__ModelBuilder__identify_file(val* self, val* p0) { +val* var /* : nullable ModulePath */; +val* var_path /* var path: String */; +val* var1 /* : nullable String */; +static val* varonce; +val* var2 /* : String */; +char* var3 /* : NativeString */; +long var4 /* : Int */; +val* var5 /* : FlatString */; +short int var6 /* : Bool */; +short int var7 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var9 /* : Bool */; +short int var10 /* : Bool */; +short int var11 /* : Bool */; +val* var12 /* : null */; +val* var13 /* : Array[String] */; +val* var15 /* : Array[String] */; +val* var16 /* : nullable ModulePath */; +val* var_res /* var res: nullable ModulePath */; +val* var17 /* : null */; +short int var18 /* : Bool */; +short int var19 /* : Bool */; +short int var21 /* : Bool */; +short int var22 /* : Bool */; +short int var23 /* : Bool */; +val* var24 /* : null */; +val* var_candidate /* var candidate: nullable Object */; +short int var25 /* : Bool */; +val* var26 /* : nullable MGroup */; +val* var_mgroup /* var mgroup: nullable MGroup */; +val* var27 /* : null */; +short int var28 /* : Bool */; +short int var29 /* : Bool */; +short int var31 /* : Bool */; +short int var32 /* : Bool */; +short int var33 /* : Bool */; +val* var34 /* : nullable String */; +val* var36 /* : nullable String */; +val* var37 /* : String */; +val* var39 /* : String */; +static val* varonce40; +val* var41 /* : String */; +char* var42 /* : NativeString */; +long var43 /* : Int */; +val* var44 /* : FlatString */; +val* var45 /* : String */; +val* var46 /* : String */; +val* var_owner_path /* var owner_path: String */; +short int var47 /* : Bool */; +val* var48 /* : null */; +short int var49 /* : Bool */; +short int var50 /* : Bool */; +val* var51 /* : ToolContext */; +val* var53 /* : ToolContext */; +val* var54 /* : null */; +static val* varonce55; +val* var56 /* : String */; +char* var57 /* : NativeString */; +long var58 /* : Int */; +val* var59 /* : FlatString */; +static val* varonce60; +val* var61 /* : String */; +char* var62 /* : NativeString */; +long var63 /* : Int */; +val* var64 /* : FlatString */; +val* var65 /* : Array[Object] */; +long var66 /* : Int */; +val* var67 /* : NativeArray[Object] */; +val* var68 /* : String */; +val* var69 /* : null */; +static val* varonce70; +val* var71 /* : String */; +char* var72 /* : NativeString */; +long var73 /* : Int */; +val* var74 /* : FlatString */; +val* var75 /* : String */; +val* var_pn /* var pn: String */; +val* var76 /* : String */; +val* var_rp /* var rp: String */; +val* var77 /* : HashMap[String, nullable ModulePath] */; +val* var79 /* : HashMap[String, nullable ModulePath] */; +short int var80 /* : Bool */; +val* var81 /* : HashMap[String, nullable ModulePath] */; +val* var83 /* : HashMap[String, nullable ModulePath] */; +val* var84 /* : nullable Object */; +static val* varonce85; +val* var86 /* : String */; +char* var87 /* : NativeString */; +long var88 /* : Int */; +val* var89 /* : FlatString */; +val* var90 /* : String */; +val* var91 /* : String */; +val* var_mgrouppath /* var mgrouppath: String */; +val* var92 /* : nullable MGroup */; +val* var_mgroup93 /* var mgroup: nullable MGroup */; +val* var94 /* : null */; +short int var95 /* : Bool */; +short int var96 /* : Bool */; +val* var_other98 /* var other: nullable Object */; +short int var99 /* : Bool */; +short int var101 /* : Bool */; +val* var102 /* : MProject */; +val* var103 /* : Model */; +val* var105 /* : Model */; +val* var_mproject /* var mproject: MProject */; +val* var106 /* : MGroup */; +val* var107 /* : null */; +val* var110 /* : ToolContext */; +val* var112 /* : ToolContext */; +static val* varonce113; +val* var114 /* : String */; +char* var115 /* : NativeString */; +long var116 /* : Int */; +val* var117 /* : FlatString */; +static val* varonce118; +val* var119 /* : String */; +char* var120 /* : NativeString */; +long var121 /* : Int */; +val* var122 /* : FlatString */; +val* var123 /* : Array[Object] */; +long var124 /* : Int */; +val* var125 /* : NativeArray[Object] */; +val* var126 /* : String */; +long var127 /* : Int */; +val* var128 /* : ModulePath */; +val* var_res130 /* var res: ModulePath */; +val* var131 /* : Array[ModulePath] */; +val* var133 /* : Array[ModulePath] */; +val* var134 /* : HashMap[String, nullable ModulePath] */; +val* var136 /* : HashMap[String, nullable ModulePath] */; +var_path = p0; +{ +var1 = file__String__file_extension(var_path); +} +if (varonce) { +var2 = varonce; +} else { +var3 = "nit"; +var4 = 3; +var5 = string__NativeString__to_s_with_length(var3, var4); +var2 = var5; +varonce = var2; +} +if (var1 == NULL) { +var6 = 1; /* cannot be null */ +} else { +{ /* Inline kernel#Object#!= (var1,var2) on */ +var_other = var2; +{ +var10 = ((short int (*)(val*, val*))(var1->class->vft[COLOR_kernel__Object___61d_61d]))(var1, var_other) /* == on */; +var9 = var10; +} +var11 = !var9; +var7 = var11; +goto RET_LABEL8; +RET_LABEL8:(void)0; +} +var6 = var7; +} +if (var6){ +var12 = NULL; +{ +{ /* Inline modelbuilder#ModelBuilder#paths (self) on */ +var15 = self->attrs[COLOR_modelbuilder__ModelBuilder___paths].val; /* _paths on */ +if (unlikely(var15 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _paths"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 289); +show_backtrace(1); +} +var13 = var15; +RET_LABEL14:(void)0; +} +} +{ +var16 = modelbuilder__ModelBuilder__search_module_in_paths(self, var12, var_path, var13); +} +var_res = var16; +var17 = NULL; +if (var_res == NULL) { +var18 = 0; /* is null */ +} else { +var18 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_res,var17) on */ +var_other = var17; +{ +var22 = ((short int (*)(val*, val*))(var_res->class->vft[COLOR_kernel__Object___61d_61d]))(var_res, var_other) /* == on */; +var21 = var22; +} +var23 = !var21; +var19 = var23; +goto RET_LABEL20; +RET_LABEL20:(void)0; +} +var18 = var19; +} +if (var18){ +var = var_res; +goto RET_LABEL; +} else { +} +var24 = NULL; +var_candidate = var24; +{ +var25 = file__String__file_exists(var_path); +} +if (var25){ +{ +var26 = modelbuilder__ModelBuilder__get_mgroup(self, var_path); +} +var_mgroup = var26; +var27 = NULL; +if (var_mgroup == NULL) { +var28 = 0; /* is null */ +} else { +var28 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_mgroup,var27) on */ +var_other = var27; +{ +var32 = ((short int (*)(val*, val*))(var_mgroup->class->vft[COLOR_kernel__Object___61d_61d]))(var_mgroup, var_other) /* == on */; +var31 = var32; +} +var33 = !var31; +var29 = var33; +goto RET_LABEL30; +RET_LABEL30:(void)0; +} +var28 = var29; +} +if (var28){ +{ +{ /* Inline mproject#MGroup#filepath (var_mgroup) on */ +var36 = var_mgroup->attrs[COLOR_mproject__MGroup___filepath].val; /* _filepath on */ +var34 = var36; +RET_LABEL35:(void)0; +} +} +{ +{ /* Inline mproject#MGroup#name (var_mgroup) on */ +var39 = var_mgroup->attrs[COLOR_mproject__MGroup___name].val; /* _name on */ +if (unlikely(var39 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); +PRINT_ERROR(" (%s:%d)\n", "src/model/mproject.nit", 56); +show_backtrace(1); +} +var37 = var39; +RET_LABEL38:(void)0; +} +} +if (varonce40) { +var41 = varonce40; +} else { +var42 = ".nit"; +var43 = 4; +var44 = string__NativeString__to_s_with_length(var42, var43); +var41 = var44; +varonce40 = var41; +} +{ +var45 = string__FlatString___43d(var37, var41); +} +if (var34 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 423); +show_backtrace(1); +} else { +var46 = file__String__join_path(var34, var45); +} +var_owner_path = var46; +{ +var47 = file__String__file_exists(var_owner_path); +} +if (var47){ +var_candidate = var_owner_path; +} else { +} +} else { +} +} else { +} +var48 = NULL; +if (var_candidate == NULL) { +var49 = 1; /* is null */ +} else { +var49 = 0; /* arg is null but recv is not */ +} +if (0) { +var50 = string__FlatString___61d_61d(var_candidate, var48); +var49 = var50; +} +if (var49){ +{ +{ /* Inline modelbuilder#ModelBuilder#toolcontext (self) on */ +var53 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var53 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +show_backtrace(1); +} +var51 = var53; +RET_LABEL52:(void)0; +} +} +var54 = NULL; +if (varonce55) { +var56 = varonce55; +} else { +var57 = "Error: cannot find module `"; +var58 = 27; +var59 = string__NativeString__to_s_with_length(var57, var58); +var56 = var59; +varonce55 = var56; +} +if (varonce60) { +var61 = varonce60; +} else { +var62 = "`."; +var63 = 2; +var64 = string__NativeString__to_s_with_length(var62, var63); +var61 = var64; +varonce60 = var61; +} +var65 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var65 = array_instance Array[Object] */ +var66 = 3; +var67 = NEW_array__NativeArray(var66, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var67)->values[0] = (val*) var56; +((struct instance_array__NativeArray*)var67)->values[1] = (val*) var_path; +((struct instance_array__NativeArray*)var67)->values[2] = (val*) var61; +{ +((void (*)(val*, val*, long))(var65->class->vft[COLOR_array__Array__with_native]))(var65, var67, var66) /* with_native on */; +} +} +{ +var68 = ((val* (*)(val*))(var65->class->vft[COLOR_string__Object__to_s]))(var65) /* to_s on */; +} +{ +toolcontext__ToolContext__error(var51, var54, var68); /* Direct call toolcontext#ToolContext#error on */ +} +var69 = NULL; +var = var69; +goto RET_LABEL; +} else { +} +var_path = var_candidate; +} else { +} +if (varonce70) { +var71 = varonce70; +} else { +var72 = ".nit"; +var73 = 4; +var74 = string__NativeString__to_s_with_length(var72, var73); +var71 = var74; +varonce70 = var71; +} +{ +var75 = file__String__basename(var_path, var71); +} +var_pn = var75; +{ +var76 = modelbuilder__ModelBuilder__module_absolute_path(self, var_path); +} +var_rp = var76; +{ +{ /* Inline modelbuilder#ModelBuilder#identified_files (self) on */ +var79 = self->attrs[COLOR_modelbuilder__ModelBuilder___identified_files].val; /* _identified_files on */ +if (unlikely(var79 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _identified_files"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 405); +show_backtrace(1); +} +var77 = var79; +RET_LABEL78:(void)0; +} +} +{ +var80 = abstract_collection__MapRead__has_key(var77, var_rp); +} +if (var80){ +{ +{ /* Inline modelbuilder#ModelBuilder#identified_files (self) on */ +var83 = self->attrs[COLOR_modelbuilder__ModelBuilder___identified_files].val; /* _identified_files on */ +if (unlikely(var83 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _identified_files"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 405); show_backtrace(1); -} else { -var82 = ((val* (*)(val*))(var81->class->vft[COLOR_mproject__MGroup__filepath]))(var81) /* filepath on */; } -var_dirname83 = var82; -var84 = NULL; -if (var_dirname83 == NULL) { -var85 = 0; /* is null */ -} else { -var85 = 1; /* arg is null and recv is not */ +var81 = var83; +RET_LABEL82:(void)0; } -if (var85){ -if (varonce86) { -var87 = varonce86; -} else { -var88 = ".."; -var89 = 2; -var90 = string__NativeString__to_s_with_length(var88, var89); -var87 = var90; -varonce86 = var87; } -var91 = ((val* (*)(val*, val*))(var_dirname83->class->vft[COLOR_file__String__join_path]))(var_dirname83, var87) /* join_path on */; -var92 = ((val* (*)(val*))(var91->class->vft[COLOR_file__String__simplify_path]))(var91) /* simplify_path on */; -var_dirname83 = var92; -var94 = ((short int (*)(val*, val*))(var_lookpaths->class->vft[COLOR_abstract_collection__Collection__has]))(var_lookpaths, var_dirname83) /* has on */; -var95 = !var94; -var_96 = var95; -if (var95){ -var97 = ((short int (*)(val*))(var_dirname83->class->vft[COLOR_file__String__file_exists]))(var_dirname83) /* file_exists on */; -var93 = var97; -} else { -var93 = var_96; +{ +var84 = hash_collection__HashMap___91d_93d(var81, var_rp); } -if (var93){ -var98 = ((val* (*)(val*))(var_lookpaths->class->vft[COLOR_array__Collection__to_a]))(var_lookpaths) /* to_a on */; -var_lookpaths = var98; -((void (*)(val*, val*))(var_lookpaths->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_lookpaths, var_dirname83) /* add on */; +var = var84; +goto RET_LABEL; } else { } +if (varonce85) { +var86 = varonce85; } else { +var87 = ".."; +var88 = 2; +var89 = string__NativeString__to_s_with_length(var87, var88); +var86 = var89; +varonce85 = var86; } -} else { +{ +var90 = file__String__join_path(var_path, var86); } -var99 = NULL; -var_candidate = var99; -var100 = ((val* (*)(val*))(var_lookpaths->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_lookpaths) /* iterator on */; -for(;;) { -var101 = ((short int (*)(val*))(var100->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var100) /* is_ok on */; -if(!var101) break; -var102 = ((val* (*)(val*))(var100->class->vft[COLOR_abstract_collection__Iterator__item]))(var100) /* item on */; -var_dirname103 = var102; -if (varonce104) { -var105 = varonce104; -} else { -var106 = "/"; -var107 = 1; -var108 = string__NativeString__to_s_with_length(var106, var107); -var105 = var108; -varonce104 = var105; -} -var109 = ((val* (*)(val*, val*))(var_dirname103->class->vft[COLOR_string__String___43d]))(var_dirname103, var105) /* + on */; -var110 = ((val* (*)(val*, val*))(var109->class->vft[COLOR_string__String___43d]))(var109, var_name) /* + on */; -if (varonce111) { -var112 = varonce111; -} else { -var113 = ".nit"; -var114 = 4; -var115 = string__NativeString__to_s_with_length(var113, var114); -var112 = var115; -varonce111 = var112; +{ +var91 = file__String__simplify_path(var90); } -var116 = ((val* (*)(val*, val*))(var110->class->vft[COLOR_string__String___43d]))(var110, var112) /* + on */; -var117 = ((val* (*)(val*))(var116->class->vft[COLOR_file__String__simplify_path]))(var116) /* simplify_path on */; -var_try_file118 = var117; -((void (*)(val*, val*))(var_tries->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_tries, var_try_file118) /* add on */; -var119 = ((short int (*)(val*))(var_try_file118->class->vft[COLOR_file__String__file_exists]))(var_try_file118) /* file_exists on */; -if (var119){ -var120 = NULL; -if (var_candidate == NULL) { -var121 = 1; /* is null */ -} else { -var121 = 0; /* arg is null but recv is not */ +var_mgrouppath = var91; +{ +var92 = modelbuilder__ModelBuilder__get_mgroup(self, var_mgrouppath); } -if (var121){ -var_candidate = var_try_file118; +var_mgroup93 = var92; +var94 = NULL; +if (var_mgroup93 == NULL) { +var95 = 1; /* is null */ } else { -var122 = ((short int (*)(val*, val*))(var_candidate->class->vft[COLOR_kernel__Object___33d_61d]))(var_candidate, var_try_file118) /* != on */; -if (var122){ -var123 = ((val* (*)(val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__module_absolute_path]))(self, var_candidate) /* module_absolute_path on */; -var_abs_candidate = var123; -var124 = ((val* (*)(val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__module_absolute_path]))(self, var_try_file118) /* module_absolute_path on */; -var_abs_try_file = var124; -var125 = ((short int (*)(val*, val*))(var_abs_candidate->class->vft[COLOR_kernel__Object___33d_61d]))(var_abs_candidate, var_abs_try_file) /* != on */; -if (var125){ -if (varonce126) { -var127 = varonce126; -} else { -var128 = "Error: conflicting module file for "; -var129 = 35; -var130 = string__NativeString__to_s_with_length(var128, var129); -var127 = var130; -varonce126 = var127; -} -if (varonce131) { -var132 = varonce131; -} else { -var133 = ": "; -var134 = 2; -var135 = string__NativeString__to_s_with_length(var133, var134); -var132 = var135; -varonce131 = var132; -} -if (varonce136) { -var137 = varonce136; -} else { -var138 = " "; -var139 = 1; -var140 = string__NativeString__to_s_with_length(var138, var139); -var137 = var140; -varonce136 = var137; -} -var141 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var141 = array_instance Array[Object] */ -var142 = 6; -var143 = NEW_array__NativeArray(var142, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var143)->values[0] = (val*) var127; -((struct instance_array__NativeArray*)var143)->values[1] = (val*) var_name; -((struct instance_array__NativeArray*)var143)->values[2] = (val*) var132; -((struct instance_array__NativeArray*)var143)->values[3] = (val*) var_candidate; -((struct instance_array__NativeArray*)var143)->values[4] = (val*) var137; -((struct instance_array__NativeArray*)var143)->values[5] = (val*) var_try_file118; -((void (*)(val*, val*, long))(var141->class->vft[COLOR_array__Array__with_native]))(var141, var143, var142) /* with_native on */; +var95 = 0; /* arg is null but recv is not */ } -var144 = ((val* (*)(val*))(var141->class->vft[COLOR_string__Object__to_s]))(var141) /* to_s on */; -((void (*)(val*, val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(self, var_anode, var144) /* error on */; -} else { +if (0) { +{ /* Inline kernel#Object#== (var_mgroup93,var94) on */ +var_other98 = var94; +{ +{ /* Inline kernel#Object#is_same_instance (var_mgroup93,var_other98) on */ +var101 = var_mgroup93 == var_other98; +var99 = var101; +goto RET_LABEL100; +RET_LABEL100:(void)0; } -} else { } +var96 = var99; +goto RET_LABEL97; +RET_LABEL97:(void)0; } -} else { +var95 = var96; } -if (varonce145) { -var146 = varonce145; -} else { -var147 = "/"; -var148 = 1; -var149 = string__NativeString__to_s_with_length(var147, var148); -var146 = var149; -varonce145 = var146; +if (var95){ +var102 = NEW_mproject__MProject(&type_mproject__MProject); +{ +{ /* Inline modelbuilder#ModelBuilder#model (self) on */ +var105 = self->attrs[COLOR_modelbuilder__ModelBuilder___model].val; /* _model on */ +if (unlikely(var105 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 98); +show_backtrace(1); } -var150 = ((val* (*)(val*, val*))(var_dirname103->class->vft[COLOR_string__String___43d]))(var_dirname103, var146) /* + on */; -var151 = ((val* (*)(val*, val*))(var150->class->vft[COLOR_string__String___43d]))(var150, var_name) /* + on */; -if (varonce152) { -var153 = varonce152; -} else { -var154 = "/"; -var155 = 1; -var156 = string__NativeString__to_s_with_length(var154, var155); -var153 = var156; -varonce152 = var153; -} -var157 = ((val* (*)(val*, val*))(var151->class->vft[COLOR_string__String___43d]))(var151, var153) /* + on */; -var158 = ((val* (*)(val*, val*))(var157->class->vft[COLOR_string__String___43d]))(var157, var_name) /* + on */; -if (varonce159) { -var160 = varonce159; -} else { -var161 = ".nit"; -var162 = 4; -var163 = string__NativeString__to_s_with_length(var161, var162); -var160 = var163; -varonce159 = var160; -} -var164 = ((val* (*)(val*, val*))(var158->class->vft[COLOR_string__String___43d]))(var158, var160) /* + on */; -var165 = ((val* (*)(val*))(var164->class->vft[COLOR_file__String__simplify_path]))(var164) /* simplify_path on */; -var_try_file118 = var165; -var166 = ((short int (*)(val*))(var_try_file118->class->vft[COLOR_file__String__file_exists]))(var_try_file118) /* file_exists on */; -if (var166){ -var167 = NULL; -if (var_candidate == NULL) { -var168 = 1; /* is null */ -} else { -var168 = 0; /* arg is null but recv is not */ +var103 = var105; +RET_LABEL104:(void)0; } -if (var168){ -var_candidate = var_try_file118; -} else { -var169 = ((short int (*)(val*, val*))(var_candidate->class->vft[COLOR_kernel__Object___33d_61d]))(var_candidate, var_try_file118) /* != on */; -if (var169){ -var170 = ((val* (*)(val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__module_absolute_path]))(self, var_candidate) /* module_absolute_path on */; -var_abs_candidate171 = var170; -var172 = ((val* (*)(val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__module_absolute_path]))(self, var_try_file118) /* module_absolute_path on */; -var_abs_try_file173 = var172; -var174 = ((short int (*)(val*, val*))(var_abs_candidate171->class->vft[COLOR_kernel__Object___33d_61d]))(var_abs_candidate171, var_abs_try_file173) /* != on */; -if (var174){ -if (varonce175) { -var176 = varonce175; -} else { -var177 = "Error: conflicting module file for "; -var178 = 35; -var179 = string__NativeString__to_s_with_length(var177, var178); -var176 = var179; -varonce175 = var176; } -if (varonce180) { -var181 = varonce180; -} else { -var182 = ": "; -var183 = 2; -var184 = string__NativeString__to_s_with_length(var182, var183); -var181 = var184; -varonce180 = var181; +{ +mproject__MProject__init(var102, var_pn, var103); /* Direct call mproject#MProject#init on */ } -if (varonce185) { -var186 = varonce185; -} else { -var187 = " "; -var188 = 1; -var189 = string__NativeString__to_s_with_length(var187, var188); -var186 = var189; -varonce185 = var186; +var_mproject = var102; +var106 = NEW_mproject__MGroup(&type_mproject__MGroup); +var107 = NULL; +{ +mproject__MGroup__init(var106, var_pn, var_mproject, var107); /* Direct call mproject#MGroup#init on */ } -var190 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var190 = array_instance Array[Object] */ -var191 = 6; -var192 = NEW_array__NativeArray(var191, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var192)->values[0] = (val*) var176; -((struct instance_array__NativeArray*)var192)->values[1] = (val*) var_name; -((struct instance_array__NativeArray*)var192)->values[2] = (val*) var181; -((struct instance_array__NativeArray*)var192)->values[3] = (val*) var_candidate; -((struct instance_array__NativeArray*)var192)->values[4] = (val*) var186; -((struct instance_array__NativeArray*)var192)->values[5] = (val*) var_try_file118; -((void (*)(val*, val*, long))(var190->class->vft[COLOR_array__Array__with_native]))(var190, var192, var191) /* with_native on */; +var_mgroup93 = var106; +{ +{ /* Inline mproject#MGroup#filepath= (var_mgroup93,var_path) on */ +var_mgroup93->attrs[COLOR_mproject__MGroup___filepath].val = var_path; /* _filepath on */ +RET_LABEL108:(void)0; } -var193 = ((val* (*)(val*))(var190->class->vft[COLOR_string__Object__to_s]))(var190) /* to_s on */; -((void (*)(val*, val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(self, var_anode, var193) /* error on */; -} else { } -} else { +{ +{ /* Inline mproject#MProject#root= (var_mproject,var_mgroup93) on */ +var_mproject->attrs[COLOR_mproject__MProject___root].val = var_mgroup93; /* _root on */ +RET_LABEL109:(void)0; } } -} else { +{ +{ /* Inline modelbuilder#ModelBuilder#toolcontext (self) on */ +var112 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var112 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +show_backtrace(1); } -CONTINUE_label194: (void)0; -((void (*)(val*))(var100->class->vft[COLOR_abstract_collection__Iterator__next]))(var100) /* next on */; +var110 = var112; +RET_LABEL111:(void)0; } -BREAK_label194: (void)0; -var195 = NULL; -if (var_candidate == NULL) { -var196 = 1; /* is null */ -} else { -var196 = 0; /* arg is null but recv is not */ } -if (var196){ -var197 = NULL; -if (var_mmodule == NULL) { -var198 = 0; /* is null */ -} else { -var198 = 1; /* arg is null and recv is not */ -} -if (var198){ -if (varonce199) { -var200 = varonce199; -} else { -var201 = "Error: cannot find module "; -var202 = 26; -var203 = string__NativeString__to_s_with_length(var201, var202); -var200 = var203; -varonce199 = var200; -} -if (varonce204) { -var205 = varonce204; -} else { -var206 = " from "; -var207 = 6; -var208 = string__NativeString__to_s_with_length(var206, var207); -var205 = var208; -varonce204 = var205; -} -if (varonce209) { -var210 = varonce209; -} else { -var211 = ". tried "; -var212 = 8; -var213 = string__NativeString__to_s_with_length(var211, var212); -var210 = var213; -varonce209 = var210; -} -if (varonce214) { -var215 = varonce214; -} else { -var216 = ", "; -var217 = 2; -var218 = string__NativeString__to_s_with_length(var216, var217); -var215 = var218; -varonce214 = var215; -} -var219 = ((val* (*)(val*, val*))(var_tries->class->vft[COLOR_string__Collection__join]))(var_tries, var215) /* join on */; -var220 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var220 = array_instance Array[Object] */ -var221 = 6; -var222 = NEW_array__NativeArray(var221, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var222)->values[0] = (val*) var200; -((struct instance_array__NativeArray*)var222)->values[1] = (val*) var_name; -((struct instance_array__NativeArray*)var222)->values[2] = (val*) var205; -((struct instance_array__NativeArray*)var222)->values[3] = (val*) var_mmodule; -((struct instance_array__NativeArray*)var222)->values[4] = (val*) var210; -((struct instance_array__NativeArray*)var222)->values[5] = (val*) var219; -((void (*)(val*, val*, long))(var220->class->vft[COLOR_array__Array__with_native]))(var220, var222, var221) /* with_native on */; -} -var223 = ((val* (*)(val*))(var220->class->vft[COLOR_string__Object__to_s]))(var220) /* to_s on */; -((void (*)(val*, val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(self, var_anode, var223) /* error on */; -} else { -if (varonce224) { -var225 = varonce224; -} else { -var226 = "Error: cannot find module "; -var227 = 26; -var228 = string__NativeString__to_s_with_length(var226, var227); -var225 = var228; -varonce224 = var225; -} -if (varonce229) { -var230 = varonce229; -} else { -var231 = ". tried "; -var232 = 8; -var233 = string__NativeString__to_s_with_length(var231, var232); -var230 = var233; -varonce229 = var230; -} -if (varonce234) { -var235 = varonce234; -} else { -var236 = ", "; -var237 = 2; -var238 = string__NativeString__to_s_with_length(var236, var237); -var235 = var238; -varonce234 = var235; -} -var239 = ((val* (*)(val*, val*))(var_tries->class->vft[COLOR_string__Collection__join]))(var_tries, var235) /* join on */; -var240 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var240 = array_instance Array[Object] */ -var241 = 4; -var242 = NEW_array__NativeArray(var241, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var242)->values[0] = (val*) var225; -((struct instance_array__NativeArray*)var242)->values[1] = (val*) var_name; -((struct instance_array__NativeArray*)var242)->values[2] = (val*) var230; -((struct instance_array__NativeArray*)var242)->values[3] = (val*) var239; -((void (*)(val*, val*, long))(var240->class->vft[COLOR_array__Array__with_native]))(var240, var242, var241) /* with_native on */; -} -var243 = ((val* (*)(val*))(var240->class->vft[COLOR_string__Object__to_s]))(var240) /* to_s on */; -((void (*)(val*, val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(self, var_anode, var243) /* error on */; -} -var244 = NULL; -var = var244; -goto RET_LABEL; +if (varonce113) { +var114 = varonce113; } else { +var115 = "found project `"; +var116 = 15; +var117 = string__NativeString__to_s_with_length(var115, var116); +var114 = var117; +varonce113 = var114; } -var245 = ((val* (*)(val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__load_module]))(self, var_candidate) /* load_module on */; -var_res246 = var245; -var247 = NULL; -if (var_res246 == NULL) { -var248 = 1; /* is null */ +if (varonce118) { +var119 = varonce118; } else { -var248 = 0; /* arg is null but recv is not */ +var120 = "` at "; +var121 = 5; +var122 = string__NativeString__to_s_with_length(var120, var121); +var119 = var122; +varonce118 = var119; } -if (var248){ -var249 = NULL; -var = var249; -goto RET_LABEL; -} else { +var123 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var123 = array_instance Array[Object] */ +var124 = 4; +var125 = NEW_array__NativeArray(var124, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var125)->values[0] = (val*) var114; +((struct instance_array__NativeArray*)var125)->values[1] = (val*) var_pn; +((struct instance_array__NativeArray*)var125)->values[2] = (val*) var119; +((struct instance_array__NativeArray*)var125)->values[3] = (val*) var_path; +{ +((void (*)(val*, val*, long))(var123->class->vft[COLOR_array__Array__with_native]))(var123, var125, var124) /* with_native on */; } -var250 = ((val* (*)(val*))(var_res246->class->vft[COLOR_modelbuilder__AModule__mmodule]))(var_res246) /* mmodule on */; -if (var250 == NULL) { -fprintf(stderr, "Runtime error: %s", "Cast failed"); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 344); -show_backtrace(1); } -var = var250; -goto RET_LABEL; -RET_LABEL:; -return var; +{ +var126 = ((val* (*)(val*))(var123->class->vft[COLOR_string__Object__to_s]))(var123) /* to_s on */; } -/* method modelbuilder#ModelBuilder#get_mmodule_by_name for (self: Object, ANode, nullable MModule, String): nullable MModule */ -val* VIRTUAL_modelbuilder__ModelBuilder__get_mmodule_by_name(val* self, val* p0, val* p1, val* p2) { -val* var /* : nullable MModule */; -val* var1 /* : nullable MModule */; -var1 = modelbuilder__ModelBuilder__get_mmodule_by_name(self, p0, p1, p2); -var = var1; -RET_LABEL:; -return var; +var127 = 2; +{ +toolcontext__ToolContext__info(var110, var126, var127); /* Direct call toolcontext#ToolContext#info on */ } -/* method modelbuilder#ModelBuilder#identified_files for (self: ModelBuilder): HashMap[String, nullable ModulePath] */ -val* modelbuilder__ModelBuilder__identified_files(val* self) { -val* var /* : HashMap[String, nullable ModulePath] */; -val* var1 /* : HashMap[String, nullable ModulePath] */; -var1 = self->attrs[COLOR_modelbuilder__ModelBuilder___64didentified_files].val; /* @identified_files on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @identified_files"); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 347); -show_backtrace(1); +} else { } -var = var1; -RET_LABEL:; -return var; +var128 = NEW_modelbuilder__ModulePath(&type_modelbuilder__ModulePath); +{ +{ /* Inline modelbuilder#ModulePath#init (var128,var_pn,var_path,var_mgroup93) on */ +var128->attrs[COLOR_modelbuilder__ModulePath___name].val = var_pn; /* _name on */ +var128->attrs[COLOR_modelbuilder__ModulePath___filepath].val = var_path; /* _filepath on */ +var128->attrs[COLOR_modelbuilder__ModulePath___mgroup].val = var_mgroup93; /* _mgroup on */ +RET_LABEL129:(void)0; } -/* method modelbuilder#ModelBuilder#identified_files for (self: Object): HashMap[String, nullable ModulePath] */ -val* VIRTUAL_modelbuilder__ModelBuilder__identified_files(val* self) { -val* var /* : HashMap[String, nullable ModulePath] */; -val* var1 /* : HashMap[String, nullable ModulePath] */; -var1 = modelbuilder__ModelBuilder__identified_files(self); -var = var1; -RET_LABEL:; -return var; } -/* method modelbuilder#ModelBuilder#identified_files= for (self: ModelBuilder, HashMap[String, nullable ModulePath]) */ -void modelbuilder__ModelBuilder__identified_files_61d(val* self, val* p0) { -self->attrs[COLOR_modelbuilder__ModelBuilder___64didentified_files].val = p0; /* @identified_files on */ -RET_LABEL:; +var_res130 = var128; +{ +{ /* Inline modelbuilder#MGroup#module_paths (var_mgroup93) on */ +var133 = var_mgroup93->attrs[COLOR_modelbuilder__MGroup___module_paths].val; /* _module_paths on */ +if (unlikely(var133 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _module_paths"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 746); +show_backtrace(1); } -/* method modelbuilder#ModelBuilder#identified_files= for (self: Object, HashMap[String, nullable ModulePath]) */ -void VIRTUAL_modelbuilder__ModelBuilder__identified_files_61d(val* self, val* p0) { -modelbuilder__ModelBuilder__identified_files_61d(self, p0); -RET_LABEL:; +var131 = var133; +RET_LABEL132:(void)0; } -/* method modelbuilder#ModelBuilder#identify_file for (self: ModelBuilder, String): nullable ModulePath */ -val* modelbuilder__ModelBuilder__identify_file(val* self, val* p0) { -val* var /* : nullable ModulePath */; -val* var_path /* var path: String */; -short int var1 /* : Bool */; -short int var2 /* : Bool */; -val* var3 /* : ToolContext */; -val* var4 /* : null */; -static val* varonce; -val* var5 /* : String */; -char* var6 /* : NativeString */; -long var7 /* : Int */; -val* var8 /* : String */; -static val* varonce9; -val* var10 /* : String */; -char* var11 /* : NativeString */; -long var12 /* : Int */; -val* var13 /* : String */; -val* var14 /* : Array[Object] */; -long var15 /* : Int */; -val* var16 /* : NativeArray[Object] */; -val* var17 /* : String */; -val* var18 /* : null */; -static val* varonce19; -val* var20 /* : String */; -char* var21 /* : NativeString */; -long var22 /* : Int */; -val* var23 /* : String */; -val* var24 /* : String */; -val* var_pn /* var pn: String */; -val* var25 /* : String */; -val* var_rp /* var rp: String */; -val* var26 /* : HashMap[String, nullable ModulePath] */; -short int var27 /* : Bool */; -val* var28 /* : HashMap[String, nullable ModulePath] */; -val* var29 /* : nullable Object */; -static val* varonce30; -val* var31 /* : String */; -char* var32 /* : NativeString */; -long var33 /* : Int */; -val* var34 /* : String */; -val* var35 /* : String */; -val* var36 /* : String */; -val* var_mgrouppath /* var mgrouppath: String */; -val* var37 /* : nullable MGroup */; -val* var_mgroup /* var mgroup: nullable MGroup */; -val* var38 /* : null */; -short int var39 /* : Bool */; -val* var40 /* : MProject */; -val* var41 /* : Model */; -val* var_mproject /* var mproject: MProject */; -val* var42 /* : MGroup */; -val* var43 /* : null */; -val* var44 /* : ToolContext */; -static val* varonce45; -val* var46 /* : String */; -char* var47 /* : NativeString */; -long var48 /* : Int */; -val* var49 /* : String */; -static val* varonce50; -val* var51 /* : String */; -char* var52 /* : NativeString */; -long var53 /* : Int */; -val* var54 /* : String */; -val* var55 /* : Array[Object] */; -long var56 /* : Int */; -val* var57 /* : NativeArray[Object] */; -val* var58 /* : String */; -long var59 /* : Int */; -val* var60 /* : ModulePath */; -val* var_res /* var res: ModulePath */; -val* var61 /* : HashMap[String, nullable ModulePath] */; -var_path = p0; -var1 = ((short int (*)(val*))(var_path->class->vft[COLOR_file__String__file_exists]))(var_path) /* file_exists on */; -var2 = !var1; -if (var2){ -var3 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(self) /* toolcontext on */; -var4 = NULL; -if (varonce) { -var5 = varonce; -} else { -var6 = "Error: `"; -var7 = 8; -var8 = string__NativeString__to_s_with_length(var6, var7); -var5 = var8; -varonce = var5; } -if (varonce9) { -var10 = varonce9; -} else { -var11 = "` does not exists"; -var12 = 17; -var13 = string__NativeString__to_s_with_length(var11, var12); -var10 = var13; -varonce9 = var10; -} -var14 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var14 = array_instance Array[Object] */ -var15 = 3; -var16 = NEW_array__NativeArray(var15, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var16)->values[0] = (val*) var5; -((struct instance_array__NativeArray*)var16)->values[1] = (val*) var_path; -((struct instance_array__NativeArray*)var16)->values[2] = (val*) var10; -((void (*)(val*, val*, long))(var14->class->vft[COLOR_array__Array__with_native]))(var14, var16, var15) /* with_native on */; -} -var17 = ((val* (*)(val*))(var14->class->vft[COLOR_string__Object__to_s]))(var14) /* to_s on */; -((void (*)(val*, val*, val*))(var3->class->vft[COLOR_toolcontext__ToolContext__error]))(var3, var4, var17) /* error on */; -var18 = NULL; -var = var18; -goto RET_LABEL; -} else { +{ +array__Array__add(var131, var_res130); /* Direct call array#Array#add on */ } -if (varonce19) { -var20 = varonce19; -} else { -var21 = ".nit"; -var22 = 4; -var23 = string__NativeString__to_s_with_length(var21, var22); -var20 = var23; -varonce19 = var20; +{ +{ /* Inline modelbuilder#ModelBuilder#identified_files (self) on */ +var136 = self->attrs[COLOR_modelbuilder__ModelBuilder___identified_files].val; /* _identified_files on */ +if (unlikely(var136 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _identified_files"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 405); +show_backtrace(1); } -var24 = ((val* (*)(val*, val*))(var_path->class->vft[COLOR_file__String__basename]))(var_path, var20) /* basename on */; -var_pn = var24; -var25 = ((val* (*)(val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__module_absolute_path]))(self, var_path) /* module_absolute_path on */; -var_rp = var25; -var26 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__identified_files]))(self) /* identified_files on */; -var27 = ((short int (*)(val*, val*))(var26->class->vft[COLOR_abstract_collection__MapRead__has_key]))(var26, var_rp) /* has_key on */; -if (var27){ -var28 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__identified_files]))(self) /* identified_files on */; -var29 = ((val* (*)(val*, val*))(var28->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var28, var_rp) /* [] on */; -var = var29; -goto RET_LABEL; -} else { +var134 = var136; +RET_LABEL135:(void)0; } -if (varonce30) { -var31 = varonce30; -} else { -var32 = ".."; -var33 = 2; -var34 = string__NativeString__to_s_with_length(var32, var33); -var31 = var34; -varonce30 = var31; } -var35 = ((val* (*)(val*, val*))(var_path->class->vft[COLOR_file__String__join_path]))(var_path, var31) /* join_path on */; -var36 = ((val* (*)(val*))(var35->class->vft[COLOR_file__String__simplify_path]))(var35) /* simplify_path on */; -var_mgrouppath = var36; -var37 = ((val* (*)(val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__get_mgroup]))(self, var_mgrouppath) /* get_mgroup on */; -var_mgroup = var37; -var38 = NULL; -if (var_mgroup == NULL) { -var39 = 1; /* is null */ -} else { -var39 = 0; /* arg is null but recv is not */ +{ +hash_collection__HashMap___91d_93d_61d(var134, var_rp, var_res130); /* Direct call hash_collection#HashMap#[]= on */ } -if (var39){ -var40 = NEW_mproject__MProject(&type_mproject__MProject); -var41 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__model]))(self) /* model on */; -((void (*)(val*, val*, val*))(var40->class->vft[COLOR_mproject__MProject__init]))(var40, var_pn, var41) /* init on */; -var_mproject = var40; -var42 = NEW_mproject__MGroup(&type_mproject__MGroup); -var43 = NULL; -((void (*)(val*, val*, val*, val*))(var42->class->vft[COLOR_mproject__MGroup__init]))(var42, var_pn, var_mproject, var43) /* init on */; -var_mgroup = var42; -((void (*)(val*, val*))(var_mgroup->class->vft[COLOR_mproject__MGroup__filepath_61d]))(var_mgroup, var_path) /* filepath= on */; -((void (*)(val*, val*))(var_mproject->class->vft[COLOR_mproject__MProject__root_61d]))(var_mproject, var_mgroup) /* root= on */; -var44 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(self) /* toolcontext on */; -if (varonce45) { -var46 = varonce45; -} else { -var47 = "found project `"; -var48 = 15; -var49 = string__NativeString__to_s_with_length(var47, var48); -var46 = var49; -varonce45 = var46; -} -if (varonce50) { -var51 = varonce50; -} else { -var52 = "` at "; -var53 = 5; -var54 = string__NativeString__to_s_with_length(var52, var53); -var51 = var54; -varonce50 = var51; -} -var55 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var55 = array_instance Array[Object] */ -var56 = 4; -var57 = NEW_array__NativeArray(var56, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var57)->values[0] = (val*) var46; -((struct instance_array__NativeArray*)var57)->values[1] = (val*) var_pn; -((struct instance_array__NativeArray*)var57)->values[2] = (val*) var51; -((struct instance_array__NativeArray*)var57)->values[3] = (val*) var_path; -((void (*)(val*, val*, long))(var55->class->vft[COLOR_array__Array__with_native]))(var55, var57, var56) /* with_native on */; -} -var58 = ((val* (*)(val*))(var55->class->vft[COLOR_string__Object__to_s]))(var55) /* to_s on */; -var59 = 2; -((void (*)(val*, val*, long))(var44->class->vft[COLOR_toolcontext__ToolContext__info]))(var44, var58, var59) /* info on */; -} else { -} -var60 = NEW_modelbuilder__ModulePath(&type_modelbuilder__ModulePath); -((void (*)(val*, val*, val*, val*))(var60->class->vft[COLOR_modelbuilder__ModulePath__init]))(var60, var_pn, var_path, var_mgroup) /* init on */; -var_res = var60; -var61 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__identified_files]))(self) /* identified_files on */; -((void (*)(val*, val*, val*))(var61->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var61, var_rp, var_res) /* []= on */; -var = var_res; +var = var_res130; goto RET_LABEL; RET_LABEL:; return var; @@ -2453,10 +4668,10 @@ return var; val* modelbuilder__ModelBuilder__mgroups(val* self) { val* var /* : HashMap[String, nullable MGroup] */; val* var1 /* : HashMap[String, nullable MGroup] */; -var1 = self->attrs[COLOR_modelbuilder__ModelBuilder___64dmgroups].val; /* @mgroups on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mgroups"); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 383); +var1 = self->attrs[COLOR_modelbuilder__ModelBuilder___mgroups].val; /* _mgroups on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mgroups"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 460); show_backtrace(1); } var = var1; @@ -2467,20 +4682,20 @@ return var; val* VIRTUAL_modelbuilder__ModelBuilder__mgroups(val* self) { val* var /* : HashMap[String, nullable MGroup] */; val* var1 /* : HashMap[String, nullable MGroup] */; -var1 = modelbuilder__ModelBuilder__mgroups(self); -var = var1; -RET_LABEL:; -return var; +val* var3 /* : HashMap[String, nullable MGroup] */; +{ /* Inline modelbuilder#ModelBuilder#mgroups (self) on */ +var3 = self->attrs[COLOR_modelbuilder__ModelBuilder___mgroups].val; /* _mgroups on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mgroups"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 460); +show_backtrace(1); } -/* method modelbuilder#ModelBuilder#mgroups= for (self: ModelBuilder, HashMap[String, nullable MGroup]) */ -void modelbuilder__ModelBuilder__mgroups_61d(val* self, val* p0) { -self->attrs[COLOR_modelbuilder__ModelBuilder___64dmgroups].val = p0; /* @mgroups on */ -RET_LABEL:; +var1 = var3; +RET_LABEL2:(void)0; } -/* method modelbuilder#ModelBuilder#mgroups= for (self: Object, HashMap[String, nullable MGroup]) */ -void VIRTUAL_modelbuilder__ModelBuilder__mgroups_61d(val* self, val* p0) { -modelbuilder__ModelBuilder__mgroups_61d(self, p0); +var = var1; RET_LABEL:; +return var; } /* method modelbuilder#ModelBuilder#get_mgroup for (self: ModelBuilder, String): nullable MGroup */ val* modelbuilder__ModelBuilder__get_mgroup(val* self, val* p0) { @@ -2489,230 +4704,553 @@ val* var_dirpath /* var dirpath: String */; val* var1 /* : String */; val* var_rdp /* var rdp: String */; val* var2 /* : HashMap[String, nullable MGroup] */; -short int var3 /* : Bool */; val* var4 /* : HashMap[String, nullable MGroup] */; -val* var5 /* : nullable Object */; +short int var5 /* : Bool */; +val* var6 /* : HashMap[String, nullable MGroup] */; +val* var8 /* : HashMap[String, nullable MGroup] */; +val* var9 /* : nullable Object */; static val* varonce; -val* var6 /* : String */; -char* var7 /* : NativeString */; -long var8 /* : Int */; -val* var9 /* : String */; val* var10 /* : String */; +char* var11 /* : NativeString */; +long var12 /* : Int */; +val* var13 /* : FlatString */; +val* var14 /* : String */; val* var_pn /* var pn: String */; -static val* varonce11; -val* var12 /* : String */; -char* var13 /* : NativeString */; -long var14 /* : Int */; -val* var15 /* : String */; +static val* varonce15; val* var16 /* : String */; -val* var17 /* : String */; -val* var18 /* : String */; +char* var17 /* : NativeString */; +long var18 /* : Int */; +val* var19 /* : FlatString */; +val* var20 /* : String */; +val* var21 /* : String */; +val* var22 /* : String */; val* var_mp /* var mp: String */; -short int var19 /* : Bool */; -short int var20 /* : Bool */; -val* var21 /* : null */; -static val* varonce22; -val* var23 /* : String */; -char* var24 /* : NativeString */; -long var25 /* : Int */; +val* var_dirpath2 /* var dirpath2: String */; +short int var23 /* : Bool */; +short int var24 /* : Bool */; +static val* varonce25; val* var26 /* : String */; -val* var27 /* : String */; -val* var28 /* : String */; -val* var_parentpath /* var parentpath: String */; -val* var29 /* : nullable MGroup */; -val* var_parent /* var parent: nullable MGroup */; -val* var30 /* : null */; +char* var27 /* : NativeString */; +long var28 /* : Int */; +val* var29 /* : FlatString */; +short int var30 /* : Bool */; short int var31 /* : Bool */; -val* var32 /* : MProject */; -val* var33 /* : Model */; -val* var_mproject /* var mproject: MProject */; -val* var34 /* : MGroup */; -val* var35 /* : null */; -val* var_mgroup /* var mgroup: nullable Object */; -val* var36 /* : ToolContext */; -static val* varonce37; +val* var32 /* : String */; +static val* varonce33; +val* var34 /* : String */; +char* var35 /* : NativeString */; +long var36 /* : Int */; +val* var37 /* : FlatString */; val* var38 /* : String */; -char* var39 /* : NativeString */; -long var40 /* : Int */; +val* var39 /* : null */; +static val* varonce40; val* var41 /* : String */; -static val* varonce42; -val* var43 /* : String */; -char* var44 /* : NativeString */; -long var45 /* : Int */; +char* var42 /* : NativeString */; +long var43 /* : Int */; +val* var44 /* : FlatString */; +val* var45 /* : String */; val* var46 /* : String */; -val* var47 /* : Array[Object] */; -long var48 /* : Int */; -val* var49 /* : NativeArray[Object] */; -val* var50 /* : String */; -long var51 /* : Int */; -val* var52 /* : MGroup */; -val* var53 /* : MProject */; -val* var54 /* : ToolContext */; -static val* varonce55; -val* var56 /* : String */; -char* var57 /* : NativeString */; -long var58 /* : Int */; -val* var59 /* : String */; -val* var60 /* : String */; -static val* varonce61; -val* var62 /* : String */; -char* var63 /* : NativeString */; -long var64 /* : Int */; -val* var65 /* : String */; -val* var66 /* : Array[Object] */; -long var67 /* : Int */; -val* var68 /* : NativeArray[Object] */; -val* var69 /* : String */; -long var70 /* : Int */; -val* var71 /* : HashMap[String, nullable MGroup] */; +val* var_parentpath /* var parentpath: String */; +val* var47 /* : nullable MGroup */; +val* var_parent /* var parent: nullable MGroup */; +val* var48 /* : null */; +short int var49 /* : Bool */; +short int var50 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var52 /* : Bool */; +short int var54 /* : Bool */; +val* var55 /* : MProject */; +val* var56 /* : Model */; +val* var58 /* : Model */; +val* var_mproject /* var mproject: MProject */; +val* var59 /* : MGroup */; +val* var60 /* : null */; +val* var_mgroup /* var mgroup: nullable Object */; +val* var62 /* : ToolContext */; +val* var64 /* : ToolContext */; +static val* varonce65; +val* var66 /* : String */; +char* var67 /* : NativeString */; +long var68 /* : Int */; +val* var69 /* : FlatString */; +static val* varonce70; +val* var71 /* : String */; +char* var72 /* : NativeString */; +long var73 /* : Int */; +val* var74 /* : FlatString */; +val* var75 /* : Array[Object] */; +long var76 /* : Int */; +val* var77 /* : NativeArray[Object] */; +val* var78 /* : String */; +long var79 /* : Int */; +val* var80 /* : MGroup */; +val* var81 /* : MProject */; +val* var83 /* : MProject */; +val* var84 /* : ToolContext */; +val* var86 /* : ToolContext */; +static val* varonce87; +val* var88 /* : String */; +char* var89 /* : NativeString */; +long var90 /* : Int */; +val* var91 /* : FlatString */; +val* var92 /* : String */; +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 */; +static val* varonce103; +val* var104 /* : String */; +char* var105 /* : NativeString */; +long var106 /* : Int */; +val* var107 /* : FlatString */; +val* var108 /* : String */; +val* var_readme /* var readme: String */; +short int var109 /* : Bool */; +short int var110 /* : Bool */; +static val* varonce111; +val* var112 /* : String */; +char* var113 /* : NativeString */; +long var114 /* : Int */; +val* var115 /* : FlatString */; +val* var116 /* : String */; +short int var117 /* : Bool */; +val* var118 /* : MDoc */; +val* var_mdoc /* var mdoc: MDoc */; +val* var120 /* : IFStream */; +val* var_s /* var s: IFStream */; +short int var121 /* : Bool */; +short int var122 /* : Bool */; +val* var123 /* : Array[String] */; +val* var125 /* : Array[String] */; +val* var126 /* : String */; +val* var130 /* : HashMap[String, nullable MGroup] */; +val* var132 /* : HashMap[String, nullable MGroup] */; var_dirpath = p0; -var1 = ((val* (*)(val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__module_absolute_path]))(self, var_dirpath) /* module_absolute_path on */; +{ +var1 = modelbuilder__ModelBuilder__module_absolute_path(self, var_dirpath); +} var_rdp = var1; -var2 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__mgroups]))(self) /* mgroups on */; -var3 = ((short int (*)(val*, val*))(var2->class->vft[COLOR_abstract_collection__MapRead__has_key]))(var2, var_rdp) /* has_key on */; -if (var3){ -var4 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__mgroups]))(self) /* mgroups on */; -var5 = ((val* (*)(val*, val*))(var4->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var4, var_rdp) /* [] on */; -var = var5; +{ +{ /* Inline modelbuilder#ModelBuilder#mgroups (self) on */ +var4 = self->attrs[COLOR_modelbuilder__ModelBuilder___mgroups].val; /* _mgroups on */ +if (unlikely(var4 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mgroups"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 460); +show_backtrace(1); +} +var2 = var4; +RET_LABEL3:(void)0; +} +} +{ +var5 = abstract_collection__MapRead__has_key(var2, var_rdp); +} +if (var5){ +{ +{ /* Inline modelbuilder#ModelBuilder#mgroups (self) on */ +var8 = self->attrs[COLOR_modelbuilder__ModelBuilder___mgroups].val; /* _mgroups on */ +if (unlikely(var8 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mgroups"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 460); +show_backtrace(1); +} +var6 = var8; +RET_LABEL7:(void)0; +} +} +{ +var9 = hash_collection__HashMap___91d_93d(var6, var_rdp); +} +var = var9; goto RET_LABEL; } else { } if (varonce) { -var6 = varonce; +var10 = varonce; } else { -var7 = ".nit"; -var8 = 4; -var9 = string__NativeString__to_s_with_length(var7, var8); -var6 = var9; -varonce = var6; +var11 = ".nit"; +var12 = 4; +var13 = string__NativeString__to_s_with_length(var11, var12); +var10 = var13; +varonce = var10; } -var10 = ((val* (*)(val*, val*))(var_rdp->class->vft[COLOR_file__String__basename]))(var_rdp, var6) /* basename on */; -var_pn = var10; -if (varonce11) { -var12 = varonce11; +{ +var14 = file__String__basename(var_rdp, var10); +} +var_pn = var14; +if (varonce15) { +var16 = varonce15; } else { -var13 = ".nit"; -var14 = 4; -var15 = string__NativeString__to_s_with_length(var13, var14); -var12 = var15; -varonce11 = var12; +var17 = ".nit"; +var18 = 4; +var19 = string__NativeString__to_s_with_length(var17, var18); +var16 = var19; +varonce15 = var16; } -var16 = ((val* (*)(val*, val*))(var_pn->class->vft[COLOR_string__String___43d]))(var_pn, var12) /* + on */; -var17 = ((val* (*)(val*, val*))(var_dirpath->class->vft[COLOR_file__String__join_path]))(var_dirpath, var16) /* join_path on */; -var18 = ((val* (*)(val*))(var17->class->vft[COLOR_file__String__simplify_path]))(var17) /* simplify_path on */; -var_mp = var18; -var19 = ((short int (*)(val*))(var_mp->class->vft[COLOR_file__String__file_exists]))(var_mp) /* file_exists on */; -var20 = !var19; -if (var20){ -var21 = NULL; -var = var21; +{ +var20 = string__FlatString___43d(var_pn, var16); +} +{ +var21 = file__String__join_path(var_dirpath, var20); +} +{ +var22 = file__String__simplify_path(var21); +} +var_mp = var22; +var_dirpath2 = var_dirpath; +{ +var23 = file__String__file_exists(var_mp); +} +var24 = !var23; +if (var24){ +if (varonce25) { +var26 = varonce25; +} else { +var27 = "src"; +var28 = 3; +var29 = string__NativeString__to_s_with_length(var27, var28); +var26 = var29; +varonce25 = var26; +} +{ +var31 = string__FlatString___61d_61d(var_pn, var26); +var30 = var31; +} +if (var30){ +{ +var32 = file__String__dirname(var_rdp); +} +var_dirpath2 = var32; +if (varonce33) { +var34 = varonce33; +} else { +var35 = ""; +var36 = 0; +var37 = string__NativeString__to_s_with_length(var35, var36); +var34 = var37; +varonce33 = var34; +} +{ +var38 = file__String__basename(var_dirpath2, var34); +} +var_pn = var38; +} else { +var39 = NULL; +var = var39; goto RET_LABEL; +} } else { } -if (varonce22) { -var23 = varonce22; +if (varonce40) { +var41 = varonce40; } else { -var24 = ".."; -var25 = 2; -var26 = string__NativeString__to_s_with_length(var24, var25); -var23 = var26; -varonce22 = var23; +var42 = ".."; +var43 = 2; +var44 = string__NativeString__to_s_with_length(var42, var43); +var41 = var44; +varonce40 = var41; } -var27 = ((val* (*)(val*, val*))(var_dirpath->class->vft[COLOR_file__String__join_path]))(var_dirpath, var23) /* join_path on */; -var28 = ((val* (*)(val*))(var27->class->vft[COLOR_file__String__simplify_path]))(var27) /* simplify_path on */; -var_parentpath = var28; -var29 = ((val* (*)(val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__get_mgroup]))(self, var_parentpath) /* get_mgroup on */; -var_parent = var29; -var30 = NULL; +{ +var45 = file__String__join_path(var_dirpath, var41); +} +{ +var46 = file__String__simplify_path(var45); +} +var_parentpath = var46; +{ +var47 = modelbuilder__ModelBuilder__get_mgroup(self, var_parentpath); +} +var_parent = var47; +var48 = NULL; if (var_parent == NULL) { -var31 = 1; /* is null */ +var49 = 1; /* is null */ } else { -var31 = 0; /* arg is null but recv is not */ +var49 = 0; /* arg is null but recv is not */ } -if (var31){ -var32 = NEW_mproject__MProject(&type_mproject__MProject); -var33 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__model]))(self) /* model on */; -((void (*)(val*, val*, val*))(var32->class->vft[COLOR_mproject__MProject__init]))(var32, var_pn, var33) /* init on */; -var_mproject = var32; -var34 = NEW_mproject__MGroup(&type_mproject__MGroup); -var35 = NULL; -((void (*)(val*, val*, val*, val*))(var34->class->vft[COLOR_mproject__MGroup__init]))(var34, var_pn, var_mproject, var35) /* init on */; -var_mgroup = var34; -((void (*)(val*, val*))(var_mproject->class->vft[COLOR_mproject__MProject__root_61d]))(var_mproject, var_mgroup) /* root= on */; -var36 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(self) /* toolcontext on */; -if (varonce37) { -var38 = varonce37; +if (0) { +{ /* Inline kernel#Object#== (var_parent,var48) on */ +var_other = var48; +{ +{ /* Inline kernel#Object#is_same_instance (var_parent,var_other) on */ +var54 = var_parent == var_other; +var52 = var54; +goto RET_LABEL53; +RET_LABEL53:(void)0; +} +} +var50 = var52; +goto RET_LABEL51; +RET_LABEL51:(void)0; +} +var49 = var50; +} +if (var49){ +var55 = NEW_mproject__MProject(&type_mproject__MProject); +{ +{ /* Inline modelbuilder#ModelBuilder#model (self) on */ +var58 = self->attrs[COLOR_modelbuilder__ModelBuilder___model].val; /* _model on */ +if (unlikely(var58 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 98); +show_backtrace(1); +} +var56 = var58; +RET_LABEL57:(void)0; +} +} +{ +mproject__MProject__init(var55, var_pn, var56); /* Direct call mproject#MProject#init on */ +} +var_mproject = var55; +var59 = NEW_mproject__MGroup(&type_mproject__MGroup); +var60 = NULL; +{ +mproject__MGroup__init(var59, var_pn, var_mproject, var60); /* Direct call mproject#MGroup#init on */ +} +var_mgroup = var59; +{ +{ /* Inline mproject#MProject#root= (var_mproject,var_mgroup) on */ +var_mproject->attrs[COLOR_mproject__MProject___root].val = var_mgroup; /* _root on */ +RET_LABEL61:(void)0; +} +} +{ +{ /* Inline modelbuilder#ModelBuilder#toolcontext (self) on */ +var64 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var64 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +show_backtrace(1); +} +var62 = var64; +RET_LABEL63:(void)0; +} +} +if (varonce65) { +var66 = varonce65; } else { -var39 = "found project `"; -var40 = 15; -var41 = string__NativeString__to_s_with_length(var39, var40); -var38 = var41; -varonce37 = var38; +var67 = "found project `"; +var68 = 15; +var69 = string__NativeString__to_s_with_length(var67, var68); +var66 = var69; +varonce65 = var66; } -if (varonce42) { -var43 = varonce42; +if (varonce70) { +var71 = varonce70; +} else { +var72 = "` at "; +var73 = 5; +var74 = string__NativeString__to_s_with_length(var72, var73); +var71 = var74; +varonce70 = var71; +} +var75 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var75 = array_instance Array[Object] */ +var76 = 4; +var77 = NEW_array__NativeArray(var76, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var77)->values[0] = (val*) var66; +((struct instance_array__NativeArray*)var77)->values[1] = (val*) var_mproject; +((struct instance_array__NativeArray*)var77)->values[2] = (val*) var71; +((struct instance_array__NativeArray*)var77)->values[3] = (val*) var_dirpath; +{ +((void (*)(val*, val*, long))(var75->class->vft[COLOR_array__Array__with_native]))(var75, var77, var76) /* with_native on */; +} +} +{ +var78 = ((val* (*)(val*))(var75->class->vft[COLOR_string__Object__to_s]))(var75) /* to_s on */; +} +var79 = 2; +{ +toolcontext__ToolContext__info(var62, var78, var79); /* Direct call toolcontext#ToolContext#info on */ +} +} else { +var80 = NEW_mproject__MGroup(&type_mproject__MGroup); +{ +{ /* Inline mproject#MGroup#mproject (var_parent) on */ +var83 = var_parent->attrs[COLOR_mproject__MGroup___mproject].val; /* _mproject on */ +if (unlikely(var83 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproject"); +PRINT_ERROR(" (%s:%d)\n", "src/model/mproject.nit", 60); +show_backtrace(1); +} +var81 = var83; +RET_LABEL82:(void)0; +} +} +{ +mproject__MGroup__init(var80, var_pn, var81, var_parent); /* Direct call mproject#MGroup#init on */ +} +var_mgroup = var80; +{ +{ /* Inline modelbuilder#ModelBuilder#toolcontext (self) on */ +var86 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var86 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +show_backtrace(1); +} +var84 = var86; +RET_LABEL85:(void)0; +} +} +if (varonce87) { +var88 = varonce87; } else { -var44 = "` at "; -var45 = 5; -var46 = string__NativeString__to_s_with_length(var44, var45); -var43 = var46; -varonce42 = var43; +var89 = "found sub group `"; +var90 = 17; +var91 = string__NativeString__to_s_with_length(var89, var90); +var88 = var91; +varonce87 = var88; } -var47 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var47 = array_instance Array[Object] */ -var48 = 4; -var49 = NEW_array__NativeArray(var48, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var49)->values[0] = (val*) var38; -((struct instance_array__NativeArray*)var49)->values[1] = (val*) var_mproject; -((struct instance_array__NativeArray*)var49)->values[2] = (val*) var43; -((struct instance_array__NativeArray*)var49)->values[3] = (val*) var_dirpath; -((void (*)(val*, val*, long))(var47->class->vft[COLOR_array__Array__with_native]))(var47, var49, var48) /* with_native on */; +{ +var92 = mproject__MGroup__full_name(var_mgroup); } -var50 = ((val* (*)(val*))(var47->class->vft[COLOR_string__Object__to_s]))(var47) /* to_s on */; -var51 = 2; -((void (*)(val*, val*, long))(var36->class->vft[COLOR_toolcontext__ToolContext__info]))(var36, var50, var51) /* info on */; -} else { -var52 = NEW_mproject__MGroup(&type_mproject__MGroup); -var53 = ((val* (*)(val*))(var_parent->class->vft[COLOR_mproject__MGroup__mproject]))(var_parent) /* mproject on */; -((void (*)(val*, val*, val*, val*))(var52->class->vft[COLOR_mproject__MGroup__init]))(var52, var_pn, var53, var_parent) /* init on */; -var_mgroup = var52; -var54 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(self) /* toolcontext on */; -if (varonce55) { -var56 = varonce55; +if (varonce93) { +var94 = varonce93; } else { -var57 = "found sub group `"; -var58 = 17; -var59 = string__NativeString__to_s_with_length(var57, var58); -var56 = var59; -varonce55 = var56; +var95 = "` at "; +var96 = 5; +var97 = string__NativeString__to_s_with_length(var95, var96); +var94 = var97; +varonce93 = var94; +} +var98 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var98 = array_instance Array[Object] */ +var99 = 4; +var100 = NEW_array__NativeArray(var99, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var100)->values[0] = (val*) var88; +((struct instance_array__NativeArray*)var100)->values[1] = (val*) var92; +((struct instance_array__NativeArray*)var100)->values[2] = (val*) var94; +((struct instance_array__NativeArray*)var100)->values[3] = (val*) var_dirpath; +{ +((void (*)(val*, val*, long))(var98->class->vft[COLOR_array__Array__with_native]))(var98, var100, var99) /* with_native on */; +} +} +{ +var101 = ((val* (*)(val*))(var98->class->vft[COLOR_string__Object__to_s]))(var98) /* to_s on */; +} +var102 = 2; +{ +toolcontext__ToolContext__info(var84, var101, var102); /* Direct call toolcontext#ToolContext#info on */ +} +} +if (varonce103) { +var104 = varonce103; +} else { +var105 = "README.md"; +var106 = 9; +var107 = string__NativeString__to_s_with_length(var105, var106); +var104 = var107; +varonce103 = var104; +} +{ +var108 = file__String__join_path(var_dirpath2, var104); +} +var_readme = var108; +{ +var109 = file__String__file_exists(var_readme); +} +var110 = !var109; +if (var110){ +if (varonce111) { +var112 = varonce111; +} else { +var113 = "README"; +var114 = 6; +var115 = string__NativeString__to_s_with_length(var113, var114); +var112 = var115; +varonce111 = var112; +} +{ +var116 = file__String__join_path(var_dirpath2, var112); +} +var_readme = var116; +} else { +} +{ +var117 = file__String__file_exists(var_readme); +} +if (var117){ +var118 = NEW_mdoc__MDoc(&type_mdoc__MDoc); +{ +{ /* Inline mdoc#MDoc#init (var118) on */ +RET_LABEL119:(void)0; +} +} +var_mdoc = var118; +var120 = NEW_file__IFStream(&type_file__IFStream); +{ +file__IFStream__open(var120, var_readme); /* Direct call file#IFStream#open on */ +} +var_s = var120; +for(;;) { +{ +var121 = stream__BufferedIStream__eof(var_s); +} +var122 = !var121; +if (!var122) break; +{ +{ /* Inline mdoc#MDoc#content (var_mdoc) on */ +var125 = var_mdoc->attrs[COLOR_mdoc__MDoc___content].val; /* _content on */ +if (unlikely(var125 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _content"); +PRINT_ERROR(" (%s:%d)\n", "src/model/mdoc.nit", 22); +show_backtrace(1); +} +var123 = var125; +RET_LABEL124:(void)0; +} +} +{ +var126 = stream__IStream__read_line(var_s); +} +{ +array__Array__add(var123, var126); /* Direct call array#Array#add on */ +} +CONTINUE_label: (void)0; +} +BREAK_label: (void)0; +{ +{ /* Inline mdoc#MEntity#mdoc= (var_mgroup,var_mdoc) on */ +var_mgroup->attrs[COLOR_mdoc__MEntity___mdoc].val = var_mdoc; /* _mdoc on */ +RET_LABEL127:(void)0; +} +} +{ +{ /* Inline mdoc#MDoc#original_mentity= (var_mdoc,var_mgroup) on */ +var_mdoc->attrs[COLOR_mdoc__MDoc___original_mentity].val = var_mgroup; /* _original_mentity on */ +RET_LABEL128:(void)0; +} +} +} else { +} +{ +{ /* Inline mproject#MGroup#filepath= (var_mgroup,var_dirpath) on */ +var_mgroup->attrs[COLOR_mproject__MGroup___filepath].val = var_dirpath; /* _filepath on */ +RET_LABEL129:(void)0; +} +} +{ +{ /* Inline modelbuilder#ModelBuilder#mgroups (self) on */ +var132 = self->attrs[COLOR_modelbuilder__ModelBuilder___mgroups].val; /* _mgroups on */ +if (unlikely(var132 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mgroups"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 460); +show_backtrace(1); +} +var130 = var132; +RET_LABEL131:(void)0; +} +} +{ +hash_collection__HashMap___91d_93d_61d(var130, var_rdp, var_mgroup); /* Direct call hash_collection#HashMap#[]= on */ } -var60 = ((val* (*)(val*))(var_mgroup->class->vft[COLOR_mproject__MGroup__full_name]))(var_mgroup) /* full_name on */; -if (varonce61) { -var62 = varonce61; -} else { -var63 = "` at "; -var64 = 5; -var65 = string__NativeString__to_s_with_length(var63, var64); -var62 = var65; -varonce61 = var62; -} -var66 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var66 = array_instance Array[Object] */ -var67 = 4; -var68 = NEW_array__NativeArray(var67, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var68)->values[0] = (val*) var56; -((struct instance_array__NativeArray*)var68)->values[1] = (val*) var60; -((struct instance_array__NativeArray*)var68)->values[2] = (val*) var62; -((struct instance_array__NativeArray*)var68)->values[3] = (val*) var_dirpath; -((void (*)(val*, val*, long))(var66->class->vft[COLOR_array__Array__with_native]))(var66, var68, var67) /* with_native on */; -} -var69 = ((val* (*)(val*))(var66->class->vft[COLOR_string__Object__to_s]))(var66) /* to_s on */; -var70 = 2; -((void (*)(val*, val*, long))(var54->class->vft[COLOR_toolcontext__ToolContext__info]))(var54, var69, var70) /* info on */; -} -((void (*)(val*, val*))(var_mgroup->class->vft[COLOR_mproject__MGroup__filepath_61d]))(var_mgroup, var_dirpath) /* filepath= on */; -var71 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__mgroups]))(self) /* mgroups on */; -((void (*)(val*, val*, val*))(var71->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var71, var_rdp, var_mgroup) /* []= on */; var = var_mgroup; goto RET_LABEL; RET_LABEL:; @@ -2735,9 +5273,15 @@ val* var1 /* : String */; val* var2 /* : String */; val* var3 /* : String */; var_path = p0; -var1 = ((val* (*)(val*))(self->class->vft[COLOR_file__Object__getcwd]))(self) /* getcwd on */; -var2 = ((val* (*)(val*, val*))(var1->class->vft[COLOR_file__String__join_path]))(var1, var_path) /* join_path on */; -var3 = ((val* (*)(val*))(var2->class->vft[COLOR_file__String__simplify_path]))(var2) /* simplify_path on */; +{ +var1 = file__Object__getcwd(self); +} +{ +var2 = file__String__join_path(var1, var_path); +} +{ +var3 = file__String__simplify_path(var2); +} var = var3; goto RET_LABEL; RET_LABEL:; @@ -2761,84 +5305,99 @@ static val* varonce; val* var2 /* : String */; char* var3 /* : NativeString */; long var4 /* : Int */; -val* var5 /* : String */; +val* var5 /* : FlatString */; short int var6 /* : Bool */; -val* var7 /* : ToolContext */; -val* var8 /* : null */; -static val* varonce9; -val* var10 /* : String */; -char* var11 /* : NativeString */; -long var12 /* : Int */; -val* var13 /* : String */; -static val* varonce14; -val* var15 /* : String */; -char* var16 /* : NativeString */; -long var17 /* : Int */; -val* var18 /* : String */; -val* var19 /* : Array[Object] */; -long var20 /* : Int */; -val* var21 /* : NativeArray[Object] */; +short int var7 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var9 /* : Bool */; +short int var10 /* : Bool */; +short int var11 /* : Bool */; +val* var12 /* : ToolContext */; +val* var14 /* : ToolContext */; +val* var15 /* : null */; +static val* varonce16; +val* var17 /* : String */; +char* var18 /* : NativeString */; +long var19 /* : Int */; +val* var20 /* : FlatString */; +static val* varonce21; val* var22 /* : String */; -val* var23 /* : null */; -short int var24 /* : Bool */; -short int var25 /* : Bool */; -val* var26 /* : ToolContext */; -val* var27 /* : null */; -static val* varonce28; +char* var23 /* : NativeString */; +long var24 /* : Int */; +val* var25 /* : FlatString */; +val* var26 /* : Array[Object] */; +long var27 /* : Int */; +val* var28 /* : NativeArray[Object] */; val* var29 /* : String */; -char* var30 /* : NativeString */; -long var31 /* : Int */; -val* var32 /* : String */; -static val* varonce33; -val* var34 /* : String */; -char* var35 /* : NativeString */; -long var36 /* : Int */; -val* var37 /* : String */; -val* var38 /* : Array[Object] */; -long var39 /* : Int */; -val* var40 /* : NativeArray[Object] */; -val* var41 /* : String */; -val* var42 /* : null */; -val* var43 /* : ToolContext */; -static val* varonce44; -val* var45 /* : String */; -char* var46 /* : NativeString */; -long var47 /* : Int */; -val* var48 /* : String */; -val* var49 /* : Array[Object] */; -long var50 /* : Int */; -val* var51 /* : NativeArray[Object] */; -val* var52 /* : String */; -long var53 /* : Int */; -val* var54 /* : IFStream */; +val* var30 /* : null */; +short int var31 /* : Bool */; +short int var32 /* : Bool */; +val* var33 /* : ToolContext */; +val* var35 /* : ToolContext */; +val* var36 /* : null */; +static val* varonce37; +val* var38 /* : String */; +char* var39 /* : NativeString */; +long var40 /* : Int */; +val* var41 /* : FlatString */; +static val* varonce42; +val* var43 /* : String */; +char* var44 /* : NativeString */; +long var45 /* : Int */; +val* var46 /* : FlatString */; +val* var47 /* : Array[Object] */; +long var48 /* : Int */; +val* var49 /* : NativeArray[Object] */; +val* var50 /* : String */; +val* var51 /* : null */; +val* var52 /* : ToolContext */; +val* var54 /* : ToolContext */; +static val* varonce55; +val* var56 /* : String */; +char* var57 /* : NativeString */; +long var58 /* : Int */; +val* var59 /* : FlatString */; +val* var60 /* : Array[Object] */; +long var61 /* : Int */; +val* var62 /* : NativeArray[Object] */; +val* var63 /* : String */; +long var64 /* : Int */; +val* var65 /* : IFStream */; val* var_file /* var file: IFStream */; -val* var55 /* : Lexer */; -val* var56 /* : SourceFile */; +val* var66 /* : Lexer */; +val* var67 /* : SourceFile */; val* var_lexer /* var lexer: Lexer */; -val* var57 /* : Parser */; +val* var68 /* : Parser */; val* var_parser /* var parser: Parser */; -val* var58 /* : Start */; +val* var69 /* : Start */; val* var_tree /* var tree: Start */; -static val* varonce59; -val* var60 /* : String */; -char* var61 /* : NativeString */; -long var62 /* : Int */; -val* var63 /* : String */; -val* var64 /* : String */; +static val* varonce70; +val* var71 /* : String */; +char* var72 /* : NativeString */; +long var73 /* : Int */; +val* var74 /* : FlatString */; +val* var75 /* : String */; val* var_mod_name /* var mod_name: String */; -val* var65 /* : nullable AModule */; +val* var76 /* : nullable AModule */; val* var_nmodule /* var nmodule: nullable AModule */; -val* var66 /* : null */; -short int var67 /* : Bool */; -val* var68 /* : EOF */; +val* var77 /* : null */; +short int var78 /* : Bool */; +short int var79 /* : Bool */; +val* var_other81 /* var other: nullable Object */; +short int var82 /* : Bool */; +short int var84 /* : Bool */; +val* var85 /* : EOF */; val* var_neof /* var neof: EOF */; -short int var69 /* : Bool */; +short int var86 /* : Bool */; int cltype; int idtype; -val* var70 /* : String */; -val* var71 /* : null */; +val* var87 /* : String */; +val* var89 /* : String */; +val* var90 /* : null */; var_filename = p0; -var1 = ((val* (*)(val*))(var_filename->class->vft[COLOR_file__String__file_extension]))(var_filename) /* file_extension on */; +{ +var1 = file__String__file_extension(var_filename); +} if (varonce) { var2 = varonce; } else { @@ -2851,158 +5410,270 @@ varonce = var2; if (var1 == NULL) { var6 = 1; /* cannot be null */ } else { -var6 = ((short int (*)(val*, val*))(var1->class->vft[COLOR_kernel__Object___33d_61d]))(var1, var2) /* != on */; +{ /* Inline kernel#Object#!= (var1,var2) on */ +var_other = var2; +{ +var10 = ((short int (*)(val*, val*))(var1->class->vft[COLOR_kernel__Object___61d_61d]))(var1, var_other) /* == on */; +var9 = var10; +} +var11 = !var9; +var7 = var11; +goto RET_LABEL8; +RET_LABEL8:(void)0; +} +var6 = var7; +} +if (var6){ +{ +{ /* Inline modelbuilder#ModelBuilder#toolcontext (self) on */ +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); +show_backtrace(1); +} +var12 = var14; +RET_LABEL13:(void)0; +} +} +var15 = NULL; +if (varonce16) { +var17 = varonce16; +} else { +var18 = "Error: file "; +var19 = 12; +var20 = string__NativeString__to_s_with_length(var18, var19); +var17 = var20; +varonce16 = var17; +} +if (varonce21) { +var22 = varonce21; +} else { +var23 = " is not a valid nit module."; +var24 = 27; +var25 = string__NativeString__to_s_with_length(var23, var24); +var22 = var25; +varonce21 = var22; +} +var26 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var26 = array_instance Array[Object] */ +var27 = 3; +var28 = NEW_array__NativeArray(var27, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var28)->values[0] = (val*) var17; +((struct instance_array__NativeArray*)var28)->values[1] = (val*) var_filename; +((struct instance_array__NativeArray*)var28)->values[2] = (val*) var22; +{ +((void (*)(val*, val*, long))(var26->class->vft[COLOR_array__Array__with_native]))(var26, var28, var27) /* with_native on */; +} +} +{ +var29 = ((val* (*)(val*))(var26->class->vft[COLOR_string__Object__to_s]))(var26) /* to_s on */; +} +{ +toolcontext__ToolContext__error(var12, var15, var29); /* Direct call toolcontext#ToolContext#error on */ +} +var30 = NULL; +var = var30; +goto RET_LABEL; +} else { +} +{ +var31 = file__String__file_exists(var_filename); +} +var32 = !var31; +if (var32){ +{ +{ /* Inline modelbuilder#ModelBuilder#toolcontext (self) on */ +var35 = self->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); +show_backtrace(1); +} +var33 = var35; +RET_LABEL34:(void)0; +} +} +var36 = NULL; +if (varonce37) { +var38 = varonce37; +} else { +var39 = "Error: file "; +var40 = 12; +var41 = string__NativeString__to_s_with_length(var39, var40); +var38 = var41; +varonce37 = var38; } -if (var6){ -var7 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(self) /* toolcontext on */; -var8 = NULL; -if (varonce9) { -var10 = varonce9; +if (varonce42) { +var43 = varonce42; } else { -var11 = "Error: file "; -var12 = 12; -var13 = string__NativeString__to_s_with_length(var11, var12); -var10 = var13; -varonce9 = var10; -} -if (varonce14) { -var15 = varonce14; -} else { -var16 = " is not a valid nit module."; -var17 = 27; -var18 = string__NativeString__to_s_with_length(var16, var17); -var15 = var18; -varonce14 = var15; -} -var19 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var19 = array_instance Array[Object] */ -var20 = 3; -var21 = NEW_array__NativeArray(var20, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var21)->values[0] = (val*) var10; -((struct instance_array__NativeArray*)var21)->values[1] = (val*) var_filename; -((struct instance_array__NativeArray*)var21)->values[2] = (val*) var15; -((void (*)(val*, val*, long))(var19->class->vft[COLOR_array__Array__with_native]))(var19, var21, var20) /* with_native on */; -} -var22 = ((val* (*)(val*))(var19->class->vft[COLOR_string__Object__to_s]))(var19) /* to_s on */; -((void (*)(val*, val*, val*))(var7->class->vft[COLOR_toolcontext__ToolContext__error]))(var7, var8, var22) /* error on */; -var23 = NULL; -var = var23; +var44 = " not found."; +var45 = 11; +var46 = string__NativeString__to_s_with_length(var44, var45); +var43 = var46; +varonce42 = var43; +} +var47 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var47 = array_instance Array[Object] */ +var48 = 3; +var49 = NEW_array__NativeArray(var48, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var49)->values[0] = (val*) var38; +((struct instance_array__NativeArray*)var49)->values[1] = (val*) var_filename; +((struct instance_array__NativeArray*)var49)->values[2] = (val*) var43; +{ +((void (*)(val*, val*, long))(var47->class->vft[COLOR_array__Array__with_native]))(var47, var49, var48) /* with_native on */; +} +} +{ +var50 = ((val* (*)(val*))(var47->class->vft[COLOR_string__Object__to_s]))(var47) /* to_s on */; +} +{ +toolcontext__ToolContext__error(var33, var36, var50); /* Direct call toolcontext#ToolContext#error on */ +} +var51 = NULL; +var = var51; goto RET_LABEL; } else { } -var24 = ((short int (*)(val*))(var_filename->class->vft[COLOR_file__String__file_exists]))(var_filename) /* file_exists on */; -var25 = !var24; -if (var25){ -var26 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(self) /* toolcontext on */; -var27 = NULL; -if (varonce28) { -var29 = varonce28; -} else { -var30 = "Error: file "; -var31 = 12; -var32 = string__NativeString__to_s_with_length(var30, var31); -var29 = var32; -varonce28 = var29; +{ +{ /* Inline modelbuilder#ModelBuilder#toolcontext (self) on */ +var54 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var54 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +show_backtrace(1); } -if (varonce33) { -var34 = varonce33; -} else { -var35 = " not found."; -var36 = 11; -var37 = string__NativeString__to_s_with_length(var35, var36); -var34 = var37; -varonce33 = var34; +var52 = var54; +RET_LABEL53:(void)0; } -var38 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var38 = array_instance Array[Object] */ -var39 = 3; -var40 = NEW_array__NativeArray(var39, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var40)->values[0] = (val*) var29; -((struct instance_array__NativeArray*)var40)->values[1] = (val*) var_filename; -((struct instance_array__NativeArray*)var40)->values[2] = (val*) var34; -((void (*)(val*, val*, long))(var38->class->vft[COLOR_array__Array__with_native]))(var38, var40, var39) /* with_native on */; -} -var41 = ((val* (*)(val*))(var38->class->vft[COLOR_string__Object__to_s]))(var38) /* to_s on */; -((void (*)(val*, val*, val*))(var26->class->vft[COLOR_toolcontext__ToolContext__error]))(var26, var27, var41) /* error on */; -var42 = NULL; -var = var42; -goto RET_LABEL; +} +if (varonce55) { +var56 = varonce55; } else { +var57 = "load module "; +var58 = 12; +var59 = string__NativeString__to_s_with_length(var57, var58); +var56 = var59; +varonce55 = var56; } -var43 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(self) /* toolcontext on */; -if (varonce44) { -var45 = varonce44; +var60 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var60 = array_instance Array[Object] */ +var61 = 2; +var62 = NEW_array__NativeArray(var61, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var62)->values[0] = (val*) var56; +((struct instance_array__NativeArray*)var62)->values[1] = (val*) var_filename; +{ +((void (*)(val*, val*, long))(var60->class->vft[COLOR_array__Array__with_native]))(var60, var62, var61) /* with_native on */; +} +} +{ +var63 = ((val* (*)(val*))(var60->class->vft[COLOR_string__Object__to_s]))(var60) /* to_s on */; +} +var64 = 2; +{ +toolcontext__ToolContext__info(var52, var63, var64); /* Direct call toolcontext#ToolContext#info on */ +} +var65 = NEW_file__IFStream(&type_file__IFStream); +{ +file__IFStream__open(var65, var_filename); /* Direct call file#IFStream#open on */ +} +var_file = var65; +var66 = NEW_lexer_work__Lexer(&type_lexer_work__Lexer); +var67 = NEW_location__SourceFile(&type_location__SourceFile); +{ +location__SourceFile__init(var67, var_filename, var_file); /* Direct call location#SourceFile#init on */ +} +{ +lexer_work__Lexer__init(var66, var67); /* Direct call lexer_work#Lexer#init on */ +} +var_lexer = var66; +var68 = NEW_parser_work__Parser(&type_parser_work__Parser); +{ +parser_work__Parser__init(var68, var_lexer); /* Direct call parser_work#Parser#init on */ +} +var_parser = var68; +{ +var69 = parser_work__Parser__parse(var_parser); +} +var_tree = var69; +{ +file__IFStream__close(var_file); /* Direct call file#IFStream#close on */ +} +if (varonce70) { +var71 = varonce70; } else { -var46 = "load module "; -var47 = 12; -var48 = string__NativeString__to_s_with_length(var46, var47); -var45 = var48; -varonce44 = var45; +var72 = ".nit"; +var73 = 4; +var74 = string__NativeString__to_s_with_length(var72, var73); +var71 = var74; +varonce70 = var71; } -var49 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var49 = array_instance Array[Object] */ -var50 = 2; -var51 = NEW_array__NativeArray(var50, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var51)->values[0] = (val*) var45; -((struct instance_array__NativeArray*)var51)->values[1] = (val*) var_filename; -((void (*)(val*, val*, long))(var49->class->vft[COLOR_array__Array__with_native]))(var49, var51, var50) /* with_native on */; -} -var52 = ((val* (*)(val*))(var49->class->vft[COLOR_string__Object__to_s]))(var49) /* to_s on */; -var53 = 2; -((void (*)(val*, val*, long))(var43->class->vft[COLOR_toolcontext__ToolContext__info]))(var43, var52, var53) /* info on */; -var54 = NEW_file__IFStream(&type_file__IFStream); -((void (*)(val*, val*))(var54->class->vft[COLOR_file__IFStream__open]))(var54, var_filename) /* open on */; -var_file = var54; -var55 = NEW_lexer__Lexer(&type_lexer__Lexer); -var56 = NEW_location__SourceFile(&type_location__SourceFile); -((void (*)(val*, val*, val*))(var56->class->vft[COLOR_location__SourceFile__init]))(var56, var_filename, var_file) /* init on */; -((void (*)(val*, val*))(var55->class->vft[COLOR_lexer__Lexer__init]))(var55, var56) /* init on */; -var_lexer = var55; -var57 = NEW_parser__Parser(&type_parser__Parser); -((void (*)(val*, val*))(var57->class->vft[COLOR_parser__Parser__init]))(var57, var_lexer) /* init on */; -var_parser = var57; -var58 = ((val* (*)(val*))(var_parser->class->vft[COLOR_parser__Parser__parse]))(var_parser) /* parse on */; -var_tree = var58; -((void (*)(val*))(var_file->class->vft[COLOR_stream__IOS__close]))(var_file) /* close on */; -if (varonce59) { -var60 = varonce59; -} else { -var61 = ".nit"; -var62 = 4; -var63 = string__NativeString__to_s_with_length(var61, var62); -var60 = var63; -varonce59 = var60; -} -var64 = ((val* (*)(val*, val*))(var_filename->class->vft[COLOR_file__String__basename]))(var_filename, var60) /* basename on */; -var_mod_name = var64; -var65 = ((val* (*)(val*))(var_tree->class->vft[COLOR_parser_nodes__Start__n_base]))(var_tree) /* n_base on */; -var_nmodule = var65; -var66 = NULL; +{ +var75 = file__String__basename(var_filename, var71); +} +var_mod_name = var75; +{ +var76 = parser_nodes__Start__n_base(var_tree); +} +var_nmodule = var76; +var77 = NULL; if (var_nmodule == NULL) { -var67 = 1; /* is null */ +var78 = 1; /* is null */ } else { -var67 = 0; /* arg is null but recv is not */ +var78 = 0; /* arg is null but recv is not */ +} +if (0) { +{ /* Inline kernel#Object#== (var_nmodule,var77) on */ +var_other81 = var77; +{ +{ /* Inline kernel#Object#is_same_instance (var_nmodule,var_other81) on */ +var84 = var_nmodule == var_other81; +var82 = var84; +goto RET_LABEL83; +RET_LABEL83:(void)0; +} +} +var79 = var82; +goto RET_LABEL80; +RET_LABEL80:(void)0; } -if (var67){ -var68 = ((val* (*)(val*))(var_tree->class->vft[COLOR_parser_nodes__Start__n_eof]))(var_tree) /* n_eof on */; -var_neof = var68; +var78 = var79; +} +if (var78){ +{ +var85 = parser_nodes__Start__n_eof(var_tree); +} +var_neof = var85; /* isa AError */ cltype = type_parser_nodes__AError.color; idtype = type_parser_nodes__AError.id; if(cltype >= var_neof->type->table_size) { -var69 = 0; +var86 = 0; } else { -var69 = var_neof->type->type_table[cltype] == idtype; +var86 = var_neof->type->type_table[cltype] == idtype; +} +if (unlikely(!var86)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 552); +show_backtrace(1); } -if (!var69) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 453); +{ +{ /* Inline lexer_work#AError#message (var_neof) on */ +var89 = var_neof->attrs[COLOR_lexer_work__AError___message].val; /* _message on */ +if (unlikely(var89 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _message"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/lexer_work.nit", 55); show_backtrace(1); } -var70 = ((val* (*)(val*))(var_neof->class->vft[COLOR_lexer__AError__message]))(var_neof) /* message on */; -((void (*)(val*, val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(self, var_neof, var70) /* error on */; -var71 = NULL; -var = var71; +var87 = var89; +RET_LABEL88:(void)0; +} +} +{ +modelbuilder__ModelBuilder__error(self, var_neof, var87); /* Direct call modelbuilder#ModelBuilder#error on */ +} +var90 = NULL; +var = var90; goto RET_LABEL; } else { } @@ -3028,26 +5699,49 @@ val* var1 /* : nullable ModulePath */; val* var_file /* var file: nullable ModulePath */; val* var2 /* : null */; short int var3 /* : Bool */; -val* var4 /* : null */; -val* var5 /* : nullable MModule */; +short int var4 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var6 /* : Bool */; +short int var8 /* : Bool */; +val* var9 /* : null */; +val* var10 /* : nullable MModule */; +val* var12 /* : nullable MModule */; val* var_mmodule /* var mmodule: nullable MModule */; -val* var6 /* : null */; -short int var7 /* : Bool */; -val* var8 /* : HashMap[MModule, AModule] */; -val* var9 /* : nullable Object */; -val* var10 /* : nullable AModule */; -val* var_nmodule /* var nmodule: nullable AModule */; -val* var11 /* : null */; -short int var12 /* : Bool */; val* var13 /* : null */; -val* var14 /* : MGroup */; -val* var15 /* : String */; -val* var16 /* : nullable MModule */; -val* var17 /* : null */; +short int var14 /* : Bool */; +short int var15 /* : Bool */; +val* var_other17 /* var other: nullable Object */; short int var18 /* : Bool */; -val* var19 /* : null */; +short int var19 /* : Bool */; +short int var20 /* : Bool */; +val* var21 /* : HashMap[MModule, AModule] */; +val* var23 /* : HashMap[MModule, AModule] */; +val* var24 /* : nullable Object */; +val* var25 /* : String */; +val* var27 /* : String */; +val* var28 /* : nullable AModule */; +val* var_nmodule /* var nmodule: nullable AModule */; +val* var29 /* : null */; +short int var30 /* : Bool */; +short int var31 /* : Bool */; +short int var33 /* : Bool */; +short int var35 /* : Bool */; +val* var36 /* : null */; +val* var37 /* : MGroup */; +val* var39 /* : MGroup */; +val* var40 /* : String */; +val* var42 /* : String */; +val* var43 /* : nullable MModule */; +val* var44 /* : null */; +short int var45 /* : Bool */; +short int var46 /* : Bool */; +short int var48 /* : Bool */; +short int var50 /* : Bool */; +val* var51 /* : null */; var_filename = p0; -var1 = ((val* (*)(val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__identify_file]))(self, var_filename) /* identify_file on */; +{ +var1 = modelbuilder__ModelBuilder__identify_file(self, var_filename); +} var_file = var1; var2 = NULL; if (var_file == NULL) { @@ -3055,58 +5749,188 @@ var3 = 1; /* is null */ } else { var3 = 0; /* arg is null but recv is not */ } +if (0) { +{ /* Inline kernel#Object#== (var_file,var2) on */ +var_other = var2; +{ +{ /* Inline kernel#Object#is_same_instance (var_file,var_other) on */ +var8 = var_file == var_other; +var6 = var8; +goto RET_LABEL7; +RET_LABEL7:(void)0; +} +} +var4 = var6; +goto RET_LABEL5; +RET_LABEL5:(void)0; +} +var3 = var4; +} if (var3){ -var4 = NULL; -var = var4; +var9 = NULL; +var = var9; goto RET_LABEL; } else { } -var5 = ((val* (*)(val*))(var_file->class->vft[COLOR_modelbuilder__ModulePath__mmodule]))(var_file) /* mmodule on */; -var_mmodule = var5; -var6 = NULL; +{ +{ /* Inline modelbuilder#ModulePath#mmodule (var_file) on */ +var12 = var_file->attrs[COLOR_modelbuilder__ModulePath___mmodule].val; /* _mmodule on */ +var10 = var12; +RET_LABEL11:(void)0; +} +} +var_mmodule = var10; +var13 = NULL; if (var_mmodule == NULL) { -var7 = 0; /* is null */ +var14 = 0; /* is null */ } else { -var7 = 1; /* arg is null and recv is not */ +var14 = 1; /* arg is null and recv is not */ } -if (var7){ -var8 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__mmodule2nmodule]))(self) /* mmodule2nmodule on */; -var9 = ((val* (*)(val*, val*))(var8->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var8, var_mmodule) /* [] on */; -var = var9; +if (0) { +{ /* Inline kernel#Object#!= (var_mmodule,var13) on */ +var_other17 = var13; +{ +var19 = ((short int (*)(val*, val*))(var_mmodule->class->vft[COLOR_kernel__Object___61d_61d]))(var_mmodule, var_other17) /* == on */; +var18 = var19; +} +var20 = !var18; +var15 = var20; +goto RET_LABEL16; +RET_LABEL16:(void)0; +} +var14 = var15; +} +if (var14){ +{ +{ /* Inline modelbuilder#ModelBuilder#mmodule2nmodule (self) on */ +var23 = self->attrs[COLOR_modelbuilder__ModelBuilder___mmodule2nmodule].val; /* _mmodule2nmodule on */ +if (unlikely(var23 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule2nmodule"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 697); +show_backtrace(1); +} +var21 = var23; +RET_LABEL22:(void)0; +} +} +{ +var24 = hash_collection__HashMap___91d_93d(var21, var_mmodule); +} +var = var24; goto RET_LABEL; } else { } -var10 = ((val* (*)(val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__load_module_ast]))(self, var_filename) /* load_module_ast on */; -var_nmodule = var10; -var11 = NULL; +{ +{ /* Inline modelbuilder#ModulePath#filepath (var_file) on */ +var27 = var_file->attrs[COLOR_modelbuilder__ModulePath___filepath].val; /* _filepath on */ +if (unlikely(var27 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filepath"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 733); +show_backtrace(1); +} +var25 = var27; +RET_LABEL26:(void)0; +} +} +{ +var28 = modelbuilder__ModelBuilder__load_module_ast(self, var25); +} +var_nmodule = var28; +var29 = NULL; if (var_nmodule == NULL) { -var12 = 1; /* is null */ +var30 = 1; /* is null */ } else { -var12 = 0; /* arg is null but recv is not */ +var30 = 0; /* arg is null but recv is not */ } -if (var12){ -var13 = NULL; -var = var13; +if (0) { +{ /* Inline kernel#Object#== (var_nmodule,var29) on */ +var_other = var29; +{ +{ /* Inline kernel#Object#is_same_instance (var_nmodule,var_other) on */ +var35 = var_nmodule == var_other; +var33 = var35; +goto RET_LABEL34; +RET_LABEL34:(void)0; +} +} +var31 = var33; +goto RET_LABEL32; +RET_LABEL32:(void)0; +} +var30 = var31; +} +if (var30){ +var36 = NULL; +var = var36; goto RET_LABEL; } else { } -var14 = ((val* (*)(val*))(var_file->class->vft[COLOR_modelbuilder__ModulePath__mgroup]))(var_file) /* mgroup on */; -var15 = ((val* (*)(val*))(var_file->class->vft[COLOR_modelbuilder__ModulePath__name]))(var_file) /* name on */; -var16 = ((val* (*)(val*, val*, val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__build_a_mmodule]))(self, var14, var15, var_nmodule) /* build_a_mmodule on */; -var_mmodule = var16; -var17 = NULL; +{ +{ /* Inline modelbuilder#ModulePath#mgroup (var_file) on */ +var39 = var_file->attrs[COLOR_modelbuilder__ModulePath___mgroup].val; /* _mgroup on */ +if (unlikely(var39 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mgroup"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 736); +show_backtrace(1); +} +var37 = var39; +RET_LABEL38:(void)0; +} +} +{ +{ /* Inline modelbuilder#ModulePath#name (var_file) on */ +var42 = var_file->attrs[COLOR_modelbuilder__ModulePath___name].val; /* _name on */ +if (unlikely(var42 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 729); +show_backtrace(1); +} +var40 = var42; +RET_LABEL41:(void)0; +} +} +{ +var43 = modelbuilder__ModelBuilder__build_a_mmodule(self, var37, var40, var_nmodule); +} +var_mmodule = var43; +var44 = NULL; if (var_mmodule == NULL) { -var18 = 1; /* is null */ +var45 = 1; /* is null */ } else { -var18 = 0; /* arg is null but recv is not */ +var45 = 0; /* arg is null but recv is not */ } -if (var18){ -var19 = NULL; -var = var19; +if (0) { +{ /* Inline kernel#Object#== (var_mmodule,var44) on */ +var_other = var44; +{ +{ /* Inline kernel#Object#is_same_instance (var_mmodule,var_other) on */ +var50 = var_mmodule == var_other; +var48 = var50; +goto RET_LABEL49; +RET_LABEL49:(void)0; +} +} +var46 = var48; +goto RET_LABEL47; +RET_LABEL47:(void)0; +} +var45 = var46; +} +if (var45){ +var51 = NULL; +var = var51; goto RET_LABEL; } else { } -((void (*)(val*, val*))(var_file->class->vft[COLOR_modelbuilder__ModulePath__mmodule_61d]))(var_file, var_mmodule) /* mmodule= on */; +{ +{ /* Inline modelbuilder#ModulePath#mmodule= (var_file,var_mmodule) on */ +var_file->attrs[COLOR_modelbuilder__ModulePath___mmodule].val = var_mmodule; /* _mmodule on */ +RET_LABEL52:(void)0; +} +} +{ +modelbuilder__ModelBuilder__build_module_importation(self, var_nmodule); /* Direct call modelbuilder#ModelBuilder#build_module_importation on */ +} var = var_nmodule; goto RET_LABEL; RET_LABEL:; @@ -3121,57 +5945,6 @@ var = var1; RET_LABEL:; return var; } -/* method modelbuilder#ModelBuilder#load_rt_module for (self: ModelBuilder, MModule, AModule, String): nullable AModule */ -val* modelbuilder__ModelBuilder__load_rt_module(val* self, val* p0, val* p1, val* p2) { -val* var /* : nullable AModule */; -val* var_parent /* var parent: MModule */; -val* var_nmodule /* var nmodule: AModule */; -val* var_mod_name /* var mod_name: String */; -val* var1 /* : MModule */; -val* var2 /* : Model */; -val* var3 /* : nullable MGroup */; -val* var4 /* : Location */; -val* var_mmodule /* var mmodule: MModule */; -val* var5 /* : Array[AModule] */; -val* var6 /* : HashMap[MModule, AModule] */; -val* var7 /* : Array[MModule] */; -val* var_imported_modules /* var imported_modules: Array[MModule] */; -val* var8 /* : MVisibility */; -var_parent = p0; -var_nmodule = p1; -var_mod_name = p2; -var1 = NEW_mmodule__MModule(&type_mmodule__MModule); -var2 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__model]))(self) /* model on */; -var3 = ((val* (*)(val*))(var_parent->class->vft[COLOR_mmodule__MModule__mgroup]))(var_parent) /* mgroup on */; -var4 = ((val* (*)(val*))(var_nmodule->class->vft[COLOR_parser_nodes__ANode__location]))(var_nmodule) /* location on */; -((void (*)(val*, val*, val*, val*, val*))(var1->class->vft[COLOR_mmodule__MModule__init]))(var1, var2, var3, var_mod_name, var4) /* init on */; -var_mmodule = var1; -((void (*)(val*, val*))(var_nmodule->class->vft[COLOR_modelbuilder__AModule__mmodule_61d]))(var_nmodule, var_mmodule) /* mmodule= on */; -var5 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__nmodules]))(self) /* nmodules on */; -((void (*)(val*, val*))(var5->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var5, var_nmodule) /* add on */; -var6 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__mmodule2nmodule]))(self) /* mmodule2nmodule on */; -((void (*)(val*, val*, val*))(var6->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var6, var_mmodule, var_nmodule) /* []= on */; -var7 = NEW_array__Array(&type_array__Arraymmodule__MModule); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -var_imported_modules = var7; -((void (*)(val*, val*))(var_imported_modules->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_imported_modules, var_parent) /* add on */; -var8 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__intrude_visibility]))(self) /* intrude_visibility on */; -((void (*)(val*, val*, val*))(var_mmodule->class->vft[COLOR_mmodule__MModule__set_visibility_for]))(var_mmodule, var_parent, var8) /* set_visibility_for on */; -((void (*)(val*, val*))(var_mmodule->class->vft[COLOR_mmodule__MModule__set_imported_mmodules]))(var_mmodule, var_imported_modules) /* set_imported_mmodules on */; -var = var_nmodule; -goto RET_LABEL; -RET_LABEL:; -return var; -} -/* method modelbuilder#ModelBuilder#load_rt_module for (self: Object, MModule, AModule, String): nullable AModule */ -val* VIRTUAL_modelbuilder__ModelBuilder__load_rt_module(val* self, val* p0, val* p1, val* p2) { -val* var /* : nullable AModule */; -val* var1 /* : nullable AModule */; -var1 = modelbuilder__ModelBuilder__load_rt_module(self, p0, p1, p2); -var = var1; -RET_LABEL:; -return var; -} /* method modelbuilder#ModelBuilder#build_a_mmodule for (self: ModelBuilder, nullable MGroup, String, AModule): nullable MModule */ val* modelbuilder__ModelBuilder__build_a_mmodule(val* self, val* p0, val* p1, val* p2) { val* var /* : nullable MModule */; @@ -3182,96 +5955,281 @@ val* var1 /* : nullable AModuledecl */; val* var_decl /* var decl: nullable AModuledecl */; val* var2 /* : null */; short int var3 /* : Bool */; -val* var4 /* : AModuleName */; -val* var5 /* : TId */; -val* var6 /* : String */; +short int var4 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var6 /* : Bool */; +short int var8 /* : Bool */; +val* var9 /* : AModuleName */; +val* var10 /* : TId */; +val* var11 /* : String */; val* var_decl_name /* var decl_name: String */; -short int var7 /* : Bool */; -val* var8 /* : AModuleName */; +short int var12 /* : Bool */; +short int var13 /* : Bool */; +val* var_other15 /* var other: nullable Object */; +short int var16 /* : Bool */; +short int var17 /* : Bool */; +short int var18 /* : Bool */; +val* var19 /* : AModuleName */; static val* varonce; -val* var9 /* : String */; -char* var10 /* : NativeString */; -long var11 /* : Int */; -val* var12 /* : String */; -static val* varonce13; -val* var14 /* : String */; -char* var15 /* : NativeString */; -long var16 /* : Int */; -val* var17 /* : String */; -val* var18 /* : Array[Object] */; -long var19 /* : Int */; -val* var20 /* : NativeArray[Object] */; -val* var21 /* : String */; -val* var22 /* : MModule */; -val* var23 /* : Model */; -val* var24 /* : Location */; +val* var20 /* : String */; +char* var21 /* : NativeString */; +long var22 /* : Int */; +val* var23 /* : FlatString */; +static val* varonce24; +val* var25 /* : String */; +char* var26 /* : NativeString */; +long var27 /* : Int */; +val* var28 /* : FlatString */; +val* var29 /* : Array[Object] */; +long var30 /* : Int */; +val* var31 /* : NativeArray[Object] */; +val* var32 /* : String */; +val* var33 /* : MModule */; +val* var34 /* : Model */; +val* var36 /* : Model */; +val* var37 /* : Location */; val* var_mmodule /* var mmodule: MModule */; -val* var25 /* : Array[AModule] */; -val* var26 /* : HashMap[MModule, AModule] */; +val* var39 /* : Array[AModule] */; +val* var41 /* : Array[AModule] */; +val* var42 /* : HashMap[MModule, AModule] */; +val* var44 /* : HashMap[MModule, AModule] */; +val* var45 /* : null */; +short int var46 /* : Bool */; +short int var47 /* : Bool */; +short int var49 /* : Bool */; +short int var50 /* : Bool */; +short int var51 /* : Bool */; +val* var52 /* : nullable ADoc */; +val* var_ndoc /* var ndoc: nullable ADoc */; +val* var53 /* : null */; +short int var54 /* : Bool */; +short int var55 /* : Bool */; +short int var57 /* : Bool */; +short int var58 /* : Bool */; +short int var59 /* : Bool */; +val* var60 /* : MDoc */; +val* var_mdoc /* var mdoc: MDoc */; var_mgroup = p0; var_mod_name = p1; var_nmodule = p2; -var1 = ((val* (*)(val*))(var_nmodule->class->vft[COLOR_parser_nodes__AModule__n_moduledecl]))(var_nmodule) /* n_moduledecl on */; +{ +var1 = parser_nodes__AModule__n_moduledecl(var_nmodule); +} var_decl = var1; var2 = NULL; if (var_decl == NULL) { -var3 = 1; /* is null */ +var3 = 1; /* is null */ +} else { +var3 = 0; /* arg is null but recv is not */ +} +if (0) { +{ /* Inline kernel#Object#== (var_decl,var2) on */ +var_other = var2; +{ +{ /* Inline kernel#Object#is_same_instance (var_decl,var_other) on */ +var8 = var_decl == var_other; +var6 = var8; +goto RET_LABEL7; +RET_LABEL7:(void)0; +} +} +var4 = var6; +goto RET_LABEL5; +RET_LABEL5:(void)0; +} +var3 = var4; +} +if (var3){ +} else { +{ +var9 = parser_nodes__AModuledecl__n_name(var_decl); +} +{ +var10 = parser_nodes__AModuleName__n_id(var9); +} +{ +var11 = lexer_work__Token__text(var10); +} +var_decl_name = var11; +{ +{ /* Inline kernel#Object#!= (var_decl_name,var_mod_name) on */ +var_other15 = var_mod_name; +{ +var17 = ((short int (*)(val*, val*))(var_decl_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_decl_name, var_other15) /* == on */; +var16 = var17; +} +var18 = !var16; +var13 = var18; +goto RET_LABEL14; +RET_LABEL14:(void)0; +} +var12 = var13; +} +if (var12){ +{ +var19 = parser_nodes__AModuledecl__n_name(var_decl); +} +if (varonce) { +var20 = varonce; +} else { +var21 = "Error: module name missmatch; declared "; +var22 = 39; +var23 = string__NativeString__to_s_with_length(var21, var22); +var20 = var23; +varonce = var20; +} +if (varonce24) { +var25 = varonce24; +} else { +var26 = " file named "; +var27 = 12; +var28 = string__NativeString__to_s_with_length(var26, var27); +var25 = var28; +varonce24 = var25; +} +var29 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var29 = array_instance Array[Object] */ +var30 = 4; +var31 = NEW_array__NativeArray(var30, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var31)->values[0] = (val*) var20; +((struct instance_array__NativeArray*)var31)->values[1] = (val*) var_decl_name; +((struct instance_array__NativeArray*)var31)->values[2] = (val*) var25; +((struct instance_array__NativeArray*)var31)->values[3] = (val*) var_mod_name; +{ +((void (*)(val*, val*, long))(var29->class->vft[COLOR_array__Array__with_native]))(var29, var31, var30) /* with_native on */; +} +} +{ +var32 = ((val* (*)(val*))(var29->class->vft[COLOR_string__Object__to_s]))(var29) /* to_s on */; +} +{ +modelbuilder__ModelBuilder__error(self, var19, var32); /* Direct call modelbuilder#ModelBuilder#error on */ +} +} else { +} +} +var33 = NEW_mmodule__MModule(&type_mmodule__MModule); +{ +{ /* Inline modelbuilder#ModelBuilder#model (self) on */ +var36 = self->attrs[COLOR_modelbuilder__ModelBuilder___model].val; /* _model on */ +if (unlikely(var36 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 98); +show_backtrace(1); +} +var34 = var36; +RET_LABEL35:(void)0; +} +} +{ +var37 = parser_nodes__ANode__location(var_nmodule); +} +{ +mmodule__MModule__init(var33, var34, var_mgroup, var_mod_name, var37); /* Direct call mmodule#MModule#init on */ +} +var_mmodule = var33; +{ +{ /* Inline modelbuilder#AModule#mmodule= (var_nmodule,var_mmodule) on */ +var_nmodule->attrs[COLOR_modelbuilder__AModule___mmodule].val = var_mmodule; /* _mmodule on */ +RET_LABEL38:(void)0; +} +} +{ +{ /* Inline modelbuilder#ModelBuilder#nmodules (self) on */ +var41 = self->attrs[COLOR_modelbuilder__ModelBuilder___nmodules].val; /* _nmodules on */ +if (unlikely(var41 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _nmodules"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 694); +show_backtrace(1); +} +var39 = var41; +RET_LABEL40:(void)0; +} +} +{ +array__Array__add(var39, var_nmodule); /* Direct call array#Array#add on */ +} +{ +{ /* Inline modelbuilder#ModelBuilder#mmodule2nmodule (self) on */ +var44 = self->attrs[COLOR_modelbuilder__ModelBuilder___mmodule2nmodule].val; /* _mmodule2nmodule on */ +if (unlikely(var44 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule2nmodule"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 697); +show_backtrace(1); +} +var42 = var44; +RET_LABEL43:(void)0; +} +} +{ +hash_collection__HashMap___91d_93d_61d(var42, var_mmodule, var_nmodule); /* Direct call hash_collection#HashMap#[]= on */ +} +var45 = NULL; +if (var_decl == NULL) { +var46 = 0; /* is null */ } else { -var3 = 0; /* arg is null but recv is not */ +var46 = 1; /* arg is null and recv is not */ } -if (var3){ +if (0) { +{ /* Inline kernel#Object#!= (var_decl,var45) on */ +var_other15 = var45; +{ +var50 = ((short int (*)(val*, val*))(var_decl->class->vft[COLOR_kernel__Object___61d_61d]))(var_decl, var_other15) /* == on */; +var49 = var50; +} +var51 = !var49; +var47 = var51; +goto RET_LABEL48; +RET_LABEL48:(void)0; +} +var46 = var47; +} +if (var46){ +{ +var52 = parser_nodes__AModuledecl__n_doc(var_decl); +} +var_ndoc = var52; +var53 = NULL; +if (var_ndoc == NULL) { +var54 = 0; /* is null */ } else { -var4 = ((val* (*)(val*))(var_decl->class->vft[COLOR_parser_nodes__AModuledecl__n_name]))(var_decl) /* n_name on */; -var5 = ((val* (*)(val*))(var4->class->vft[COLOR_parser_nodes__AModuleName__n_id]))(var4) /* n_id on */; -var6 = ((val* (*)(val*))(var5->class->vft[COLOR_parser_nodes__Token__text]))(var5) /* text on */; -var_decl_name = var6; -var7 = ((short int (*)(val*, val*))(var_decl_name->class->vft[COLOR_kernel__Object___33d_61d]))(var_decl_name, var_mod_name) /* != on */; -if (var7){ -var8 = ((val* (*)(val*))(var_decl->class->vft[COLOR_parser_nodes__AModuledecl__n_name]))(var_decl) /* n_name on */; -if (varonce) { -var9 = varonce; +var54 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_ndoc,var53) on */ +var_other15 = var53; +{ +var58 = ((short int (*)(val*, val*))(var_ndoc->class->vft[COLOR_kernel__Object___61d_61d]))(var_ndoc, var_other15) /* == on */; +var57 = var58; +} +var59 = !var57; +var55 = var59; +goto RET_LABEL56; +RET_LABEL56:(void)0; +} +var54 = var55; +} +if (var54){ +{ +var60 = modelbuilder__ADoc__to_mdoc(var_ndoc); +} +var_mdoc = var60; +{ +{ /* Inline mdoc#MEntity#mdoc= (var_mmodule,var_mdoc) on */ +var_mmodule->attrs[COLOR_mdoc__MEntity___mdoc].val = var_mdoc; /* _mdoc on */ +RET_LABEL61:(void)0; +} +} +{ +{ /* Inline mdoc#MDoc#original_mentity= (var_mdoc,var_mmodule) on */ +var_mdoc->attrs[COLOR_mdoc__MDoc___original_mentity].val = var_mmodule; /* _original_mentity on */ +RET_LABEL62:(void)0; +} +} } else { -var10 = "Error: module name missmatch; declared "; -var11 = 39; -var12 = string__NativeString__to_s_with_length(var10, var11); -var9 = var12; -varonce = var9; } -if (varonce13) { -var14 = varonce13; } else { -var15 = " file named "; -var16 = 12; -var17 = string__NativeString__to_s_with_length(var15, var16); -var14 = var17; -varonce13 = var14; -} -var18 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var18 = array_instance Array[Object] */ -var19 = 4; -var20 = NEW_array__NativeArray(var19, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var20)->values[0] = (val*) var9; -((struct instance_array__NativeArray*)var20)->values[1] = (val*) var_decl_name; -((struct instance_array__NativeArray*)var20)->values[2] = (val*) var14; -((struct instance_array__NativeArray*)var20)->values[3] = (val*) var_mod_name; -((void (*)(val*, val*, long))(var18->class->vft[COLOR_array__Array__with_native]))(var18, var20, var19) /* with_native on */; -} -var21 = ((val* (*)(val*))(var18->class->vft[COLOR_string__Object__to_s]))(var18) /* to_s on */; -((void (*)(val*, val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(self, var8, var21) /* error on */; -} else { -} -} -var22 = NEW_mmodule__MModule(&type_mmodule__MModule); -var23 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__model]))(self) /* model on */; -var24 = ((val* (*)(val*))(var_nmodule->class->vft[COLOR_parser_nodes__ANode__location]))(var_nmodule) /* location on */; -((void (*)(val*, val*, val*, val*, val*))(var22->class->vft[COLOR_mmodule__MModule__init]))(var22, var23, var_mgroup, var_mod_name, var24) /* init on */; -var_mmodule = var22; -((void (*)(val*, val*))(var_nmodule->class->vft[COLOR_modelbuilder__AModule__mmodule_61d]))(var_nmodule, var_mmodule) /* mmodule= on */; -var25 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__nmodules]))(self) /* nmodules on */; -((void (*)(val*, val*))(var25->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var25, var_nmodule) /* add on */; -var26 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__mmodule2nmodule]))(self) /* mmodule2nmodule on */; -((void (*)(val*, val*, val*))(var26->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var26, var_mmodule, var_nmodule) /* []= on */; -((void (*)(val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__build_module_importation]))(self, var_nmodule) /* build_module_importation on */; +} var = var_mmodule; goto RET_LABEL; RET_LABEL:; @@ -3290,234 +6248,709 @@ return var; void modelbuilder__ModelBuilder__build_module_importation(val* self, val* p0) { val* var_nmodule /* var nmodule: AModule */; short int var /* : Bool */; -short int var1 /* : Bool */; -val* var2 /* : nullable MModule */; -val* var_mmodule /* var mmodule: MModule */; +short int var2 /* : Bool */; short int var3 /* : Bool */; +val* var5 /* : nullable MModule */; +val* var7 /* : nullable MModule */; +val* var_mmodule /* var mmodule: MModule */; +short int var8 /* : Bool */; short int var_stdimport /* var stdimport: Bool */; -val* var4 /* : Array[MModule] */; +val* var9 /* : Array[MModule] */; val* var_imported_modules /* var imported_modules: Array[MModule] */; -val* var5 /* : ANodes[AImport] */; -val* var6 /* : Iterator[nullable Object] */; -short int var7 /* : Bool */; -val* var8 /* : nullable Object */; +val* var10 /* : ANodes[AImport] */; +val* var12 /* : ANodes[AImport] */; +val* var13 /* : Iterator[ANode] */; +short int var14 /* : Bool */; +val* var15 /* : nullable Object */; val* var_aimport /* var aimport: AImport */; -short int var9 /* : Bool */; -short int var10 /* : Bool */; +short int var16 /* : Bool */; +short int var17 /* : Bool */; int cltype; int idtype; -short int var11 /* : Bool */; -val* var12 /* : AModuleName */; -val* var13 /* : TId */; -val* var14 /* : String */; +short int var18 /* : Bool */; +val* var19 /* : nullable MGroup */; +val* var21 /* : nullable MGroup */; +val* var_mgroup /* var mgroup: nullable MGroup */; +val* var22 /* : AModuleName */; +val* var23 /* : nullable TQuad */; +val* var24 /* : null */; +short int var25 /* : Bool */; +short int var26 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var28 /* : Bool */; +short int var29 /* : Bool */; +short int var30 /* : Bool */; +val* var31 /* : null */; +val* var32 /* : AModuleName */; +val* var33 /* : ANodes[TId] */; +val* var35 /* : ANodes[TId] */; +val* var36 /* : Iterator[ANode] */; +short int var37 /* : Bool */; +val* var38 /* : nullable Object */; +val* var_grp /* var grp: TId */; +val* var39 /* : String */; +val* var40 /* : nullable ModulePath */; +val* var_path /* var path: nullable ModulePath */; +val* var41 /* : null */; +short int var42 /* : Bool */; +short int var43 /* : Bool */; +val* var_other45 /* var other: nullable Object */; +short int var46 /* : Bool */; +short int var48 /* : Bool */; +val* var49 /* : MGroup */; +val* var51 /* : MGroup */; +val* var53 /* : AModuleName */; +val* var54 /* : TId */; +val* var55 /* : String */; val* var_mod_name /* var mod_name: String */; -val* var15 /* : AModuleName */; -val* var16 /* : nullable MModule */; +val* var56 /* : AModuleName */; +val* var57 /* : nullable MModule */; val* var_sup /* var sup: nullable MModule */; -val* var17 /* : null */; -short int var18 /* : Bool */; -val* var19 /* : AVisibility */; -val* var20 /* : MVisibility */; +val* var58 /* : null */; +short int var59 /* : Bool */; +short int var60 /* : Bool */; +short int var62 /* : Bool */; +short int var64 /* : Bool */; +val* var66 /* : AVisibility */; +val* var67 /* : MVisibility */; val* var_mvisibility /* var mvisibility: MVisibility */; -val* var21 /* : MVisibility */; -short int var22 /* : Bool */; -val* var23 /* : AVisibility */; +val* var68 /* : MVisibility */; +short int var69 /* : Bool */; +short int var70 /* : Bool */; +short int var72 /* : Bool */; +short int var74 /* : Bool */; +val* var75 /* : AVisibility */; static val* varonce; -val* var24 /* : String */; -char* var25 /* : NativeString */; -long var26 /* : Int */; -val* var27 /* : String */; -static val* varonce28; -val* var29 /* : String */; -char* var30 /* : NativeString */; -long var31 /* : Int */; -val* var32 /* : String */; -val* var_mod_name33 /* var mod_name: String */; -val* var34 /* : null */; -val* var35 /* : nullable MModule */; -val* var_sup36 /* var sup: nullable MModule */; -val* var37 /* : null */; -short int var38 /* : Bool */; -val* var39 /* : MVisibility */; -val* var40 /* : ToolContext */; -static val* varonce41; -val* var42 /* : String */; -char* var43 /* : NativeString */; -long var44 /* : Int */; -val* var45 /* : String */; -static val* varonce46; -val* var47 /* : String */; -char* var48 /* : NativeString */; -long var49 /* : Int */; -val* var50 /* : String */; -val* var51 /* : String */; -val* var52 /* : Array[Object] */; -long var53 /* : Int */; -val* var54 /* : NativeArray[Object] */; -val* var55 /* : String */; -long var56 /* : Int */; +val* var76 /* : String */; +char* var77 /* : NativeString */; +long var78 /* : Int */; +val* var79 /* : FlatString */; +short int var80 /* : Bool */; +short int var81 /* : Bool */; +short int var83 /* : Bool */; +short int var85 /* : Bool */; +val* var86 /* : AModuleName */; +static val* varonce87; +val* var88 /* : String */; +char* var89 /* : NativeString */; +long var90 /* : Int */; +val* var91 /* : FlatString */; +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 /* : POSetElement[MModule] */; +val* var103 /* : POSetElement[MModule] */; +short int var104 /* : Bool */; +val* var105 /* : AModuleName */; +static val* varonce106; +val* var107 /* : String */; +char* var108 /* : NativeString */; +long var109 /* : Int */; +val* var110 /* : FlatString */; +static val* varonce111; +val* var112 /* : String */; +char* var113 /* : NativeString */; +long var114 /* : Int */; +val* var115 /* : FlatString */; +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 */; +static val* varonce125; +val* var126 /* : String */; +char* var127 /* : NativeString */; +long var128 /* : Int */; +val* var129 /* : FlatString */; +val* var_mod_name130 /* var mod_name: String */; +val* var131 /* : null */; +val* var132 /* : nullable MModule */; +val* var_sup133 /* var sup: nullable MModule */; +val* var134 /* : null */; +short int var135 /* : Bool */; +short int var136 /* : Bool */; +short int var138 /* : Bool */; +short int var139 /* : Bool */; +short int var140 /* : Bool */; +val* var141 /* : MVisibility */; +val* var142 /* : ToolContext */; +val* var144 /* : ToolContext */; +static val* varonce145; +val* var146 /* : String */; +char* var147 /* : NativeString */; +long var148 /* : Int */; +val* var149 /* : FlatString */; +static val* varonce150; +val* var151 /* : String */; +char* var152 /* : NativeString */; +long var153 /* : Int */; +val* var154 /* : FlatString */; +val* var155 /* : String */; +val* var156 /* : Array[Object] */; +long var157 /* : Int */; +val* var158 /* : NativeArray[Object] */; +val* var159 /* : String */; +long var160 /* : Int */; var_nmodule = p0; -var = ((short int (*)(val*))(var_nmodule->class->vft[COLOR_modelbuilder__AModule__is_importation_done]))(var_nmodule) /* is_importation_done on */; +{ +{ /* Inline modelbuilder#AModule#is_importation_done (var_nmodule) on */ +var2 = var_nmodule->attrs[COLOR_modelbuilder__AModule___is_importation_done].s; /* _is_importation_done on */ +var = var2; +RET_LABEL1:(void)0; +} +} if (var){ goto RET_LABEL; } else { } -var1 = 1; -((void (*)(val*, short int))(var_nmodule->class->vft[COLOR_modelbuilder__AModule__is_importation_done_61d]))(var_nmodule, var1) /* is_importation_done= on */; -var2 = ((val* (*)(val*))(var_nmodule->class->vft[COLOR_modelbuilder__AModule__mmodule]))(var_nmodule) /* mmodule on */; -if (var2 == NULL) { -fprintf(stderr, "Runtime error: %s", "Cast failed"); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 540); +var3 = 1; +{ +{ /* Inline modelbuilder#AModule#is_importation_done= (var_nmodule,var3) on */ +var_nmodule->attrs[COLOR_modelbuilder__AModule___is_importation_done].s = var3; /* _is_importation_done on */ +RET_LABEL4:(void)0; +} +} +{ +{ /* Inline modelbuilder#AModule#mmodule (var_nmodule) on */ +var7 = var_nmodule->attrs[COLOR_modelbuilder__AModule___mmodule].val; /* _mmodule on */ +var5 = var7; +RET_LABEL6:(void)0; +} +} +if (unlikely(var5 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 648); show_backtrace(1); } -var_mmodule = var2; -var3 = 1; -var_stdimport = var3; -var4 = NEW_array__Array(&type_array__Arraymmodule__MModule); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_imported_modules = var4; -var5 = ((val* (*)(val*))(var_nmodule->class->vft[COLOR_parser_nodes__AModule__n_imports]))(var_nmodule) /* n_imports on */; -var6 = ((val* (*)(val*))(var5->class->vft[COLOR_abstract_collection__Collection__iterator]))(var5) /* iterator on */; +var_mmodule = var5; +var8 = 1; +var_stdimport = var8; +var9 = NEW_array__Array(&type_array__Arraymmodule__MModule); +{ +array__Array__init(var9); /* Direct call array#Array#init on */ +} +var_imported_modules = var9; +{ +{ /* Inline parser_nodes#AModule#n_imports (var_nmodule) on */ +var12 = var_nmodule->attrs[COLOR_parser_nodes__AModule___n_imports].val; /* _n_imports on */ +if (unlikely(var12 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_imports"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 697); +show_backtrace(1); +} +var10 = var12; +RET_LABEL11:(void)0; +} +} +{ +var13 = parser_nodes__ANodes__iterator(var10); +} for(;;) { -var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on */; -if(!var7) break; -var8 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__item]))(var6) /* item on */; -var_aimport = var8; -var9 = 0; -var_stdimport = var9; +{ +var14 = ((short int (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var13) /* is_ok on */; +} +if(!var14) break; +{ +var15 = ((val* (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__item]))(var13) /* item on */; +} +var_aimport = var15; +var16 = 0; +var_stdimport = var16; /* isa AStdImport */ cltype = type_parser_nodes__AStdImport.color; idtype = type_parser_nodes__AStdImport.id; if(cltype >= var_aimport->type->table_size) { -var10 = 0; +var17 = 0; } else { -var10 = var_aimport->type->type_table[cltype] == idtype; +var17 = var_aimport->type->type_table[cltype] == idtype; } -var11 = !var10; -if (var11){ +var18 = !var17; +if (var18){ goto CONTINUE_label; } else { } -var12 = ((val* (*)(val*))(var_aimport->class->vft[COLOR_parser_nodes__AStdImport__n_name]))(var_aimport) /* n_name on */; -var13 = ((val* (*)(val*))(var12->class->vft[COLOR_parser_nodes__AModuleName__n_id]))(var12) /* n_id on */; -var14 = ((val* (*)(val*))(var13->class->vft[COLOR_parser_nodes__Token__text]))(var13) /* text on */; -var_mod_name = var14; -var15 = ((val* (*)(val*))(var_aimport->class->vft[COLOR_parser_nodes__AStdImport__n_name]))(var_aimport) /* n_name on */; -var16 = ((val* (*)(val*, val*, val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__get_mmodule_by_name]))(self, var15, var_mmodule, var_mod_name) /* get_mmodule_by_name on */; -var_sup = var16; -var17 = NULL; +{ +{ /* Inline mmodule#MModule#mgroup (var_mmodule) on */ +var21 = var_mmodule->attrs[COLOR_mmodule__MModule___mgroup].val; /* _mgroup on */ +var19 = var21; +RET_LABEL20:(void)0; +} +} +var_mgroup = var19; +{ +var22 = parser_nodes__AStdImport__n_name(var_aimport); +} +{ +var23 = parser_nodes__AModuleName__n_quad(var22); +} +var24 = NULL; +if (var23 == NULL) { +var25 = 0; /* is null */ +} else { +var25 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var23,var24) on */ +var_other = var24; +{ +var29 = ((short int (*)(val*, val*))(var23->class->vft[COLOR_kernel__Object___61d_61d]))(var23, var_other) /* == on */; +var28 = var29; +} +var30 = !var28; +var26 = var30; +goto RET_LABEL27; +RET_LABEL27:(void)0; +} +var25 = var26; +} +if (var25){ +var31 = NULL; +var_mgroup = var31; +} else { +} +{ +var32 = parser_nodes__AStdImport__n_name(var_aimport); +} +{ +{ /* Inline parser_nodes#AModuleName#n_path (var32) on */ +var35 = var32->attrs[COLOR_parser_nodes__AModuleName___n_path].val; /* _n_path on */ +if (unlikely(var35 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_path"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2349); +show_backtrace(1); +} +var33 = var35; +RET_LABEL34:(void)0; +} +} +{ +var36 = parser_nodes__ANodes__iterator(var33); +} +for(;;) { +{ +var37 = ((short int (*)(val*))(var36->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var36) /* is_ok on */; +} +if(!var37) break; +{ +var38 = ((val* (*)(val*))(var36->class->vft[COLOR_abstract_collection__Iterator__item]))(var36) /* item on */; +} +var_grp = var38; +{ +var39 = lexer_work__Token__text(var_grp); +} +{ +var40 = modelbuilder__ModelBuilder__search_mmodule_by_name(self, var_grp, var_mgroup, var39); +} +var_path = var40; +var41 = NULL; +if (var_path == NULL) { +var42 = 1; /* is null */ +} else { +var42 = 0; /* arg is null but recv is not */ +} +if (0) { +{ /* Inline kernel#Object#== (var_path,var41) on */ +var_other45 = var41; +{ +{ /* Inline kernel#Object#is_same_instance (var_path,var_other45) on */ +var48 = var_path == var_other45; +var46 = var48; +goto RET_LABEL47; +RET_LABEL47:(void)0; +} +} +var43 = var46; +goto RET_LABEL44; +RET_LABEL44:(void)0; +} +var42 = var43; +} +if (var42){ +goto RET_LABEL; +} else { +} +{ +{ /* Inline modelbuilder#ModulePath#mgroup (var_path) on */ +var51 = var_path->attrs[COLOR_modelbuilder__ModulePath___mgroup].val; /* _mgroup on */ +if (unlikely(var51 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mgroup"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 736); +show_backtrace(1); +} +var49 = var51; +RET_LABEL50:(void)0; +} +} +var_mgroup = var49; +CONTINUE_label52: (void)0; +{ +((void (*)(val*))(var36->class->vft[COLOR_abstract_collection__Iterator__next]))(var36) /* next on */; +} +} +BREAK_label52: (void)0; +{ +var53 = parser_nodes__AStdImport__n_name(var_aimport); +} +{ +var54 = parser_nodes__AModuleName__n_id(var53); +} +{ +var55 = lexer_work__Token__text(var54); +} +var_mod_name = var55; +{ +var56 = parser_nodes__AStdImport__n_name(var_aimport); +} +{ +var57 = modelbuilder__ModelBuilder__get_mmodule_by_name(self, var56, var_mgroup, var_mod_name); +} +var_sup = var57; +var58 = NULL; if (var_sup == NULL) { -var18 = 1; /* is null */ +var59 = 1; /* is null */ } else { -var18 = 0; /* arg is null but recv is not */ +var59 = 0; /* arg is null but recv is not */ } -if (var18){ +if (0) { +{ /* Inline kernel#Object#== (var_sup,var58) on */ +var_other45 = var58; +{ +{ /* Inline kernel#Object#is_same_instance (var_sup,var_other45) on */ +var64 = var_sup == var_other45; +var62 = var64; +goto RET_LABEL63; +RET_LABEL63:(void)0; +} +} +var60 = var62; +goto RET_LABEL61; +RET_LABEL61:(void)0; +} +var59 = var60; +} +if (var59){ goto CONTINUE_label; } else { } -((void (*)(val*, val*))(var_aimport->class->vft[COLOR_modelbuilder__AStdImport__mmodule_61d]))(var_aimport, var_sup) /* mmodule= on */; -((void (*)(val*, val*))(var_imported_modules->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_imported_modules, var_sup) /* add on */; -var19 = ((val* (*)(val*))(var_aimport->class->vft[COLOR_parser_nodes__AStdImport__n_visibility]))(var_aimport) /* n_visibility on */; -var20 = ((val* (*)(val*))(var19->class->vft[COLOR_modelbuilder__AVisibility__mvisibility]))(var19) /* mvisibility on */; -var_mvisibility = var20; -var21 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__protected_visibility]))(self) /* protected_visibility on */; -var22 = ((short int (*)(val*, val*))(var_mvisibility->class->vft[COLOR_kernel__Object___61d_61d]))(var_mvisibility, var21) /* == on */; -if (var22){ -var23 = ((val* (*)(val*))(var_aimport->class->vft[COLOR_parser_nodes__AStdImport__n_visibility]))(var_aimport) /* n_visibility on */; +{ +{ /* Inline modelbuilder#AStdImport#mmodule= (var_aimport,var_sup) on */ +var_aimport->attrs[COLOR_modelbuilder__AStdImport___mmodule].val = var_sup; /* _mmodule on */ +RET_LABEL65:(void)0; +} +} +{ +array__Array__add(var_imported_modules, var_sup); /* Direct call array#Array#add on */ +} +{ +var66 = parser_nodes__AStdImport__n_visibility(var_aimport); +} +{ +var67 = ((val* (*)(val*))(var66->class->vft[COLOR_modelbuilder__AVisibility__mvisibility]))(var66) /* mvisibility on */; +} +var_mvisibility = var67; +{ +var68 = model_base__Object__protected_visibility(self); +} +{ +{ /* Inline kernel#Object#== (var_mvisibility,var68) on */ +var_other45 = var68; +{ +{ /* Inline kernel#Object#is_same_instance (var_mvisibility,var_other45) on */ +var74 = var_mvisibility == var_other45; +var72 = var74; +goto RET_LABEL73; +RET_LABEL73:(void)0; +} +} +var70 = var72; +goto RET_LABEL71; +RET_LABEL71:(void)0; +} +var69 = var70; +} +if (var69){ +{ +var75 = parser_nodes__AStdImport__n_visibility(var_aimport); +} if (varonce) { -var24 = varonce; +var76 = varonce; } else { -var25 = "Error: only properties can be protected."; -var26 = 40; -var27 = string__NativeString__to_s_with_length(var25, var26); -var24 = var27; -varonce = var24; +var77 = "Error: only properties can be protected."; +var78 = 40; +var79 = string__NativeString__to_s_with_length(var77, var78); +var76 = var79; +varonce = var76; +} +{ +modelbuilder__ModelBuilder__error(self, var75, var76); /* Direct call modelbuilder#ModelBuilder#error on */ +} +goto RET_LABEL; +} else { +} +{ +{ /* Inline kernel#Object#== (var_sup,var_mmodule) on */ +var_other45 = var_mmodule; +{ +{ /* Inline kernel#Object#is_same_instance (var_sup,var_other45) on */ +var85 = var_sup == var_other45; +var83 = var85; +goto RET_LABEL84; +RET_LABEL84:(void)0; +} +} +var81 = var83; +goto RET_LABEL82; +RET_LABEL82:(void)0; +} +var80 = var81; +} +if (var80){ +{ +var86 = parser_nodes__AStdImport__n_name(var_aimport); +} +if (varonce87) { +var88 = varonce87; +} else { +var89 = "Error: Dependency loop in module "; +var90 = 33; +var91 = string__NativeString__to_s_with_length(var89, var90); +var88 = var91; +varonce87 = var88; +} +if (varonce92) { +var93 = varonce92; +} else { +var94 = "."; +var95 = 1; +var96 = string__NativeString__to_s_with_length(var94, var95); +var93 = var96; +varonce92 = var93; +} +var97 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var97 = array_instance Array[Object] */ +var98 = 3; +var99 = NEW_array__NativeArray(var98, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var99)->values[0] = (val*) var88; +((struct instance_array__NativeArray*)var99)->values[1] = (val*) var_mmodule; +((struct instance_array__NativeArray*)var99)->values[2] = (val*) var93; +{ +((void (*)(val*, val*, long))(var97->class->vft[COLOR_array__Array__with_native]))(var97, var99, var98) /* with_native on */; +} +} +{ +var100 = ((val* (*)(val*))(var97->class->vft[COLOR_string__Object__to_s]))(var97) /* to_s on */; +} +{ +modelbuilder__ModelBuilder__error(self, var86, var100); /* Direct call modelbuilder#ModelBuilder#error on */ +} +} else { +} +{ +{ /* Inline mmodule#MModule#in_importation (var_sup) on */ +var103 = var_sup->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on */ +if (unlikely(var103 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation"); +PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 101); +show_backtrace(1); +} +var101 = var103; +RET_LABEL102:(void)0; +} +} +{ +var104 = poset__POSetElement___60d(var101, var_mmodule); +} +if (var104){ +{ +var105 = parser_nodes__AStdImport__n_name(var_aimport); +} +if (varonce106) { +var107 = varonce106; +} else { +var108 = "Error: Dependency loop between modules "; +var109 = 39; +var110 = string__NativeString__to_s_with_length(var108, var109); +var107 = var110; +varonce106 = var107; +} +if (varonce111) { +var112 = varonce111; +} else { +var113 = " and "; +var114 = 5; +var115 = string__NativeString__to_s_with_length(var113, var114); +var112 = var115; +varonce111 = var112; +} +if (varonce116) { +var117 = varonce116; +} else { +var118 = "."; +var119 = 1; +var120 = string__NativeString__to_s_with_length(var118, var119); +var117 = var120; +varonce116 = var117; +} +var121 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var121 = array_instance Array[Object] */ +var122 = 5; +var123 = NEW_array__NativeArray(var122, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var123)->values[0] = (val*) var107; +((struct instance_array__NativeArray*)var123)->values[1] = (val*) var_mmodule; +((struct instance_array__NativeArray*)var123)->values[2] = (val*) var112; +((struct instance_array__NativeArray*)var123)->values[3] = (val*) var_sup; +((struct instance_array__NativeArray*)var123)->values[4] = (val*) var117; +{ +((void (*)(val*, val*, long))(var121->class->vft[COLOR_array__Array__with_native]))(var121, var123, var122) /* with_native on */; +} +} +{ +var124 = ((val* (*)(val*))(var121->class->vft[COLOR_string__Object__to_s]))(var121) /* to_s on */; +} +{ +modelbuilder__ModelBuilder__error(self, var105, var124); /* Direct call modelbuilder#ModelBuilder#error on */ } -((void (*)(val*, val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(self, var23, var24) /* error on */; goto RET_LABEL; } else { } -((void (*)(val*, val*, val*))(var_mmodule->class->vft[COLOR_mmodule__MModule__set_visibility_for]))(var_mmodule, var_sup, var_mvisibility) /* set_visibility_for on */; +{ +mmodule__MModule__set_visibility_for(var_mmodule, var_sup, var_mvisibility); /* Direct call mmodule#MModule#set_visibility_for on */ +} CONTINUE_label: (void)0; -((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on */; +{ +((void (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__next]))(var13) /* next on */; +} } BREAK_label: (void)0; if (var_stdimport){ -if (varonce28) { -var29 = varonce28; +if (varonce125) { +var126 = varonce125; } else { -var30 = "standard"; -var31 = 8; -var32 = string__NativeString__to_s_with_length(var30, var31); -var29 = var32; -varonce28 = var29; +var127 = "standard"; +var128 = 8; +var129 = string__NativeString__to_s_with_length(var127, var128); +var126 = var129; +varonce125 = var126; +} +var_mod_name130 = var126; +var131 = NULL; +{ +var132 = modelbuilder__ModelBuilder__get_mmodule_by_name(self, var_nmodule, var131, var_mod_name130); } -var_mod_name33 = var29; -var34 = NULL; -var35 = ((val* (*)(val*, val*, val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__get_mmodule_by_name]))(self, var_nmodule, var34, var_mod_name33) /* get_mmodule_by_name on */; -var_sup36 = var35; -var37 = NULL; -if (var_sup36 == NULL) { -var38 = 0; /* is null */ +var_sup133 = var132; +var134 = NULL; +if (var_sup133 == NULL) { +var135 = 0; /* is null */ } else { -var38 = 1; /* arg is null and recv is not */ +var135 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_sup133,var134) on */ +var_other = var134; +{ +var139 = ((short int (*)(val*, val*))(var_sup133->class->vft[COLOR_kernel__Object___61d_61d]))(var_sup133, var_other) /* == on */; +var138 = var139; +} +var140 = !var138; +var136 = var140; +goto RET_LABEL137; +RET_LABEL137:(void)0; +} +var135 = var136; +} +if (var135){ +{ +array__Array__add(var_imported_modules, var_sup133); /* Direct call array#Array#add on */ +} +{ +var141 = model_base__Object__public_visibility(self); +} +{ +mmodule__MModule__set_visibility_for(var_mmodule, var_sup133, var141); /* Direct call mmodule#MModule#set_visibility_for on */ } -if (var38){ -((void (*)(val*, val*))(var_imported_modules->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_imported_modules, var_sup36) /* add on */; -var39 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__public_visibility]))(self) /* public_visibility on */; -((void (*)(val*, val*, val*))(var_mmodule->class->vft[COLOR_mmodule__MModule__set_visibility_for]))(var_mmodule, var_sup36, var39) /* set_visibility_for on */; } else { } } else { } -var40 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(self) /* toolcontext on */; -if (varonce41) { -var42 = varonce41; +{ +{ /* Inline modelbuilder#ModelBuilder#toolcontext (self) on */ +var144 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var144 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +show_backtrace(1); +} +var142 = var144; +RET_LABEL143:(void)0; +} +} +if (varonce145) { +var146 = varonce145; } else { -var43 = " imports "; -var44 = 9; -var45 = string__NativeString__to_s_with_length(var43, var44); -var42 = var45; -varonce41 = var42; +var147 = " imports "; +var148 = 9; +var149 = string__NativeString__to_s_with_length(var147, var148); +var146 = var149; +varonce145 = var146; } -if (varonce46) { -var47 = varonce46; +if (varonce150) { +var151 = varonce150; } else { -var48 = ", "; -var49 = 2; -var50 = string__NativeString__to_s_with_length(var48, var49); -var47 = var50; -varonce46 = var47; +var152 = ", "; +var153 = 2; +var154 = string__NativeString__to_s_with_length(var152, var153); +var151 = var154; +varonce150 = var151; } -var51 = ((val* (*)(val*, val*))(var_imported_modules->class->vft[COLOR_string__Collection__join]))(var_imported_modules, var47) /* join on */; -var52 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var52 = array_instance Array[Object] */ -var53 = 3; -var54 = NEW_array__NativeArray(var53, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var54)->values[0] = (val*) var_mmodule; -((struct instance_array__NativeArray*)var54)->values[1] = (val*) var42; -((struct instance_array__NativeArray*)var54)->values[2] = (val*) var51; -((void (*)(val*, val*, long))(var52->class->vft[COLOR_array__Array__with_native]))(var52, var54, var53) /* with_native on */; +{ +var155 = string__Collection__join(var_imported_modules, var151); +} +var156 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var156 = array_instance Array[Object] */ +var157 = 3; +var158 = NEW_array__NativeArray(var157, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var158)->values[0] = (val*) var_mmodule; +((struct instance_array__NativeArray*)var158)->values[1] = (val*) var146; +((struct instance_array__NativeArray*)var158)->values[2] = (val*) var155; +{ +((void (*)(val*, val*, long))(var156->class->vft[COLOR_array__Array__with_native]))(var156, var158, var157) /* with_native on */; +} +} +{ +var159 = ((val* (*)(val*))(var156->class->vft[COLOR_string__Object__to_s]))(var156) /* to_s on */; +} +var160 = 3; +{ +toolcontext__ToolContext__info(var142, var159, var160); /* Direct call toolcontext#ToolContext#info on */ +} +{ +mmodule__MModule__set_imported_mmodules(var_mmodule, var_imported_modules); /* Direct call mmodule#MModule#set_imported_mmodules on */ } -var55 = ((val* (*)(val*))(var52->class->vft[COLOR_string__Object__to_s]))(var52) /* to_s on */; -var56 = 3; -((void (*)(val*, val*, long))(var40->class->vft[COLOR_toolcontext__ToolContext__info]))(var40, var55, var56) /* info on */; -((void (*)(val*, val*))(var_mmodule->class->vft[COLOR_mmodule__MModule__set_imported_mmodules]))(var_mmodule, var_imported_modules) /* set_imported_mmodules on */; RET_LABEL:; } /* method modelbuilder#ModelBuilder#build_module_importation for (self: Object, AModule) */ void VIRTUAL_modelbuilder__ModelBuilder__build_module_importation(val* self, val* p0) { -modelbuilder__ModelBuilder__build_module_importation(self, p0); +modelbuilder__ModelBuilder__build_module_importation(self, p0); /* Direct call modelbuilder#ModelBuilder#build_module_importation on */ RET_LABEL:; } /* method modelbuilder#ModelBuilder#nmodules for (self: ModelBuilder): Array[AModule] */ val* modelbuilder__ModelBuilder__nmodules(val* self) { val* var /* : Array[AModule] */; val* var1 /* : Array[AModule] */; -var1 = self->attrs[COLOR_modelbuilder__ModelBuilder___64dnmodules].val; /* @nmodules on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @nmodules"); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 572); +var1 = self->attrs[COLOR_modelbuilder__ModelBuilder___nmodules].val; /* _nmodules on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _nmodules"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 694); show_backtrace(1); } var = var1; @@ -3528,29 +6961,29 @@ return var; val* VIRTUAL_modelbuilder__ModelBuilder__nmodules(val* self) { val* var /* : Array[AModule] */; val* var1 /* : Array[AModule] */; -var1 = modelbuilder__ModelBuilder__nmodules(self); -var = var1; -RET_LABEL:; -return var; +val* var3 /* : Array[AModule] */; +{ /* Inline modelbuilder#ModelBuilder#nmodules (self) on */ +var3 = self->attrs[COLOR_modelbuilder__ModelBuilder___nmodules].val; /* _nmodules on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _nmodules"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 694); +show_backtrace(1); } -/* method modelbuilder#ModelBuilder#nmodules= for (self: ModelBuilder, Array[AModule]) */ -void modelbuilder__ModelBuilder__nmodules_61d(val* self, val* p0) { -self->attrs[COLOR_modelbuilder__ModelBuilder___64dnmodules].val = p0; /* @nmodules on */ -RET_LABEL:; +var1 = var3; +RET_LABEL2:(void)0; } -/* method modelbuilder#ModelBuilder#nmodules= for (self: Object, Array[AModule]) */ -void VIRTUAL_modelbuilder__ModelBuilder__nmodules_61d(val* self, val* p0) { -modelbuilder__ModelBuilder__nmodules_61d(self, p0); +var = var1; RET_LABEL:; +return var; } /* method modelbuilder#ModelBuilder#mmodule2nmodule for (self: ModelBuilder): HashMap[MModule, AModule] */ val* modelbuilder__ModelBuilder__mmodule2nmodule(val* self) { val* var /* : HashMap[MModule, AModule] */; val* var1 /* : HashMap[MModule, AModule] */; -var1 = self->attrs[COLOR_modelbuilder__ModelBuilder___64dmmodule2nmodule].val; /* @mmodule2nmodule on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mmodule2nmodule"); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 575); +var1 = self->attrs[COLOR_modelbuilder__ModelBuilder___mmodule2nmodule].val; /* _mmodule2nmodule on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule2nmodule"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 697); show_backtrace(1); } var = var1; @@ -3561,37 +6994,53 @@ return var; val* VIRTUAL_modelbuilder__ModelBuilder__mmodule2nmodule(val* self) { val* var /* : HashMap[MModule, AModule] */; val* var1 /* : HashMap[MModule, AModule] */; -var1 = modelbuilder__ModelBuilder__mmodule2nmodule(self); -var = var1; -RET_LABEL:; -return var; +val* var3 /* : HashMap[MModule, AModule] */; +{ /* Inline modelbuilder#ModelBuilder#mmodule2nmodule (self) on */ +var3 = self->attrs[COLOR_modelbuilder__ModelBuilder___mmodule2nmodule].val; /* _mmodule2nmodule on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule2nmodule"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 697); +show_backtrace(1); } -/* method modelbuilder#ModelBuilder#mmodule2nmodule= for (self: ModelBuilder, HashMap[MModule, AModule]) */ -void modelbuilder__ModelBuilder__mmodule2nmodule_61d(val* self, val* p0) { -self->attrs[COLOR_modelbuilder__ModelBuilder___64dmmodule2nmodule].val = p0; /* @mmodule2nmodule on */ -RET_LABEL:; +var1 = var3; +RET_LABEL2:(void)0; } -/* method modelbuilder#ModelBuilder#mmodule2nmodule= for (self: Object, HashMap[MModule, AModule]) */ -void VIRTUAL_modelbuilder__ModelBuilder__mmodule2nmodule_61d(val* self, val* p0) { -modelbuilder__ModelBuilder__mmodule2nmodule_61d(self, p0); +var = var1; RET_LABEL:; +return var; } /* method modelbuilder#ModelBuilder#error for (self: ModelBuilder, ANode, String) */ void modelbuilder__ModelBuilder__error(val* self, val* p0, val* p1) { val* var_n /* var n: ANode */; val* var_text /* var text: String */; val* var /* : ToolContext */; -val* var1 /* : Location */; +val* var2 /* : ToolContext */; +val* var3 /* : Location */; var_n = p0; var_text = p1; -var = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(self) /* toolcontext on */; -var1 = ((val* (*)(val*))(var_n->class->vft[COLOR_parser_nodes__ANode__hot_location]))(var_n) /* hot_location on */; -((void (*)(val*, val*, val*))(var->class->vft[COLOR_toolcontext__ToolContext__error]))(var, var1, var_text) /* error on */; +{ +{ /* Inline modelbuilder#ModelBuilder#toolcontext (self) on */ +var2 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +show_backtrace(1); +} +var = var2; +RET_LABEL1:(void)0; +} +} +{ +var3 = ((val* (*)(val*))(var_n->class->vft[COLOR_parser_nodes__ANode__hot_location]))(var_n) /* hot_location on */; +} +{ +toolcontext__ToolContext__error(var, var3, var_text); /* Direct call toolcontext#ToolContext#error on */ +} RET_LABEL:; } /* method modelbuilder#ModelBuilder#error for (self: Object, ANode, String) */ void VIRTUAL_modelbuilder__ModelBuilder__error(val* self, val* p0, val* p1) { -modelbuilder__ModelBuilder__error(self, p0, p1); +modelbuilder__ModelBuilder__error(self, p0, p1); /* Direct call modelbuilder#ModelBuilder#error on */ RET_LABEL:; } /* method modelbuilder#ModelBuilder#warning for (self: ModelBuilder, ANode, String) */ @@ -3599,17 +7048,33 @@ void modelbuilder__ModelBuilder__warning(val* self, val* p0, val* p1) { val* var_n /* var n: ANode */; val* var_text /* var text: String */; val* var /* : ToolContext */; -val* var1 /* : Location */; +val* var2 /* : ToolContext */; +val* var3 /* : Location */; var_n = p0; var_text = p1; -var = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(self) /* toolcontext on */; -var1 = ((val* (*)(val*))(var_n->class->vft[COLOR_parser_nodes__ANode__hot_location]))(var_n) /* hot_location on */; -((void (*)(val*, val*, val*))(var->class->vft[COLOR_toolcontext__ToolContext__warning]))(var, var1, var_text) /* warning on */; +{ +{ /* Inline modelbuilder#ModelBuilder#toolcontext (self) on */ +var2 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +show_backtrace(1); +} +var = var2; +RET_LABEL1:(void)0; +} +} +{ +var3 = ((val* (*)(val*))(var_n->class->vft[COLOR_parser_nodes__ANode__hot_location]))(var_n) /* hot_location on */; +} +{ +toolcontext__ToolContext__warning(var, var3, var_text); /* Direct call toolcontext#ToolContext#warning on */ +} RET_LABEL:; } /* method modelbuilder#ModelBuilder#warning for (self: Object, ANode, String) */ void VIRTUAL_modelbuilder__ModelBuilder__warning(val* self, val* p0, val* p1) { -modelbuilder__ModelBuilder__warning(self, p0, p1); +modelbuilder__ModelBuilder__warning(self, p0, p1); /* Direct call modelbuilder#ModelBuilder#warning on */ RET_LABEL:; } /* method modelbuilder#ModelBuilder#force_get_primitive_method for (self: ModelBuilder, ANode, String, MClass, MModule): MMethod */ @@ -3623,32 +7088,39 @@ val* var1 /* : nullable MMethod */; val* var_res /* var res: nullable MMethod */; val* var2 /* : null */; short int var3 /* : Bool */; -val* var4 /* : ToolContext */; -val* var5 /* : Location */; +short int var4 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var6 /* : Bool */; +short int var8 /* : Bool */; +val* var9 /* : ToolContext */; +val* var11 /* : ToolContext */; +val* var12 /* : Location */; static val* varonce; -val* var6 /* : String */; -char* var7 /* : NativeString */; -long var8 /* : Int */; -val* var9 /* : String */; -static val* varonce10; -val* var11 /* : String */; -char* var12 /* : NativeString */; -long var13 /* : Int */; -val* var14 /* : String */; -static val* varonce15; -val* var16 /* : String */; -char* var17 /* : NativeString */; -long var18 /* : Int */; -val* var19 /* : String */; -val* var20 /* : Array[Object] */; -long var21 /* : Int */; -val* var22 /* : NativeArray[Object] */; +val* var13 /* : String */; +char* var14 /* : NativeString */; +long var15 /* : Int */; +val* var16 /* : FlatString */; +static val* varonce17; +val* var18 /* : String */; +char* var19 /* : NativeString */; +long var20 /* : Int */; +val* var21 /* : FlatString */; +static val* varonce22; val* var23 /* : String */; +char* var24 /* : NativeString */; +long var25 /* : Int */; +val* var26 /* : FlatString */; +val* var27 /* : Array[Object] */; +long var28 /* : Int */; +val* var29 /* : NativeArray[Object] */; +val* var30 /* : String */; var_n = p0; var_name = p1; var_recv = p2; var_mmodule = p3; -var1 = ((val* (*)(val*, val*, val*))(var_mmodule->class->vft[COLOR_model__MModule__try_get_primitive_method]))(var_mmodule, var_name, var_recv) /* try_get_primitive_method on */; +{ +var1 = model__MModule__try_get_primitive_method(var_mmodule, var_name, var_recv); +} var_res = var1; var2 = NULL; if (var_res == NULL) { @@ -3656,51 +7128,87 @@ var3 = 1; /* is null */ } else { var3 = 0; /* arg is null but recv is not */ } +if (0) { +{ /* Inline kernel#Object#== (var_res,var2) on */ +var_other = var2; +{ +{ /* Inline kernel#Object#is_same_instance (var_res,var_other) on */ +var8 = var_res == var_other; +var6 = var8; +goto RET_LABEL7; +RET_LABEL7:(void)0; +} +} +var4 = var6; +goto RET_LABEL5; +RET_LABEL5:(void)0; +} +var3 = var4; +} if (var3){ -var4 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(self) /* toolcontext on */; -var5 = ((val* (*)(val*))(var_n->class->vft[COLOR_parser_nodes__ANode__hot_location]))(var_n) /* hot_location on */; +{ +{ /* Inline modelbuilder#ModelBuilder#toolcontext (self) on */ +var11 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var11 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101); +show_backtrace(1); +} +var9 = var11; +RET_LABEL10:(void)0; +} +} +{ +var12 = ((val* (*)(val*))(var_n->class->vft[COLOR_parser_nodes__ANode__hot_location]))(var_n) /* hot_location on */; +} if (varonce) { -var6 = varonce; +var13 = varonce; } else { -var7 = "Fatal Error: "; -var8 = 13; -var9 = string__NativeString__to_s_with_length(var7, var8); -var6 = var9; -varonce = var6; +var14 = "Fatal Error: "; +var15 = 13; +var16 = string__NativeString__to_s_with_length(var14, var15); +var13 = var16; +varonce = var13; } -if (varonce10) { -var11 = varonce10; +if (varonce17) { +var18 = varonce17; } else { -var12 = " must have a property named "; -var13 = 28; -var14 = string__NativeString__to_s_with_length(var12, var13); -var11 = var14; -varonce10 = var11; +var19 = " must have a property named "; +var20 = 28; +var21 = string__NativeString__to_s_with_length(var19, var20); +var18 = var21; +varonce17 = var18; } -if (varonce15) { -var16 = varonce15; +if (varonce22) { +var23 = varonce22; } else { -var17 = "."; -var18 = 1; -var19 = string__NativeString__to_s_with_length(var17, var18); -var16 = var19; -varonce15 = var16; +var24 = "."; +var25 = 1; +var26 = string__NativeString__to_s_with_length(var24, var25); +var23 = var26; +varonce22 = var23; +} +var27 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var27 = array_instance Array[Object] */ +var28 = 5; +var29 = NEW_array__NativeArray(var28, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var29)->values[0] = (val*) var13; +((struct instance_array__NativeArray*)var29)->values[1] = (val*) var_recv; +((struct instance_array__NativeArray*)var29)->values[2] = (val*) var18; +((struct instance_array__NativeArray*)var29)->values[3] = (val*) var_name; +((struct instance_array__NativeArray*)var29)->values[4] = (val*) var23; +{ +((void (*)(val*, val*, long))(var27->class->vft[COLOR_array__Array__with_native]))(var27, var29, var28) /* with_native on */; +} } -var20 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var20 = array_instance Array[Object] */ -var21 = 5; -var22 = NEW_array__NativeArray(var21, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var22)->values[0] = (val*) var6; -((struct instance_array__NativeArray*)var22)->values[1] = (val*) var_recv; -((struct instance_array__NativeArray*)var22)->values[2] = (val*) var11; -((struct instance_array__NativeArray*)var22)->values[3] = (val*) var_name; -((struct instance_array__NativeArray*)var22)->values[4] = (val*) var16; -((void (*)(val*, val*, long))(var20->class->vft[COLOR_array__Array__with_native]))(var20, var22, var21) /* with_native on */; +{ +var30 = ((val* (*)(val*))(var27->class->vft[COLOR_string__Object__to_s]))(var27) /* to_s on */; } -var23 = ((val* (*)(val*))(var20->class->vft[COLOR_string__Object__to_s]))(var20) /* to_s on */; -((void (*)(val*, val*, val*))(var4->class->vft[COLOR_toolcontext__ToolContext__fatal_error]))(var4, var5, var23) /* fatal_error on */; -fprintf(stderr, "Runtime error: %s", "Aborted"); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 599); +{ +toolcontext__ToolContext__fatal_error(var9, var12, var30); /* Direct call toolcontext#ToolContext#fatal_error on */ +} +PRINT_ERROR("Runtime error: %s", "Aborted"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 721); show_backtrace(1); } else { } @@ -3722,10 +7230,10 @@ return var; val* modelbuilder__ModulePath__name(val* self) { val* var /* : String */; val* var1 /* : String */; -var1 = self->attrs[COLOR_modelbuilder__ModulePath___64dname].val; /* @name on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @name"); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 607); +var1 = self->attrs[COLOR_modelbuilder__ModulePath___name].val; /* _name on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 729); show_backtrace(1); } var = var1; @@ -3736,29 +7244,29 @@ return var; val* VIRTUAL_modelbuilder__ModulePath__name(val* self) { val* var /* : String */; val* var1 /* : String */; -var1 = modelbuilder__ModulePath__name(self); -var = var1; -RET_LABEL:; -return var; +val* var3 /* : String */; +{ /* Inline modelbuilder#ModulePath#name (self) on */ +var3 = self->attrs[COLOR_modelbuilder__ModulePath___name].val; /* _name on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 729); +show_backtrace(1); } -/* method modelbuilder#ModulePath#name= for (self: ModulePath, String) */ -void modelbuilder__ModulePath__name_61d(val* self, val* p0) { -self->attrs[COLOR_modelbuilder__ModulePath___64dname].val = p0; /* @name on */ -RET_LABEL:; +var1 = var3; +RET_LABEL2:(void)0; } -/* method modelbuilder#ModulePath#name= for (self: Object, String) */ -void VIRTUAL_modelbuilder__ModulePath__name_61d(val* self, val* p0) { -modelbuilder__ModulePath__name_61d(self, p0); +var = var1; RET_LABEL:; +return var; } /* method modelbuilder#ModulePath#filepath for (self: ModulePath): String */ val* modelbuilder__ModulePath__filepath(val* self) { val* var /* : String */; val* var1 /* : String */; -var1 = self->attrs[COLOR_modelbuilder__ModulePath___64dfilepath].val; /* @filepath on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @filepath"); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 611); +var1 = self->attrs[COLOR_modelbuilder__ModulePath___filepath].val; /* _filepath on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filepath"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 733); show_backtrace(1); } var = var1; @@ -3769,29 +7277,29 @@ return var; val* VIRTUAL_modelbuilder__ModulePath__filepath(val* self) { val* var /* : String */; val* var1 /* : String */; -var1 = modelbuilder__ModulePath__filepath(self); -var = var1; -RET_LABEL:; -return var; +val* var3 /* : String */; +{ /* Inline modelbuilder#ModulePath#filepath (self) on */ +var3 = self->attrs[COLOR_modelbuilder__ModulePath___filepath].val; /* _filepath on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filepath"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 733); +show_backtrace(1); } -/* method modelbuilder#ModulePath#filepath= for (self: ModulePath, String) */ -void modelbuilder__ModulePath__filepath_61d(val* self, val* p0) { -self->attrs[COLOR_modelbuilder__ModulePath___64dfilepath].val = p0; /* @filepath on */ -RET_LABEL:; +var1 = var3; +RET_LABEL2:(void)0; } -/* method modelbuilder#ModulePath#filepath= for (self: Object, String) */ -void VIRTUAL_modelbuilder__ModulePath__filepath_61d(val* self, val* p0) { -modelbuilder__ModulePath__filepath_61d(self, p0); +var = var1; RET_LABEL:; +return var; } /* method modelbuilder#ModulePath#mgroup for (self: ModulePath): MGroup */ val* modelbuilder__ModulePath__mgroup(val* self) { val* var /* : MGroup */; val* var1 /* : MGroup */; -var1 = self->attrs[COLOR_modelbuilder__ModulePath___64dmgroup].val; /* @mgroup on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mgroup"); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 614); +var1 = self->attrs[COLOR_modelbuilder__ModulePath___mgroup].val; /* _mgroup on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mgroup"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 736); show_backtrace(1); } var = var1; @@ -3802,26 +7310,26 @@ return var; val* VIRTUAL_modelbuilder__ModulePath__mgroup(val* self) { val* var /* : MGroup */; val* var1 /* : MGroup */; -var1 = modelbuilder__ModulePath__mgroup(self); -var = var1; -RET_LABEL:; -return var; +val* var3 /* : MGroup */; +{ /* Inline modelbuilder#ModulePath#mgroup (self) on */ +var3 = self->attrs[COLOR_modelbuilder__ModulePath___mgroup].val; /* _mgroup on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mgroup"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 736); +show_backtrace(1); } -/* method modelbuilder#ModulePath#mgroup= for (self: ModulePath, MGroup) */ -void modelbuilder__ModulePath__mgroup_61d(val* self, val* p0) { -self->attrs[COLOR_modelbuilder__ModulePath___64dmgroup].val = p0; /* @mgroup on */ -RET_LABEL:; +var1 = var3; +RET_LABEL2:(void)0; } -/* method modelbuilder#ModulePath#mgroup= for (self: Object, MGroup) */ -void VIRTUAL_modelbuilder__ModulePath__mgroup_61d(val* self, val* p0) { -modelbuilder__ModulePath__mgroup_61d(self, p0); +var = var1; RET_LABEL:; +return var; } /* method modelbuilder#ModulePath#mmodule for (self: ModulePath): nullable MModule */ val* modelbuilder__ModulePath__mmodule(val* self) { val* var /* : nullable MModule */; val* var1 /* : nullable MModule */; -var1 = self->attrs[COLOR_modelbuilder__ModulePath___64dmmodule].val; /* @mmodule on */ +var1 = self->attrs[COLOR_modelbuilder__ModulePath___mmodule].val; /* _mmodule on */ var = var1; RET_LABEL:; return var; @@ -3830,26 +7338,46 @@ return var; val* VIRTUAL_modelbuilder__ModulePath__mmodule(val* self) { val* var /* : nullable MModule */; val* var1 /* : nullable MModule */; -var1 = modelbuilder__ModulePath__mmodule(self); +val* var3 /* : nullable MModule */; +{ /* Inline modelbuilder#ModulePath#mmodule (self) on */ +var3 = self->attrs[COLOR_modelbuilder__ModulePath___mmodule].val; /* _mmodule on */ +var1 = var3; +RET_LABEL2:(void)0; +} var = var1; RET_LABEL:; return var; } /* method modelbuilder#ModulePath#mmodule= for (self: ModulePath, nullable MModule) */ void modelbuilder__ModulePath__mmodule_61d(val* self, val* p0) { -self->attrs[COLOR_modelbuilder__ModulePath___64dmmodule].val = p0; /* @mmodule on */ +self->attrs[COLOR_modelbuilder__ModulePath___mmodule].val = p0; /* _mmodule on */ RET_LABEL:; } /* method modelbuilder#ModulePath#mmodule= for (self: Object, nullable MModule) */ void VIRTUAL_modelbuilder__ModulePath__mmodule_61d(val* self, val* p0) { -modelbuilder__ModulePath__mmodule_61d(self, p0); +{ /* Inline modelbuilder#ModulePath#mmodule= (self,p0) on */ +self->attrs[COLOR_modelbuilder__ModulePath___mmodule].val = p0; /* _mmodule on */ +RET_LABEL1:(void)0; +} RET_LABEL:; } /* method modelbuilder#ModulePath#to_s for (self: ModulePath): String */ val* modelbuilder__ModulePath__to_s(val* self) { val* var /* : String */; val* var1 /* : String */; -var1 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModulePath__filepath]))(self) /* filepath on */; +val* var3 /* : String */; +{ +{ /* Inline modelbuilder#ModulePath#filepath (self) on */ +var3 = self->attrs[COLOR_modelbuilder__ModulePath___filepath].val; /* _filepath on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filepath"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 733); +show_backtrace(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} +} var = var1; goto RET_LABEL; RET_LABEL:; @@ -3866,49 +7394,72 @@ return var; } /* method modelbuilder#ModulePath#init for (self: ModulePath, String, String, MGroup) */ void modelbuilder__ModulePath__init(val* self, val* p0, val* p1, val* p2) { -self->attrs[COLOR_modelbuilder__ModulePath___64dname].val = p0; /* @name on */ -self->attrs[COLOR_modelbuilder__ModulePath___64dfilepath].val = p1; /* @filepath on */ -self->attrs[COLOR_modelbuilder__ModulePath___64dmgroup].val = p2; /* @mgroup on */ +self->attrs[COLOR_modelbuilder__ModulePath___name].val = p0; /* _name on */ +self->attrs[COLOR_modelbuilder__ModulePath___filepath].val = p1; /* _filepath on */ +self->attrs[COLOR_modelbuilder__ModulePath___mgroup].val = p2; /* _mgroup on */ RET_LABEL:; } /* method modelbuilder#ModulePath#init for (self: Object, String, String, MGroup) */ void VIRTUAL_modelbuilder__ModulePath__init(val* self, val* p0, val* p1, val* p2) { -modelbuilder__ModulePath__init(self, p0, p1, p2); -RET_LABEL:; +{ /* Inline modelbuilder#ModulePath#init (self,p0,p1,p2) on */ +self->attrs[COLOR_modelbuilder__ModulePath___name].val = p0; /* _name on */ +self->attrs[COLOR_modelbuilder__ModulePath___filepath].val = p1; /* _filepath on */ +self->attrs[COLOR_modelbuilder__ModulePath___mgroup].val = p2; /* _mgroup on */ +RET_LABEL1:(void)0; +} +RET_LABEL:; +} +/* method modelbuilder#MGroup#module_paths for (self: MGroup): Array[ModulePath] */ +val* modelbuilder__MGroup__module_paths(val* self) { +val* var /* : Array[ModulePath] */; +val* var1 /* : Array[ModulePath] */; +var1 = self->attrs[COLOR_modelbuilder__MGroup___module_paths].val; /* _module_paths on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _module_paths"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 746); +show_backtrace(1); } -/* method modelbuilder#AStdImport#mmodule for (self: AStdImport): nullable MModule */ -val* modelbuilder__AStdImport__mmodule(val* self) { -val* var /* : nullable MModule */; -val* var1 /* : nullable MModule */; -var1 = self->attrs[COLOR_modelbuilder__AStdImport___64dmmodule].val; /* @mmodule on */ var = var1; RET_LABEL:; return var; } -/* method modelbuilder#AStdImport#mmodule for (self: Object): nullable MModule */ -val* VIRTUAL_modelbuilder__AStdImport__mmodule(val* self) { -val* var /* : nullable MModule */; -val* var1 /* : nullable MModule */; -var1 = modelbuilder__AStdImport__mmodule(self); +/* method modelbuilder#MGroup#module_paths for (self: Object): Array[ModulePath] */ +val* VIRTUAL_modelbuilder__MGroup__module_paths(val* self) { +val* var /* : Array[ModulePath] */; +val* var1 /* : Array[ModulePath] */; +val* var3 /* : Array[ModulePath] */; +{ /* Inline modelbuilder#MGroup#module_paths (self) on */ +var3 = self->attrs[COLOR_modelbuilder__MGroup___module_paths].val; /* _module_paths on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _module_paths"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 746); +show_backtrace(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} var = var1; RET_LABEL:; return var; } /* method modelbuilder#AStdImport#mmodule= for (self: AStdImport, nullable MModule) */ void modelbuilder__AStdImport__mmodule_61d(val* self, val* p0) { -self->attrs[COLOR_modelbuilder__AStdImport___64dmmodule].val = p0; /* @mmodule on */ +self->attrs[COLOR_modelbuilder__AStdImport___mmodule].val = p0; /* _mmodule on */ RET_LABEL:; } /* method modelbuilder#AStdImport#mmodule= for (self: Object, nullable MModule) */ void VIRTUAL_modelbuilder__AStdImport__mmodule_61d(val* self, val* p0) { -modelbuilder__AStdImport__mmodule_61d(self, p0); +{ /* Inline modelbuilder#AStdImport#mmodule= (self,p0) on */ +self->attrs[COLOR_modelbuilder__AStdImport___mmodule].val = p0; /* _mmodule on */ +RET_LABEL1:(void)0; +} RET_LABEL:; } /* method modelbuilder#AModule#mmodule for (self: AModule): nullable MModule */ val* modelbuilder__AModule__mmodule(val* self) { val* var /* : nullable MModule */; val* var1 /* : nullable MModule */; -var1 = self->attrs[COLOR_modelbuilder__AModule___64dmmodule].val; /* @mmodule on */ +var1 = self->attrs[COLOR_modelbuilder__AModule___mmodule].val; /* _mmodule on */ var = var1; RET_LABEL:; return var; @@ -3917,26 +7468,34 @@ return var; val* VIRTUAL_modelbuilder__AModule__mmodule(val* self) { val* var /* : nullable MModule */; val* var1 /* : nullable MModule */; -var1 = modelbuilder__AModule__mmodule(self); +val* var3 /* : nullable MModule */; +{ /* Inline modelbuilder#AModule#mmodule (self) on */ +var3 = self->attrs[COLOR_modelbuilder__AModule___mmodule].val; /* _mmodule on */ +var1 = var3; +RET_LABEL2:(void)0; +} var = var1; RET_LABEL:; return var; } /* method modelbuilder#AModule#mmodule= for (self: AModule, nullable MModule) */ void modelbuilder__AModule__mmodule_61d(val* self, val* p0) { -self->attrs[COLOR_modelbuilder__AModule___64dmmodule].val = p0; /* @mmodule on */ +self->attrs[COLOR_modelbuilder__AModule___mmodule].val = p0; /* _mmodule on */ RET_LABEL:; } /* method modelbuilder#AModule#mmodule= for (self: Object, nullable MModule) */ void VIRTUAL_modelbuilder__AModule__mmodule_61d(val* self, val* p0) { -modelbuilder__AModule__mmodule_61d(self, p0); +{ /* Inline modelbuilder#AModule#mmodule= (self,p0) on */ +self->attrs[COLOR_modelbuilder__AModule___mmodule].val = p0; /* _mmodule on */ +RET_LABEL1:(void)0; +} RET_LABEL:; } /* method modelbuilder#AModule#is_importation_done for (self: AModule): Bool */ short int modelbuilder__AModule__is_importation_done(val* self) { short int var /* : Bool */; short int var1 /* : Bool */; -var1 = self->attrs[COLOR_modelbuilder__AModule___64dis_importation_done].s; /* @is_importation_done on */ +var1 = self->attrs[COLOR_modelbuilder__AModule___is_importation_done].s; /* _is_importation_done on */ var = var1; RET_LABEL:; return var; @@ -3945,46 +7504,36 @@ return var; short int VIRTUAL_modelbuilder__AModule__is_importation_done(val* self) { short int var /* : Bool */; short int var1 /* : Bool */; -var1 = modelbuilder__AModule__is_importation_done(self); +short int var3 /* : Bool */; +{ /* Inline modelbuilder#AModule#is_importation_done (self) on */ +var3 = self->attrs[COLOR_modelbuilder__AModule___is_importation_done].s; /* _is_importation_done on */ +var1 = var3; +RET_LABEL2:(void)0; +} var = var1; RET_LABEL:; return var; } /* method modelbuilder#AModule#is_importation_done= for (self: AModule, Bool) */ void modelbuilder__AModule__is_importation_done_61d(val* self, short int p0) { -self->attrs[COLOR_modelbuilder__AModule___64dis_importation_done].s = p0; /* @is_importation_done on */ +self->attrs[COLOR_modelbuilder__AModule___is_importation_done].s = p0; /* _is_importation_done on */ RET_LABEL:; } /* method modelbuilder#AModule#is_importation_done= for (self: Object, Bool) */ void VIRTUAL_modelbuilder__AModule__is_importation_done_61d(val* self, short int p0) { -modelbuilder__AModule__is_importation_done_61d(self, p0); -RET_LABEL:; -} -/* method modelbuilder#AVisibility#mvisibility for (self: AVisibility): MVisibility */ -val* modelbuilder__AVisibility__mvisibility(val* self) { -val* var /* : MVisibility */; -const char* var_class_name; -var_class_name = self == NULL ? "null" : self->type->name; -fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "mvisibility", var_class_name); -fprintf(stderr, " (%s:%d)\n", "src/modelbuilder.nit", 637); -show_backtrace(1); -RET_LABEL:; -return var; +{ /* Inline modelbuilder#AModule#is_importation_done= (self,p0) on */ +self->attrs[COLOR_modelbuilder__AModule___is_importation_done].s = p0; /* _is_importation_done on */ +RET_LABEL1:(void)0; } -/* method modelbuilder#AVisibility#mvisibility for (self: Object): MVisibility */ -val* VIRTUAL_modelbuilder__AVisibility__mvisibility(val* self) { -val* var /* : MVisibility */; -val* var1 /* : MVisibility */; -var1 = modelbuilder__AVisibility__mvisibility(self); -var = var1; RET_LABEL:; -return var; } /* method modelbuilder#AIntrudeVisibility#mvisibility for (self: AIntrudeVisibility): MVisibility */ val* modelbuilder__AIntrudeVisibility__mvisibility(val* self) { val* var /* : MVisibility */; val* var1 /* : MVisibility */; -var1 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__intrude_visibility]))(self) /* intrude_visibility on */; +{ +var1 = model_base__Object__intrude_visibility(self); +} var = var1; goto RET_LABEL; RET_LABEL:; @@ -4003,7 +7552,9 @@ return var; val* modelbuilder__APublicVisibility__mvisibility(val* self) { val* var /* : MVisibility */; val* var1 /* : MVisibility */; -var1 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__public_visibility]))(self) /* public_visibility on */; +{ +var1 = model_base__Object__public_visibility(self); +} var = var1; goto RET_LABEL; RET_LABEL:; @@ -4022,7 +7573,9 @@ return var; val* modelbuilder__AProtectedVisibility__mvisibility(val* self) { val* var /* : MVisibility */; val* var1 /* : MVisibility */; -var1 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__protected_visibility]))(self) /* protected_visibility on */; +{ +var1 = model_base__Object__protected_visibility(self); +} var = var1; goto RET_LABEL; RET_LABEL:; @@ -4041,7 +7594,9 @@ return var; val* modelbuilder__APrivateVisibility__mvisibility(val* self) { val* var /* : MVisibility */; val* var1 /* : MVisibility */; -var1 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__private_visibility]))(self) /* private_visibility on */; +{ +var1 = model_base__Object__private_visibility(self); +} var = var1; goto RET_LABEL; RET_LABEL:; @@ -4056,3 +7611,422 @@ var = var1; RET_LABEL:; return var; } +/* method modelbuilder#ADoc#mdoc_cache for (self: ADoc): nullable MDoc */ +val* modelbuilder__ADoc__mdoc_cache(val* self) { +val* var /* : nullable MDoc */; +val* var1 /* : nullable MDoc */; +var1 = self->attrs[COLOR_modelbuilder__ADoc___mdoc_cache].val; /* _mdoc_cache on */ +var = var1; +RET_LABEL:; +return var; +} +/* method modelbuilder#ADoc#mdoc_cache for (self: Object): nullable MDoc */ +val* VIRTUAL_modelbuilder__ADoc__mdoc_cache(val* self) { +val* var /* : nullable MDoc */; +val* var1 /* : nullable MDoc */; +val* var3 /* : nullable MDoc */; +{ /* Inline modelbuilder#ADoc#mdoc_cache (self) on */ +var3 = self->attrs[COLOR_modelbuilder__ADoc___mdoc_cache].val; /* _mdoc_cache on */ +var1 = var3; +RET_LABEL2:(void)0; +} +var = var1; +RET_LABEL:; +return var; +} +/* method modelbuilder#ADoc#mdoc_cache= for (self: ADoc, nullable MDoc) */ +void modelbuilder__ADoc__mdoc_cache_61d(val* self, val* p0) { +self->attrs[COLOR_modelbuilder__ADoc___mdoc_cache].val = p0; /* _mdoc_cache on */ +RET_LABEL:; +} +/* method modelbuilder#ADoc#mdoc_cache= for (self: Object, nullable MDoc) */ +void VIRTUAL_modelbuilder__ADoc__mdoc_cache_61d(val* self, val* p0) { +{ /* Inline modelbuilder#ADoc#mdoc_cache= (self,p0) on */ +self->attrs[COLOR_modelbuilder__ADoc___mdoc_cache].val = p0; /* _mdoc_cache on */ +RET_LABEL1:(void)0; +} +RET_LABEL:; +} +/* method modelbuilder#ADoc#to_mdoc for (self: ADoc): MDoc */ +val* modelbuilder__ADoc__to_mdoc(val* self) { +val* var /* : MDoc */; +val* var1 /* : nullable MDoc */; +val* var3 /* : nullable MDoc */; +val* var_res /* var res: nullable MDoc */; +val* var4 /* : null */; +short int var5 /* : Bool */; +short int var6 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var8 /* : Bool */; +short int var9 /* : Bool */; +short int var10 /* : Bool */; +val* var11 /* : MDoc */; +val* var13 /* : ANodes[TComment] */; +val* var15 /* : ANodes[TComment] */; +val* var16 /* : Iterator[ANode] */; +short int var17 /* : Bool */; +val* var18 /* : nullable Object */; +val* var_c /* var c: TComment */; +val* var19 /* : String */; +val* var_text /* var text: String */; +long var20 /* : Int */; +long var22 /* : Int */; +long var23 /* : Int */; +short int var24 /* : Bool */; +short int var26 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +short int var27 /* : Bool */; +val* var28 /* : Array[String] */; +val* var30 /* : Array[String] */; +static val* varonce; +val* var31 /* : String */; +char* var32 /* : NativeString */; +long var33 /* : Int */; +val* var34 /* : FlatString */; +val* var35 /* : SequenceRead[Char] */; +val* var37 /* : SequenceRead[Char] */; +long var38 /* : Int */; +val* var39 /* : nullable Object */; +char var40 /* : Char */; +short int var41 /* : Bool */; +short int var42 /* : Bool */; +short int var44 /* : Bool */; +char var45 /* : Char */; +val* var46 /* : SequenceRead[Char] */; +val* var48 /* : SequenceRead[Char] */; +long var49 /* : Int */; +val* var50 /* : nullable Object */; +char var51 /* : Char */; +short int var52 /* : Bool */; +short int var53 /* : Bool */; +short int var55 /* : Bool */; +char var56 /* : Char */; +long var57 /* : Int */; +val* var58 /* : Text */; +long var59 /* : Int */; +val* var60 /* : Text */; +val* var61 /* : SequenceRead[Char] */; +val* var63 /* : SequenceRead[Char] */; +val* var64 /* : nullable Object */; +char var65 /* : Char */; +short int var66 /* : Bool */; +short int var67 /* : Bool */; +short int var69 /* : Bool */; +char var70 /* : Char */; +long var71 /* : Int */; +long var72 /* : Int */; +long var74 /* : Int */; +long var75 /* : Int */; +long var76 /* : Int */; +short int var78 /* : Bool */; +int cltype79; +int idtype80; +const char* var_class_name81; +long var82 /* : Int */; +val* var83 /* : String */; +val* var84 /* : Array[String] */; +val* var86 /* : Array[String] */; +{ +{ /* Inline modelbuilder#ADoc#mdoc_cache (self) on */ +var3 = self->attrs[COLOR_modelbuilder__ADoc___mdoc_cache].val; /* _mdoc_cache on */ +var1 = var3; +RET_LABEL2:(void)0; +} +} +var_res = var1; +var4 = NULL; +if (var_res == NULL) { +var5 = 0; /* is null */ +} else { +var5 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_res,var4) on */ +var_other = var4; +{ +var9 = ((short int (*)(val*, val*))(var_res->class->vft[COLOR_kernel__Object___61d_61d]))(var_res, var_other) /* == on */; +var8 = var9; +} +var10 = !var8; +var6 = var10; +goto RET_LABEL7; +RET_LABEL7:(void)0; +} +var5 = var6; +} +if (var5){ +var = var_res; +goto RET_LABEL; +} else { +} +var11 = NEW_mdoc__MDoc(&type_mdoc__MDoc); +{ +{ /* Inline mdoc#MDoc#init (var11) on */ +RET_LABEL12:(void)0; +} +} +var_res = var11; +{ +{ /* Inline parser_nodes#ADoc#n_comment (self) on */ +var15 = self->attrs[COLOR_parser_nodes__ADoc___n_comment].val; /* _n_comment on */ +if (unlikely(var15 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_comment"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2391); +show_backtrace(1); +} +var13 = var15; +RET_LABEL14:(void)0; +} +} +{ +var16 = parser_nodes__ANodes__iterator(var13); +} +for(;;) { +{ +var17 = ((short int (*)(val*))(var16->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var16) /* is_ok on */; +} +if(!var17) break; +{ +var18 = ((val* (*)(val*))(var16->class->vft[COLOR_abstract_collection__Iterator__item]))(var16) /* item on */; +} +var_c = var18; +{ +var19 = lexer_work__Token__text(var_c); +} +var_text = var19; +{ +{ /* Inline string#FlatText#length (var_text) on */ +var22 = var_text->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var20 = var22; +RET_LABEL21:(void)0; +} +} +var23 = 2; +{ +{ /* Inline kernel#Int#< (var20,var23) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var26 = 1; /* easy isa OTHER*/ +if (unlikely(!var26)) { +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", 325); +show_backtrace(1); +} +var27 = var20 < var23; +var24 = var27; +goto RET_LABEL25; +RET_LABEL25:(void)0; +} +} +if (var24){ +{ +{ /* Inline mdoc#MDoc#content (var_res) on */ +var30 = var_res->attrs[COLOR_mdoc__MDoc___content].val; /* _content on */ +if (unlikely(var30 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _content"); +PRINT_ERROR(" (%s:%d)\n", "src/model/mdoc.nit", 22); +show_backtrace(1); +} +var28 = var30; +RET_LABEL29:(void)0; +} +} +if (varonce) { +var31 = varonce; +} else { +var32 = ""; +var33 = 0; +var34 = string__NativeString__to_s_with_length(var32, var33); +var31 = var34; +varonce = var31; +} +{ +array__Array__add(var28, var31); /* Direct call array#Array#add on */ +} +goto CONTINUE_label; +} else { +} +{ +{ /* Inline string#FlatString#chars (var_text) on */ +var37 = var_text->attrs[COLOR_string__FlatString___chars].val; /* _chars on */ +if (unlikely(var37 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars"); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 746); +show_backtrace(1); +} +var35 = var37; +RET_LABEL36:(void)0; +} +} +var38 = 0; +{ +var39 = ((val* (*)(val*, long))(var35->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var35, var38) /* [] on */; +} +var40 = '#'; +{ +{ /* Inline kernel#Char#== (var39,var40) on */ +var44 = (var39 != NULL) && (var39->class == &class_kernel__Char); +if (var44) { +var45 = ((struct instance_kernel__Char*)var39)->value; /* autounbox from nullable Object to Char */; +var44 = (var45 == var40); +} +var42 = var44; +goto RET_LABEL43; +RET_LABEL43:(void)0; +} +var41 = var42; +} +if (unlikely(!var41)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 792); +show_backtrace(1); +} +{ +{ /* Inline string#FlatString#chars (var_text) on */ +var48 = var_text->attrs[COLOR_string__FlatString___chars].val; /* _chars on */ +if (unlikely(var48 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars"); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 746); +show_backtrace(1); +} +var46 = var48; +RET_LABEL47:(void)0; +} +} +var49 = 1; +{ +var50 = ((val* (*)(val*, long))(var46->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var46, var49) /* [] on */; +} +var51 = ' '; +{ +{ /* Inline kernel#Char#== (var50,var51) on */ +var55 = (var50 != NULL) && (var50->class == &class_kernel__Char); +if (var55) { +var56 = ((struct instance_kernel__Char*)var50)->value; /* autounbox from nullable Object to Char */; +var55 = (var56 == var51); +} +var53 = var55; +goto RET_LABEL54; +RET_LABEL54:(void)0; +} +var52 = var53; +} +if (var52){ +var57 = 2; +{ +var58 = string__Text__substring_from(var_text, var57); +} +var_text = var58; +} else { +var59 = 1; +{ +var60 = string__Text__substring_from(var_text, var59); +} +var_text = var60; +} +{ +{ /* Inline string#FlatString#chars (var_text) on */ +var63 = var_text->attrs[COLOR_string__FlatString___chars].val; /* _chars on */ +if (unlikely(var63 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars"); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 746); +show_backtrace(1); +} +var61 = var63; +RET_LABEL62:(void)0; +} +} +{ +var64 = ((val* (*)(val*))(var61->class->vft[COLOR_abstract_collection__SequenceRead__last]))(var61) /* last on */; +} +var65 = '\n'; +{ +{ /* Inline kernel#Char#== (var64,var65) on */ +var69 = (var64 != NULL) && (var64->class == &class_kernel__Char); +if (var69) { +var70 = ((struct instance_kernel__Char*)var64)->value; /* autounbox from nullable Object to Char */; +var69 = (var70 == var65); +} +var67 = var69; +goto RET_LABEL68; +RET_LABEL68:(void)0; +} +var66 = var67; +} +if (var66){ +var71 = 0; +{ +{ /* Inline string#FlatText#length (var_text) on */ +var74 = var_text->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var72 = var74; +RET_LABEL73:(void)0; +} +} +var75 = 1; +{ +{ /* Inline kernel#Int#- (var72,var75) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var78 = 1; /* easy isa OTHER*/ +if (unlikely(!var78)) { +var_class_name81 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name81); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331); +show_backtrace(1); +} +var82 = var72 - var75; +var76 = var82; +goto RET_LABEL77; +RET_LABEL77:(void)0; +} +} +{ +var83 = string__FlatString__substring(var_text, var71, var76); +} +var_text = var83; +} else { +} +{ +{ /* Inline mdoc#MDoc#content (var_res) on */ +var86 = var_res->attrs[COLOR_mdoc__MDoc___content].val; /* _content on */ +if (unlikely(var86 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _content"); +PRINT_ERROR(" (%s:%d)\n", "src/model/mdoc.nit", 22); +show_backtrace(1); +} +var84 = var86; +RET_LABEL85:(void)0; +} +} +{ +array__Array__add(var84, var_text); /* Direct call array#Array#add on */ +} +CONTINUE_label: (void)0; +{ +((void (*)(val*))(var16->class->vft[COLOR_abstract_collection__Iterator__next]))(var16) /* next on */; +} +} +BREAK_label: (void)0; +{ +{ /* Inline modelbuilder#ADoc#mdoc_cache= (self,var_res) on */ +self->attrs[COLOR_modelbuilder__ADoc___mdoc_cache].val = var_res; /* _mdoc_cache on */ +RET_LABEL87:(void)0; +} +} +var = var_res; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method modelbuilder#ADoc#to_mdoc for (self: Object): MDoc */ +val* VIRTUAL_modelbuilder__ADoc__to_mdoc(val* self) { +val* var /* : MDoc */; +val* var1 /* : MDoc */; +var1 = modelbuilder__ADoc__to_mdoc(self); +var = var1; +RET_LABEL:; +return var; +}