+/* method rapid_type_analysis#RapidTypeAnalysis#live_targets for (self: RapidTypeAnalysis, CallSite): Set[MMethodDef] */
+val* rapid_type_analysis__RapidTypeAnalysis__live_targets(val* self, val* p0) {
+val* var /* : Set[MMethodDef] */;
+val* var_callsite /* var callsite: CallSite */;
+val* var1 /* : MType */;
+val* var3 /* : MType */;
+val* var_mtype /* var mtype: MType */;
+val* var4 /* : nullable MClassType */;
+val* var6 /* : nullable MClassType */;
+val* var_anchor /* var anchor: nullable MClassType */;
+val* var7 /* : null */;
+short int var8 /* : Bool */;
+short int var9 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var11 /* : Bool */;
+short int var12 /* : Bool */;
+short int var13 /* : Bool */;
+val* var14 /* : MModule */;
+val* var16 /* : MModule */;
+val* var17 /* : MType */;
+val* var18 /* : MType */;
+short int var19 /* : Bool */;
+int cltype;
+int idtype;
+val* var20 /* : MClass */;
+val* var22 /* : MClass */;
+val* var23 /* : MClassDef */;
+val* var24 /* : MClassType */;
+val* var26 /* : MClassType */;
+val* var27 /* : MMethod */;
+val* var29 /* : MMethod */;
+val* var_mproperty /* var mproperty: MMethod */;
+val* var30 /* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
+val* var32 /* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
+val* var33 /* : nullable Object */;
+val* var_res /* var res: nullable Set[MMethodDef] */;
+val* var34 /* : null */;
+short int var35 /* : Bool */;
+short int var36 /* : Bool */;
+short int var38 /* : Bool */;
+short int var39 /* : Bool */;
+short int var40 /* : Bool */;
+val* var41 /* : ArraySet[MMethodDef] */;
+val* var42 /* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
+val* var44 /* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
+val* var45 /* : HashSet[MClass] */;
+val* var47 /* : HashSet[MClass] */;
+val* var48 /* : Iterator[Object] */;
+short int var49 /* : Bool */;
+val* var50 /* : nullable Object */;
+val* var_c /* var c: MClass */;
+val* var51 /* : MClassDef */;
+val* var52 /* : MClassType */;
+val* var54 /* : MClassType */;
+val* var_tc /* var tc: MClassType */;
+val* var55 /* : MModule */;
+val* var57 /* : MModule */;
+val* var58 /* : null */;
+short int var59 /* : Bool */;
+short int var60 /* : Bool */;
+val* var61 /* : MModule */;
+val* var63 /* : MModule */;
+val* var64 /* : MPropDef */;
+val* var_d /* var d: MMethodDef */;
+var_callsite = p0;
+{
+{ /* Inline typing#CallSite#recv (var_callsite) on <var_callsite:CallSite> */
+var3 = var_callsite->attrs[COLOR_typing__CallSite___recv].val; /* _recv on <var_callsite:CallSite> */
+if (unlikely(var3 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _recv");
+PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 408);
+show_backtrace(1);
+}
+var1 = var3;
+RET_LABEL2:(void)0;
+}
+}
+var_mtype = var1;
+{
+{ /* Inline typing#CallSite#anchor (var_callsite) on <var_callsite:CallSite> */
+var6 = var_callsite->attrs[COLOR_typing__CallSite___anchor].val; /* _anchor on <var_callsite:CallSite> */
+var4 = var6;
+RET_LABEL5:(void)0;
+}
+}
+var_anchor = var4;
+var7 = NULL;
+if (var_anchor == NULL) {
+var8 = 0; /* is null */
+} else {
+var8 = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_anchor,var7) on <var_anchor:nullable MClassType> */
+var_other = var7;
+{
+var12 = ((short int (*)(val*, val*))(var_anchor->class->vft[COLOR_kernel__Object___61d_61d]))(var_anchor, var_other) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
+var11 = var12;
+}
+var13 = !var11;
+var9 = var13;
+goto RET_LABEL10;
+RET_LABEL10:(void)0;
+}
+var8 = var9;
+}
+if (var8){
+{
+{ /* Inline typing#CallSite#mmodule (var_callsite) on <var_callsite:CallSite> */
+var16 = var_callsite->attrs[COLOR_typing__CallSite___mmodule].val; /* _mmodule on <var_callsite:CallSite> */
+if (unlikely(var16 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
+PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 411);
+show_backtrace(1);
+}
+var14 = var16;
+RET_LABEL15:(void)0;
+}
+}
+{
+var17 = ((val* (*)(val*, val*, val*))(var_mtype->class->vft[COLOR_model__MType__anchor_to]))(var_mtype, var14, var_anchor) /* anchor_to on <var_mtype:MType>*/;
+}
+var_mtype = var17;
+} else {
+}
+{
+var18 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_model__MType__as_notnullable]))(var_mtype) /* as_notnullable on <var_mtype:MType>*/;
+}
+var_mtype = var18;
+/* <var_mtype:MType> isa MClassType */
+cltype = type_model__MClassType.color;
+idtype = type_model__MClassType.id;
+if(cltype >= var_mtype->type->table_size) {
+var19 = 0;
+} else {
+var19 = var_mtype->type->type_table[cltype] == idtype;
+}
+if (unlikely(!var19)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 92);
+show_backtrace(1);
+}
+{
+{ /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
+var22 = var_mtype->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_mtype:MType(MClassType)> */
+if (unlikely(var22 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
+PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
+show_backtrace(1);
+}
+var20 = var22;
+RET_LABEL21:(void)0;
+}
+}
+{
+var23 = model__MClass__intro(var20);
+}
+{
+{ /* Inline model#MClassDef#bound_mtype (var23) on <var23:MClassDef> */
+var26 = var23->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <var23:MClassDef> */
+if (unlikely(var26 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
+PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
+show_backtrace(1);
+}
+var24 = var26;
+RET_LABEL25:(void)0;
+}
+}
+var_mtype = var24;
+{
+{ /* Inline typing#CallSite#mproperty (var_callsite) on <var_callsite:CallSite> */
+var29 = var_callsite->attrs[COLOR_typing__CallSite___mproperty].val; /* _mproperty on <var_callsite:CallSite> */
+if (unlikely(var29 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
+PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 422);
+show_backtrace(1);
+}
+var27 = var29;
+RET_LABEL28:(void)0;
+}
+}
+var_mproperty = var27;
+{
+{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_targets_cache (self) on <self:RapidTypeAnalysis> */
+var32 = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_targets_cache].val; /* _live_targets_cache on <self:RapidTypeAnalysis> */
+if (unlikely(var32 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_targets_cache");
+PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 83);
+show_backtrace(1);
+}
+var30 = var32;
+RET_LABEL31:(void)0;
+}
+}
+{
+var33 = more_collections__HashMap2___91d_93d(var30, var_mtype, var_mproperty);
+}
+var_res = var33;
+var34 = NULL;
+if (var_res == NULL) {
+var35 = 0; /* is null */
+} else {
+var35 = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_res,var34) on <var_res:nullable Set[MMethodDef]> */
+var_other = var34;
+{
+var39 = ((short int (*)(val*, val*))(var_res->class->vft[COLOR_kernel__Object___61d_61d]))(var_res, var_other) /* == on <var_res:nullable Set[MMethodDef](Set[MMethodDef])>*/;
+var38 = var39;
+}
+var40 = !var38;
+var36 = var40;
+goto RET_LABEL37;
+RET_LABEL37:(void)0;
+}
+var35 = var36;
+}
+if (var35){
+var = var_res;
+goto RET_LABEL;
+} else {
+}
+var41 = NEW_array__ArraySet(&type_array__ArraySetmodel__MMethodDef);
+{
+array__ArraySet__init(var41); /* Direct call array#ArraySet#init on <var41:ArraySet[MMethodDef]>*/
+}
+var_res = var41;
+{
+{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_targets_cache (self) on <self:RapidTypeAnalysis> */
+var44 = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_targets_cache].val; /* _live_targets_cache on <self:RapidTypeAnalysis> */
+if (unlikely(var44 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_targets_cache");
+PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 83);
+show_backtrace(1);
+}
+var42 = var44;
+RET_LABEL43:(void)0;
+}
+}
+{
+more_collections__HashMap2___91d_93d_61d(var42, var_mtype, var_mproperty, var_res); /* Direct call more_collections#HashMap2#[]= on <var42:HashMap2[MType, MProperty, Set[MMethodDef]]>*/
+}
+{
+{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (self) on <self:RapidTypeAnalysis> */
+var47 = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_classes].val; /* _live_classes on <self:RapidTypeAnalysis> */
+if (unlikely(var47 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
+PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 64);
+show_backtrace(1);
+}
+var45 = var47;
+RET_LABEL46:(void)0;
+}
+}
+{
+var48 = hash_collection__HashSet__iterator(var45);
+}
+for(;;) {
+{
+var49 = ((short int (*)(val*))(var48->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var48) /* is_ok on <var48:Iterator[Object]>*/;
+}
+if(!var49) break;
+{
+var50 = ((val* (*)(val*))(var48->class->vft[COLOR_abstract_collection__Iterator__item]))(var48) /* item on <var48:Iterator[Object]>*/;
+}
+var_c = var50;
+{
+var51 = model__MClass__intro(var_c);
+}
+{
+{ /* Inline model#MClassDef#bound_mtype (var51) on <var51:MClassDef> */
+var54 = var51->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <var51:MClassDef> */
+if (unlikely(var54 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
+PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
+show_backtrace(1);
+}
+var52 = var54;
+RET_LABEL53:(void)0;
+}
+}
+var_tc = var52;
+{
+{ /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
+var57 = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on <self:RapidTypeAnalysis> */
+if (unlikely(var57 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
+PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 51);
+show_backtrace(1);
+}
+var55 = var57;
+RET_LABEL56:(void)0;
+}
+}
+var58 = NULL;
+{
+var59 = model__MType__is_subtype(var_tc, var55, var58, var_mtype);
+}
+var60 = !var59;
+if (var60){
+goto CONTINUE_label;
+} else {
+}
+{
+{ /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
+var63 = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on <self:RapidTypeAnalysis> */
+if (unlikely(var63 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
+PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 51);
+show_backtrace(1);
+}
+var61 = var63;
+RET_LABEL62:(void)0;
+}
+}
+{
+var64 = model__MProperty__lookup_first_definition(var_mproperty, var61, var_tc);
+}
+var_d = var64;
+{
+array__ArraySet__add(var_res, var_d); /* Direct call array#ArraySet#add on <var_res:nullable Set[MMethodDef](ArraySet[MMethodDef])>*/
+}
+CONTINUE_label: (void)0;
+{
+((void (*)(val*))(var48->class->vft[COLOR_abstract_collection__Iterator__next]))(var48) /* next on <var48:Iterator[Object]>*/;
+}
+}
+BREAK_label: (void)0;
+var = var_res;
+goto RET_LABEL;