+if (varonce112) {
+var113 = varonce112;
+} else {
+var114 = "Pointer";
+var115 = 7;
+var116 = string__NativeString__to_s_with_length(var114, var115);
+var113 = var116;
+varonce112 = var113;
+}
+{
+rapid_type_analysis__RapidTypeAnalysis__force_alive(self, var113); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on <self:RapidTypeAnalysis>*/
+}
+for(;;) {
+{
+{ /* Inline rapid_type_analysis#RapidTypeAnalysis#todo (self) on <self:RapidTypeAnalysis> */
+var119 = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___todo].val; /* _todo on <self:RapidTypeAnalysis> */
+if (unlikely(var119 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _todo");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 172);
+show_backtrace(1);
+}
+var117 = var119;
+RET_LABEL118:(void)0;
+}
+}
+{
+var120 = list__List__is_empty(var117);
+}
+var121 = !var120;
+if (var121){
+{
+{ /* Inline rapid_type_analysis#RapidTypeAnalysis#todo (self) on <self:RapidTypeAnalysis> */
+var124 = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___todo].val; /* _todo on <self:RapidTypeAnalysis> */
+if (unlikely(var124 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _todo");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 172);
+show_backtrace(1);
+}
+var122 = var124;
+RET_LABEL123:(void)0;
+}
+}
+{
+var125 = list__List__shift(var122);
+}
+var_mmethoddef = var125;
+{
+{ /* Inline model#MPropDef#mproperty (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
+var128 = var_mmethoddef->attrs[COLOR_model__MPropDef___mproperty].val; /* _mproperty on <var_mmethoddef:MMethodDef> */
+if (unlikely(var128 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
+show_backtrace(1);
+}
+var126 = var128;
+RET_LABEL127:(void)0;
+}
+}
+var_mmeth = var126;
+var129 = NEW_rapid_type_analysis__RapidTypeVisitor(&type_rapid_type_analysis__RapidTypeVisitor);
+{
+{ /* Inline model#MPropDef#mclassdef (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
+var132 = var_mmethoddef->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_mmethoddef:MMethodDef> */
+if (unlikely(var132 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
+show_backtrace(1);
+}
+var130 = var132;
+RET_LABEL131:(void)0;
+}
+}
+{
+{ /* Inline model#MClassDef#bound_mtype (var130) on <var130:MClassDef> */
+var135 = var130->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <var130:MClassDef> */
+if (unlikely(var135 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
+show_backtrace(1);
+}
+var133 = var135;
+RET_LABEL134:(void)0;
+}
+}
+{
+rapid_type_analysis__RapidTypeVisitor__init(var129, self, var133, var_mmethoddef); /* Direct call rapid_type_analysis#RapidTypeVisitor#init on <var129:RapidTypeVisitor>*/
+}
+var_v = var129;
+{
+{ /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
+var138 = var_mmethoddef->attrs[COLOR_model__MMethodDef___msignature].val; /* _msignature on <var_mmethoddef:MMethodDef> */
+var136 = var138;
+RET_LABEL137:(void)0;
+}
+}
+if (var136 == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 216);
+show_backtrace(1);
+} else {
+{ /* Inline model#MSignature#vararg_rank (var136) on <var136:nullable MSignature> */
+if (unlikely(var136 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1510);
+show_backtrace(1);
+}
+var141 = var136->attrs[COLOR_model__MSignature___vararg_rank].l; /* _vararg_rank on <var136:nullable MSignature> */
+var139 = var141;
+RET_LABEL140:(void)0;
+}
+}
+var_vararg_rank = var139;
+var142 = 1;
+{
+{ /* Inline kernel#Int#unary - (var142) on <var142:Int> */
+var145 = -var142;
+var143 = var145;
+goto RET_LABEL144;
+RET_LABEL144:(void)0;
+}
+}
+{
+{ /* Inline kernel#Int#> (var_vararg_rank,var143) on <var_vararg_rank:Int> */
+/* Covariant cast for argument 0 (i) <var143:Int> isa OTHER */
+/* <var143:Int> isa OTHER */
+var148 = 1; /* easy <var143:Int> isa OTHER*/
+if (unlikely(!var148)) {
+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", 373);
+show_backtrace(1);
+}
+var149 = var_vararg_rank > var143;
+var146 = var149;
+goto RET_LABEL147;
+RET_LABEL147:(void)0;
+}
+}
+if (var146){
+{
+{ /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
+var152 = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder].val; /* _modelbuilder on <self:RapidTypeAnalysis> */
+if (unlikely(var152 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 46);
+show_backtrace(1);
+}
+var150 = var152;
+RET_LABEL151:(void)0;
+}
+}
+{
+{ /* Inline modelize_property#ModelBuilder#mpropdef2npropdef (var150) on <var150:ModelBuilder> */
+var155 = var150->attrs[COLOR_modelize_property__ModelBuilder___mpropdef2npropdef].val; /* _mpropdef2npropdef on <var150:ModelBuilder> */
+if (unlikely(var155 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef2npropdef");
+PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_property.nit", 39);
+show_backtrace(1);
+}
+var153 = var155;
+RET_LABEL154:(void)0;
+}
+}
+{
+var156 = hash_collection__HashMap___91d_93d(var153, var_mmethoddef);
+}
+var_node = var156;
+{
+{ /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
+var159 = var_mmethoddef->attrs[COLOR_model__MMethodDef___msignature].val; /* _msignature on <var_mmethoddef:MMethodDef> */
+var157 = var159;
+RET_LABEL158:(void)0;
+}
+}
+if (var157 == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 219);
+show_backtrace(1);
+} else {
+{ /* Inline model#MSignature#mparameters (var157) on <var157:nullable MSignature> */
+if (unlikely(var157 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465);
+show_backtrace(1);
+}
+var162 = var157->attrs[COLOR_model__MSignature___mparameters].val; /* _mparameters on <var157:nullable MSignature> */
+if (unlikely(var162 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465);
+show_backtrace(1);
+}
+var160 = var162;
+RET_LABEL161:(void)0;
+}
+}
+{
+var163 = array__Array___91d_93d(var160, var_vararg_rank);
+}
+{
+{ /* Inline model#MParameter#mtype (var163) on <var163:nullable Object(MParameter)> */
+var166 = var163->attrs[COLOR_model__MParameter___mtype].val; /* _mtype on <var163:nullable Object(MParameter)> */
+if (unlikely(var166 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565);
+show_backtrace(1);
+}
+var164 = var166;
+RET_LABEL165:(void)0;
+}
+}
+var_elttype = var164;
+{
+{ /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
+var169 = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on <self:RapidTypeAnalysis> */
+if (unlikely(var169 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
+show_backtrace(1);
+}
+var167 = var169;
+RET_LABEL168:(void)0;
+}
+}
+if (varonce170) {
+var171 = varonce170;
+} else {
+var172 = "Array";
+var173 = 5;
+var174 = string__NativeString__to_s_with_length(var172, var173);
+var171 = var174;
+varonce170 = var171;
+}
+{
+var175 = model__MModule__get_primitive_class(var167, var171);
+}
+var176 = NEW_array__Array(&type_array__Arraymodel__MType);
+var177 = 1;
+{
+array__Array__with_capacity(var176, var177); /* Direct call array#Array#with_capacity on <var176:Array[MType]>*/
+}
+var_ = var176;
+{
+array__AbstractArray__push(var_, var_elttype); /* Direct call array#AbstractArray#push on <var_:Array[MType]>*/
+}
+{
+var178 = model__MClass__get_mtype(var175, var_);
+}
+var_vararg = var178;
+{
+rapid_type_analysis__RapidTypeVisitor__add_type(var_v, var_vararg); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
+}
+{
+{ /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
+var181 = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on <self:RapidTypeAnalysis> */
+if (unlikely(var181 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
+show_backtrace(1);
+}
+var179 = var181;
+RET_LABEL180:(void)0;
+}
+}
+if (varonce182) {
+var183 = varonce182;
+} else {
+var184 = "NativeArray";
+var185 = 11;
+var186 = string__NativeString__to_s_with_length(var184, var185);
+var183 = var186;
+varonce182 = var183;
+}
+{
+var187 = model__MModule__get_primitive_class(var179, var183);
+}
+var188 = NEW_array__Array(&type_array__Arraymodel__MType);
+var189 = 1;
+{
+array__Array__with_capacity(var188, var189); /* Direct call array#Array#with_capacity on <var188:Array[MType]>*/
+}
+var_190 = var188;
+{
+array__AbstractArray__push(var_190, var_elttype); /* Direct call array#AbstractArray#push on <var_190:Array[MType]>*/
+}
+{
+var191 = model__MClass__get_mtype(var187, var_190);
+}
+var_native = var191;
+{
+rapid_type_analysis__RapidTypeVisitor__add_type(var_v, var_native); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
+}
+{
+{ /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
+var194 = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder].val; /* _modelbuilder on <self:RapidTypeAnalysis> */
+if (unlikely(var194 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 46);
+show_backtrace(1);
+}
+var192 = var194;
+RET_LABEL193:(void)0;
+}
+}
+if (varonce195) {
+var196 = varonce195;
+} else {
+var197 = "with_native";
+var198 = 11;
+var199 = string__NativeString__to_s_with_length(var197, var198);
+var196 = var199;
+varonce195 = var196;
+}
+{
+{ /* Inline model#MClassType#mclass (var_vararg) on <var_vararg:MClassType> */
+var202 = var_vararg->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_vararg:MClassType> */
+if (unlikely(var202 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
+show_backtrace(1);
+}
+var200 = var202;
+RET_LABEL201:(void)0;
+}
+}
+{
+{ /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
+var205 = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on <self:RapidTypeAnalysis> */
+if (unlikely(var205 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
+show_backtrace(1);
+}
+var203 = var205;
+RET_LABEL204:(void)0;
+}
+}
+{
+var206 = modelbuilder__ModelBuilder__force_get_primitive_method(var192, var_node, var196, var200, var203);
+}
+{
+rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send(var_v, var_vararg, var206); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send on <var_v:RapidTypeVisitor>*/
+}
+} else {
+}
+{
+{ /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
+var209 = var_mmethoddef->attrs[COLOR_model__MMethodDef___msignature].val; /* _msignature on <var_mmethoddef:MMethodDef> */
+var207 = var209;
+RET_LABEL208:(void)0;
+}
+}
+if (unlikely(var207 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 229);
+show_backtrace(1);
+}
+var_sig = var207;
+{
+{ /* Inline model#MProperty#intro (var_mmeth) on <var_mmeth:MMethod> */
+var212 = var_mmeth->attrs[COLOR_model__MProperty___intro].val; /* _intro on <var_mmeth:MMethod> */
+if (unlikely(var212 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1649);
+show_backtrace(1);
+}
+var210 = var212;
+RET_LABEL211:(void)0;
+}
+}
+{
+{ /* Inline model#MMethodDef#msignature (var210) on <var210:MPropDef(MMethodDef)> */
+var215 = var210->attrs[COLOR_model__MMethodDef___msignature].val; /* _msignature on <var210:MPropDef(MMethodDef)> */
+var213 = var215;
+RET_LABEL214:(void)0;
+}
+}
+if (unlikely(var213 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 230);
+show_backtrace(1);
+}
+var_osig = var213;
+var216 = 0;
+var_i = var216;
+{
+var217 = model__MSignature__arity(var_sig);
+}
+var_218 = var217;
+for(;;) {
+{
+{ /* Inline kernel#Int#< (var_i,var_218) on <var_i:Int> */
+/* Covariant cast for argument 0 (i) <var_218:Int> isa OTHER */
+/* <var_218:Int> isa OTHER */
+var221 = 1; /* easy <var_218:Int> isa OTHER*/
+if (unlikely(!var221)) {
+var_class_name224 = type_kernel__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name224);
+PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
+show_backtrace(1);
+}
+var225 = var_i < var_218;
+var219 = var225;
+goto RET_LABEL220;
+RET_LABEL220:(void)0;
+}
+}
+if (var219){
+{
+{ /* Inline model#MSignature#mparameters (var_osig) on <var_osig:MSignature> */
+var228 = var_osig->attrs[COLOR_model__MSignature___mparameters].val; /* _mparameters on <var_osig:MSignature> */
+if (unlikely(var228 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465);
+show_backtrace(1);
+}
+var226 = var228;
+RET_LABEL227:(void)0;
+}
+}
+{
+var229 = array__Array___91d_93d(var226, var_i);
+}
+{
+{ /* Inline model#MParameter#mtype (var229) on <var229:nullable Object(MParameter)> */
+var232 = var229->attrs[COLOR_model__MParameter___mtype].val; /* _mtype on <var229:nullable Object(MParameter)> */
+if (unlikely(var232 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565);
+show_backtrace(1);
+}
+var230 = var232;
+RET_LABEL231:(void)0;
+}
+}
+var_origtype = var230;
+{
+var233 = ((short int (*)(val*))(var_origtype->class->vft[COLOR_model__MType__need_anchor]))(var_origtype) /* need_anchor on <var_origtype:MType>*/;
+}
+var234 = !var233;
+if (var234){
+goto BREAK_label;
+} else {
+}
+{
+{ /* Inline model#MSignature#mparameters (var_sig) on <var_sig:MSignature> */
+var237 = var_sig->attrs[COLOR_model__MSignature___mparameters].val; /* _mparameters on <var_sig:MSignature> */
+if (unlikely(var237 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465);
+show_backtrace(1);
+}
+var235 = var237;
+RET_LABEL236:(void)0;
+}
+}
+{
+var238 = array__Array___91d_93d(var235, var_i);
+}
+{
+{ /* Inline model#MParameter#mtype (var238) on <var238:nullable Object(MParameter)> */
+var241 = var238->attrs[COLOR_model__MParameter___mtype].val; /* _mtype on <var238:nullable Object(MParameter)> */
+if (unlikely(var241 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565);
+show_backtrace(1);
+}
+var239 = var241;
+RET_LABEL240:(void)0;
+}
+}
+var_paramtype = var239;
+{
+rapid_type_analysis__RapidTypeAnalysis__add_cast(self, var_paramtype); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_cast on <self:RapidTypeAnalysis>*/
+}
+BREAK_label: (void)0;
+var242 = 1;
+{
+var243 = kernel__Int__successor(var_i, var242);
+}
+var_i = var243;
+} else {
+goto BREAK_label244;
+}
+}
+BREAK_label244: (void)0;
+{
+{ /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
+var247 = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder].val; /* _modelbuilder on <self:RapidTypeAnalysis> */
+if (unlikely(var247 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 46);
+show_backtrace(1);
+}
+var245 = var247;
+RET_LABEL246:(void)0;
+}
+}
+{
+{ /* Inline modelize_property#ModelBuilder#mpropdef2npropdef (var245) on <var245:ModelBuilder> */
+var250 = var245->attrs[COLOR_modelize_property__ModelBuilder___mpropdef2npropdef].val; /* _mpropdef2npropdef on <var245:ModelBuilder> */
+if (unlikely(var250 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef2npropdef");
+PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_property.nit", 39);
+show_backtrace(1);
+}
+var248 = var250;
+RET_LABEL249:(void)0;
+}
+}
+{
+var251 = abstract_collection__MapRead__has_key(var248, var_mmethoddef);
+}
+var252 = !var251;
+if (var252){
+{
+{ /* Inline model#MMethod#is_root_init (var_mmeth) on <var_mmeth:MMethod> */
+var255 = var_mmeth->attrs[COLOR_model__MMethod___is_root_init].s; /* _is_root_init on <var_mmeth:MMethod> */
+var253 = var255;
+RET_LABEL254:(void)0;
+}
+}
+if (var253){
+{
+{ /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
+var258 = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder].val; /* _modelbuilder on <self:RapidTypeAnalysis> */
+if (unlikely(var258 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 46);
+show_backtrace(1);
+}
+var256 = var258;
+RET_LABEL257:(void)0;
+}
+}
+{
+{ /* Inline modelize_class#ModelBuilder#mclassdef2nclassdef (var256) on <var256:ModelBuilder> */
+var261 = var256->attrs[COLOR_modelize_class__ModelBuilder___mclassdef2nclassdef].val; /* _mclassdef2nclassdef on <var256:ModelBuilder> */
+if (unlikely(var261 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef2nclassdef");
+PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 410);
+show_backtrace(1);
+}
+var259 = var261;
+RET_LABEL260:(void)0;
+}
+}
+{
+{ /* Inline model#MPropDef#mclassdef (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
+var264 = var_mmethoddef->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_mmethoddef:MMethodDef> */
+if (unlikely(var264 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
+show_backtrace(1);
+}
+var262 = var264;
+RET_LABEL263:(void)0;
+}
+}
+{
+var265 = hash_collection__HashMap___91d_93d(var259, var262);
+}
+var_nclassdef = var265;
+{
+{ /* Inline modelize_property#AClassdef#mfree_init (var_nclassdef) on <var_nclassdef:AClassdef> */
+var268 = var_nclassdef->attrs[COLOR_modelize_property__AClassdef___mfree_init].val; /* _mfree_init on <var_nclassdef:AClassdef> */
+var266 = var268;
+RET_LABEL267:(void)0;
+}
+}
+{
+{ /* Inline kernel#Object#== (var_mmethoddef,var266) on <var_mmethoddef:MMethodDef> */
+var_other = var266;
+{
+{ /* Inline kernel#Object#is_same_instance (var_mmethoddef,var_other) on <var_mmethoddef:MMethodDef> */
+var274 = var_mmethoddef == var_other;
+var272 = var274;
+goto RET_LABEL273;
+RET_LABEL273:(void)0;
+}
+}
+var270 = var272;
+goto RET_LABEL271;
+RET_LABEL271:(void)0;
+}
+var269 = var270;
+}
+if (unlikely(!var269)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 242);
+show_backtrace(1);
+}
+{
+{ /* Inline model#MPropDef#mproperty (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
+var278 = var_mmethoddef->attrs[COLOR_model__MPropDef___mproperty].val; /* _mproperty on <var_mmethoddef:MMethodDef> */
+if (unlikely(var278 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
+show_backtrace(1);
+}
+var276 = var278;
+RET_LABEL277:(void)0;
+}
+}
+{
+{ /* Inline model#MMethod#is_root_init (var276) on <var276:MProperty(MMethod)> */
+var281 = var276->attrs[COLOR_model__MMethod___is_root_init].s; /* _is_root_init on <var276:MProperty(MMethod)> */
+var279 = var281;
+RET_LABEL280:(void)0;
+}
+}
+var_282 = var279;
+if (var279){
+{
+var283 = model__MPropDef__is_intro(var_mmethoddef);
+}
+var284 = !var283;
+var275 = var284;
+} else {
+var275 = var_282;
+}
+if (var275){
+{
+{ /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (var_v) on <var_v:RapidTypeVisitor> */
+var287 = var_v->attrs[COLOR_rapid_type_analysis__RapidTypeVisitor___receiver].val; /* _receiver on <var_v:RapidTypeVisitor> */
+if (unlikely(var287 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 441);
+show_backtrace(1);
+}
+var285 = var287;
+RET_LABEL286:(void)0;
+}
+}
+{
+rapid_type_analysis__RapidTypeAnalysis__add_super_send(self, var285, var_mmethoddef); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_super_send on <self:RapidTypeAnalysis>*/
+}
+} else {
+}
+} else {
+{
+{ /* Inline model#MMethodDef#constant_value (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
+var290 = var_mmethoddef->attrs[COLOR_model__MMethodDef___constant_value].val; /* _constant_value on <var_mmethoddef:MMethodDef> */
+var288 = var290;
+RET_LABEL289:(void)0;
+}
+}
+var291 = NULL;
+if (var288 == NULL) {
+var292 = 0; /* is null */
+} else {
+var292 = 1; /* arg is null and recv is not */
+}
+if (0) {
+var293 = ((short int (*)(val*, val*))(var288->class->vft[COLOR_kernel__Object___33d_61d]))(var288, var291) /* != on <var288:nullable Object>*/;
+var292 = var293;
+}
+if (var292){
+{
+{ /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
+var296 = var_mmethoddef->attrs[COLOR_model__MMethodDef___msignature].val; /* _msignature on <var_mmethoddef:MMethodDef> */
+var294 = var296;
+RET_LABEL295:(void)0;
+}
+}
+if (var294 == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 249);
+show_backtrace(1);
+} else {
+{ /* Inline model#MSignature#return_mtype (var294) on <var294:nullable MSignature> */
+if (unlikely(var294 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1468);
+show_backtrace(1);
+}
+var299 = var294->attrs[COLOR_model__MSignature___return_mtype].val; /* _return_mtype on <var294:nullable MSignature> */
+var297 = var299;
+RET_LABEL298:(void)0;
+}
+}
+/* <var297:nullable MType> isa MClassType */
+cltype301 = type_model__MClassType.color;
+idtype302 = type_model__MClassType.id;
+if(var297 == NULL) {
+var300 = 0;
+} else {
+if(cltype301 >= var297->type->table_size) {
+var300 = 0;
+} else {
+var300 = var297->type->type_table[cltype301] == idtype302;
+}
+}
+if (unlikely(!var300)) {
+var_class_name303 = var297 == NULL ? "null" : var297->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name303);
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 249);
+show_backtrace(1);
+}
+{
+rapid_type_analysis__RapidTypeVisitor__add_type(var_v, var297); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
+}
+} else {
+PRINT_ERROR("Runtime error: %s", "Aborted");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 251);
+show_backtrace(1);
+}
+}
+goto BREAK_label304;
+} else {
+}
+{
+{ /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
+var307 = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder].val; /* _modelbuilder on <self:RapidTypeAnalysis> */
+if (unlikely(var307 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 46);
+show_backtrace(1);
+}
+var305 = var307;
+RET_LABEL306:(void)0;
+}
+}
+{
+{ /* Inline modelize_property#ModelBuilder#mpropdef2npropdef (var305) on <var305:ModelBuilder> */
+var310 = var305->attrs[COLOR_modelize_property__ModelBuilder___mpropdef2npropdef].val; /* _mpropdef2npropdef on <var305:ModelBuilder> */
+if (unlikely(var310 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef2npropdef");
+PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_property.nit", 39);
+show_backtrace(1);
+}
+var308 = var310;
+RET_LABEL309:(void)0;
+}
+}
+{
+var311 = hash_collection__HashMap___91d_93d(var308, var_mmethoddef);
+}
+var_npropdef = var311;
+/* <var_npropdef:APropdef> isa AMethPropdef */
+cltype313 = type_parser_nodes__AMethPropdef.color;
+idtype314 = type_parser_nodes__AMethPropdef.id;
+if(cltype313 >= var_npropdef->type->table_size) {
+var312 = 0;
+} else {
+var312 = var_npropdef->type->type_table[cltype313] == idtype314;
+}
+if (var312){
+{
+{ /* Inline auto_super_init#AMethPropdef#auto_super_inits (var_npropdef) on <var_npropdef:APropdef(AMethPropdef)> */
+var317 = var_npropdef->attrs[COLOR_auto_super_init__AMethPropdef___auto_super_inits].val; /* _auto_super_inits on <var_npropdef:APropdef(AMethPropdef)> */
+var315 = var317;
+RET_LABEL316:(void)0;
+}
+}
+var_auto_super_inits = var315;
+var318 = NULL;
+if (var_auto_super_inits == NULL) {
+var319 = 0; /* is null */
+} else {
+var319 = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_auto_super_inits,var318) on <var_auto_super_inits:nullable Array[CallSite]> */
+var_other26 = var318;
+{
+var323 = ((short int (*)(val*, val*))(var_auto_super_inits->class->vft[COLOR_kernel__Object___61d_61d]))(var_auto_super_inits, var_other26) /* == on <var_auto_super_inits:nullable Array[CallSite](Array[CallSite])>*/;
+var322 = var323;
+}
+var324 = !var322;
+var320 = var324;
+goto RET_LABEL321;
+RET_LABEL321:(void)0;
+}
+var319 = var320;
+}
+if (var319){
+var_325 = var_auto_super_inits;
+{
+var326 = array__AbstractArrayRead__iterator(var_325);
+}
+var_327 = var326;
+for(;;) {
+{
+var328 = array__ArrayIterator__is_ok(var_327);
+}
+if (var328){
+{
+var329 = array__ArrayIterator__item(var_327);
+}
+var_auto_super_init = var329;
+{
+rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v, var_auto_super_init); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
+}
+{
+array__ArrayIterator__next(var_327); /* Direct call array#ArrayIterator#next on <var_327:ArrayIterator[CallSite]>*/
+}
+} else {
+goto BREAK_label330;
+}
+}
+BREAK_label330: (void)0;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_327) on <var_327:ArrayIterator[CallSite]> */
+RET_LABEL331:(void)0;
+}
+}
+} else {
+}
+{
+{ /* Inline auto_super_init#AMethPropdef#auto_super_call (var_npropdef) on <var_npropdef:APropdef(AMethPropdef)> */
+var334 = var_npropdef->attrs[COLOR_auto_super_init__AMethPropdef___auto_super_call].s; /* _auto_super_call on <var_npropdef:APropdef(AMethPropdef)> */
+var332 = var334;
+RET_LABEL333:(void)0;
+}
+}
+if (var332){
+{
+{ /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (var_v) on <var_v:RapidTypeVisitor> */
+var337 = var_v->attrs[COLOR_rapid_type_analysis__RapidTypeVisitor___receiver].val; /* _receiver on <var_v:RapidTypeVisitor> */
+if (unlikely(var337 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 441);
+show_backtrace(1);
+}
+var335 = var337;
+RET_LABEL336:(void)0;
+}
+}
+{
+rapid_type_analysis__RapidTypeAnalysis__add_super_send(self, var335, var_mmethoddef); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_super_send on <self:RapidTypeAnalysis>*/
+}
+} else {
+}
+} else {
+}
+{
+{ /* Inline model#MMethodDef#is_intern (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
+var341 = var_mmethoddef->attrs[COLOR_model__MMethodDef___is_intern].s; /* _is_intern on <var_mmethoddef:MMethodDef> */
+var339 = var341;
+RET_LABEL340:(void)0;
+}
+}
+var_342 = var339;
+if (var339){
+var338 = var_342;
+} else {
+{
+{ /* Inline model#MMethodDef#is_extern (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
+var345 = var_mmethoddef->attrs[COLOR_model__MMethodDef___is_extern].s; /* _is_extern on <var_mmethoddef:MMethodDef> */
+var343 = var345;
+RET_LABEL344:(void)0;
+}
+}
+var338 = var343;
+}
+if (var338){
+{
+{ /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
+var348 = var_mmethoddef->attrs[COLOR_model__MMethodDef___msignature].val; /* _msignature on <var_mmethoddef:MMethodDef> */
+var346 = var348;
+RET_LABEL347:(void)0;
+}
+}
+if (var346 == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 272);
+show_backtrace(1);
+} else {
+{ /* Inline model#MSignature#return_mtype (var346) on <var346:nullable MSignature> */
+if (unlikely(var346 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1468);
+show_backtrace(1);
+}
+var351 = var346->attrs[COLOR_model__MSignature___return_mtype].val; /* _return_mtype on <var346:nullable MSignature> */
+var349 = var351;
+RET_LABEL350:(void)0;
+}
+}
+var_ret = var349;
+var355 = NULL;
+if (var_ret == NULL) {
+var356 = 0; /* is null */
+} else {
+var356 = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_ret,var355) on <var_ret:nullable MType> */
+var_other26 = var355;
+{
+var360 = ((short int (*)(val*, val*))(var_ret->class->vft[COLOR_kernel__Object___61d_61d]))(var_ret, var_other26) /* == on <var_ret:nullable MType(MType)>*/;
+var359 = var360;
+}
+var361 = !var359;
+var357 = var361;
+goto RET_LABEL358;
+RET_LABEL358:(void)0;
+}
+var356 = var357;
+}
+var_362 = var356;
+if (var356){
+/* <var_ret:nullable MType(MType)> isa MClassType */
+cltype364 = type_model__MClassType.color;
+idtype365 = type_model__MClassType.id;
+if(cltype364 >= var_ret->type->table_size) {
+var363 = 0;
+} else {
+var363 = var_ret->type->type_table[cltype364] == idtype365;
+}
+var354 = var363;
+} else {
+var354 = var_362;
+}
+var_366 = var354;
+if (var354){
+{
+{ /* Inline model#MClassType#mclass (var_ret) on <var_ret:nullable MType(MClassType)> */
+var369 = var_ret->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_ret:nullable MType(MClassType)> */
+if (unlikely(var369 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
+show_backtrace(1);
+}
+var367 = var369;
+RET_LABEL368:(void)0;
+}
+}
+{
+{ /* Inline model#MClass#kind (var367) on <var367:MClass> */
+var372 = var367->attrs[COLOR_model__MClass___kind].val; /* _kind on <var367:MClass> */
+if (unlikely(var372 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
+show_backtrace(1);
+}
+var370 = var372;
+RET_LABEL371:(void)0;
+}
+}
+{
+var373 = model__Object__abstract_kind(self);
+}
+{
+{ /* Inline kernel#Object#!= (var370,var373) on <var370:MClassKind> */
+var_other26 = var373;
+{
+var378 = ((short int (*)(val*, val*))(var370->class->vft[COLOR_kernel__Object___61d_61d]))(var370, var_other26) /* == on <var370:MClassKind>*/;
+var377 = var378;
+}
+var379 = !var377;
+var375 = var379;
+goto RET_LABEL376;
+RET_LABEL376:(void)0;
+}
+var374 = var375;
+}
+var353 = var374;
+} else {
+var353 = var_366;
+}
+var_380 = var353;
+if (var353){
+{
+{ /* Inline model#MClassType#mclass (var_ret) on <var_ret:nullable MType(MClassType)> */
+var383 = var_ret->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_ret:nullable MType(MClassType)> */
+if (unlikely(var383 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
+show_backtrace(1);
+}
+var381 = var383;
+RET_LABEL382:(void)0;
+}
+}
+{
+{ /* Inline model#MClass#kind (var381) on <var381:MClass> */
+var386 = var381->attrs[COLOR_model__MClass___kind].val; /* _kind on <var381:MClass> */
+if (unlikely(var386 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
+show_backtrace(1);
+}
+var384 = var386;
+RET_LABEL385:(void)0;
+}
+}
+{
+var387 = model__Object__interface_kind(self);
+}
+{
+{ /* Inline kernel#Object#!= (var384,var387) on <var384:MClassKind> */
+var_other26 = var387;
+{
+var392 = ((short int (*)(val*, val*))(var384->class->vft[COLOR_kernel__Object___61d_61d]))(var384, var_other26) /* == on <var384:MClassKind>*/;
+var391 = var392;
+}
+var393 = !var391;
+var389 = var393;
+goto RET_LABEL390;
+RET_LABEL390:(void)0;
+}
+var388 = var389;
+}
+var352 = var388;
+} else {
+var352 = var_380;
+}
+if (var352){
+{
+rapid_type_analysis__RapidTypeVisitor__add_type(var_v, var_ret); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
+}
+} else {
+}
+} else {
+}
+{
+parser_nodes__Visitor__enter_visit(var_v, var_npropdef); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:RapidTypeVisitor>*/
+}
+} else {
+goto BREAK_label394;
+}
+BREAK_label304: (void)0;
+}
+BREAK_label394: (void)0;
+var395 = NEW_list__List(&type_list__Listmodel__MClassType);
+{
+((void (*)(val*))(var395->class->vft[COLOR_kernel__Object__init]))(var395) /* init on <var395:List[MClassType]>*/;
+}
+var_todo_types = var395;
+{
+{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
+var398 = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types].val; /* _live_types on <self:RapidTypeAnalysis> */
+if (unlikely(var398 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 53);
+show_backtrace(1);
+}
+var396 = var398;
+RET_LABEL397:(void)0;
+}
+}
+{
+abstract_collection__SimpleCollection__add_all(var_todo_types, var396); /* Direct call abstract_collection#SimpleCollection#add_all on <var_todo_types:List[MClassType]>*/
+}
+for(;;) {
+{
+var399 = list__List__is_empty(var_todo_types);
+}
+var400 = !var399;
+if (var400){
+{
+var401 = list__List__shift(var_todo_types);
+}
+var_t = var401;
+{
+{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_types (self) on <self:RapidTypeAnalysis> */
+var404 = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_open_types].val; /* _live_open_types on <self:RapidTypeAnalysis> */
+if (unlikely(var404 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_types");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 58);
+show_backtrace(1);
+}
+var402 = var404;
+RET_LABEL403:(void)0;
+}
+}
+var_405 = var402;
+{
+var406 = hash_collection__HashSet__iterator(var_405);
+}
+var_407 = var406;
+for(;;) {
+{
+var408 = ((short int (*)(val*))(var_407->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_407) /* is_ok on <var_407:Iterator[MClassType]>*/;
+}
+if (var408){
+{
+var409 = ((val* (*)(val*))(var_407->class->vft[COLOR_abstract_collection__Iterator__item]))(var_407) /* item on <var_407:Iterator[MClassType]>*/;
+}
+var_ot = var409;
+{
+{ /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
+var412 = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on <self:RapidTypeAnalysis> */
+if (unlikely(var412 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
+show_backtrace(1);
+}
+var410 = var412;
+RET_LABEL411:(void)0;
+}
+}
+{
+var413 = ((short int (*)(val*, val*, val*, val*))(var_ot->class->vft[COLOR_model__MType__can_resolve_for]))(var_ot, var_t, var_t, var410) /* can_resolve_for on <var_ot:MClassType>*/;
+}
+var414 = !var413;
+if (var414){
+goto BREAK_label415;
+} else {
+}
+{
+{ /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
+var418 = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on <self:RapidTypeAnalysis> */
+if (unlikely(var418 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
+show_backtrace(1);
+}
+var416 = var418;
+RET_LABEL417:(void)0;
+}
+}
+{
+var419 = model__MClassType__anchor_to(var_ot, var416, var_t);
+}
+var_rt = var419;
+{
+{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
+var422 = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types].val; /* _live_types on <self:RapidTypeAnalysis> */
+if (unlikely(var422 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 53);
+show_backtrace(1);
+}
+var420 = var422;
+RET_LABEL421:(void)0;
+}
+}
+{
+var423 = hash_collection__HashSet__has(var420, var_rt);
+}
+if (var423){
+goto BREAK_label415;
+} else {
+}
+{
+{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
+var426 = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types].val; /* _live_types on <self:RapidTypeAnalysis> */
+if (unlikely(var426 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 53);
+show_backtrace(1);
+}
+var424 = var426;
+RET_LABEL425:(void)0;
+}
+}
+{
+hash_collection__HashSet__add(var424, var_rt); /* Direct call hash_collection#HashSet#add on <var424:HashSet[MClassType]>*/
+}
+{
+abstract_collection__Sequence__add(var_todo_types, var_rt); /* Direct call abstract_collection#Sequence#add on <var_todo_types:List[MClassType]>*/
+}
+{
+rapid_type_analysis__RapidTypeAnalysis__check_depth(self, var_rt); /* Direct call rapid_type_analysis#RapidTypeAnalysis#check_depth on <self:RapidTypeAnalysis>*/
+}
+BREAK_label415: (void)0;
+{
+((void (*)(val*))(var_407->class->vft[COLOR_abstract_collection__Iterator__next]))(var_407) /* next on <var_407:Iterator[MClassType]>*/;
+}
+} else {
+goto BREAK_label427;
+}
+}
+BREAK_label427: (void)0;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_407) on <var_407:Iterator[MClassType]> */
+RET_LABEL428:(void)0;
+}
+}
+} else {
+goto BREAK_label429;
+}
+}
+BREAK_label429: (void)0;
+{
+{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_cast_types (self) on <self:RapidTypeAnalysis> */
+var432 = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_open_cast_types].val; /* _live_open_cast_types on <self:RapidTypeAnalysis> */
+if (unlikely(var432 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_cast_types");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 68);
+show_backtrace(1);
+}
+var430 = var432;
+RET_LABEL431:(void)0;
+}
+}
+var_433 = var430;
+{
+var434 = hash_collection__HashSet__iterator(var_433);
+}
+var_435 = var434;
+for(;;) {
+{
+var436 = ((short int (*)(val*))(var_435->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_435) /* is_ok on <var_435:Iterator[MType]>*/;
+}
+if (var436){
+{
+var437 = ((val* (*)(val*))(var_435->class->vft[COLOR_abstract_collection__Iterator__item]))(var_435) /* item on <var_435:Iterator[MType]>*/;
+}
+var_ot438 = var437;
+{
+{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
+var441 = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types].val; /* _live_types on <self:RapidTypeAnalysis> */
+if (unlikely(var441 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 53);
+show_backtrace(1);
+}
+var439 = var441;
+RET_LABEL440:(void)0;
+}
+}
+var_442 = var439;
+{
+var443 = hash_collection__HashSet__iterator(var_442);
+}
+var_444 = var443;
+for(;;) {
+{
+var445 = ((short int (*)(val*))(var_444->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_444) /* is_ok on <var_444:Iterator[MClassType]>*/;
+}
+if (var445){
+{
+var446 = ((val* (*)(val*))(var_444->class->vft[COLOR_abstract_collection__Iterator__item]))(var_444) /* item on <var_444:Iterator[MClassType]>*/;
+}
+var_t447 = var446;
+{
+{ /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
+var450 = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on <self:RapidTypeAnalysis> */
+if (unlikely(var450 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
+show_backtrace(1);
+}
+var448 = var450;
+RET_LABEL449:(void)0;
+}
+}
+{
+var451 = ((short int (*)(val*, val*, val*, val*))(var_ot438->class->vft[COLOR_model__MType__can_resolve_for]))(var_ot438, var_t447, var_t447, var448) /* can_resolve_for on <var_ot438:MType>*/;
+}
+var452 = !var451;
+if (var452){
+goto BREAK_label453;
+} else {
+}
+{
+{ /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
+var456 = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on <self:RapidTypeAnalysis> */
+if (unlikely(var456 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
+show_backtrace(1);
+}
+var454 = var456;
+RET_LABEL455:(void)0;
+}
+}
+{
+var457 = ((val* (*)(val*, val*, val*))(var_ot438->class->vft[COLOR_model__MType__anchor_to]))(var_ot438, var454, var_t447) /* anchor_to on <var_ot438:MType>*/;
+}
+var_rt458 = var457;
+{
+{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_cast_types (self) on <self:RapidTypeAnalysis> */
+var461 = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_cast_types].val; /* _live_cast_types on <self:RapidTypeAnalysis> */
+if (unlikely(var461 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types");
+PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 65);
+show_backtrace(1);
+}
+var459 = var461;
+RET_LABEL460:(void)0;
+}
+}
+{
+hash_collection__HashSet__add(var459, var_rt458); /* Direct call hash_collection#HashSet#add on <var459:HashSet[MType]>*/
+}
+BREAK_label453: (void)0;
+{
+((void (*)(val*))(var_444->class->vft[COLOR_abstract_collection__Iterator__next]))(var_444) /* next on <var_444:Iterator[MClassType]>*/;
+}
+} else {
+goto BREAK_label462;
+}
+}
+BREAK_label462: (void)0;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_444) on <var_444:Iterator[MClassType]> */
+RET_LABEL463:(void)0;
+}
+}
+{
+((void (*)(val*))(var_435->class->vft[COLOR_abstract_collection__Iterator__next]))(var_435) /* next on <var_435:Iterator[MType]>*/;
+}
+} else {
+goto BREAK_label464;
+}
+}
+BREAK_label464: (void)0;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_435) on <var_435:Iterator[MType]> */
+RET_LABEL465:(void)0;