-/* method array#AbstractArrayRead#has_only for (self: AbstractArrayRead[nullable Object], nullable Object): Bool */
-short int array__AbstractArrayRead__has_only(val* self, val* p0) {
-short int var /* : Bool */;
-short int var1 /* : Bool */;
-int cltype;
-int idtype;
-const struct type* type_struct;
-short int is_nullable;
-const char* var_class_name;
-val* var_item /* var item: nullable Object */;
-long var2 /* : Int */;
-long var_i /* var i: Int */;
-long var3 /* : Int */;
-long var_l /* var l: Int */;
-short int var4 /* : Bool */;
-short int var6 /* : Bool */;
-int cltype7;
-int idtype8;
-const char* var_class_name9;
-short int var10 /* : Bool */;
-val* var11 /* : nullable Object */;
-short int var12 /* : Bool */;
-short int var13 /* : Bool */;
-long var14 /* : Int */;
-long var15 /* : Int */;
-long var17 /* : Int */;
-short int var18 /* : Bool */;
-/* Covariant cast for argument 0 (item) <p0:nullable Object> isa Collection#0 */
-/* <p0:nullable Object> isa Collection#0 */
-type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Collection_FT0];
-cltype = type_struct->color;
-idtype = type_struct->id;
-is_nullable = type_struct->is_nullable;
-if(p0 == NULL) {
-var1 = is_nullable;
-} else {
-if(cltype >= p0->type->table_size) {
-var1 = 0;
-} else {
-var1 = p0->type->type_table[cltype] == idtype;
-}
-}
-if (!var1) {
-var_class_name = p0 == NULL ? "null" : p0->type->name;
-fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection#0", var_class_name);
-fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/array.nit", 39);
-exit(1);
-}
-var_item = p0;
-var2 = 0;
-var_i = var2;
-var3 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on <self:AbstractArrayRead[nullable Object]>*/;
-var_l = var3;
-for(;;) {
-{ /* Inline kernel#Int#< (var_i,var_l) */
-/* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
-/* <var_l:Int> isa OTHER */
-var6 = 1; /* easy <var_l:Int> isa OTHER*/
-if (!var6) {
-var_class_name9 = type_kernel__Int.name;
-fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name9);
-fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
-exit(1);
-}
-var10 = var_i < var_l;
-var4 = var10;
-goto RET_LABEL5;
-RET_LABEL5:(void)0;
-}
-if (!var4) break;
-var11 = ((val* (*)(val*, long))(self->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(self, var_i) /* [] on <self:AbstractArrayRead[nullable Object]>*/;
-if (var11 == NULL) {
-var12 = (var_item != NULL);
-} else {
-var12 = ((short int (*)(val*, val*))(var11->class->vft[COLOR_kernel__Object___33d_61d]))(var11, var_item) /* != on <var11:nullable Object>*/;
-}
-if (var12){
-var13 = 0;
-var = var13;
-goto RET_LABEL;
-} else {
-}
-var14 = 1;
-{ /* Inline kernel#Int#+ (var_i,var14) */
-var17 = var_i + var14;
-var15 = var17;
-goto RET_LABEL16;
-RET_LABEL16:(void)0;
-}
-var_i = var15;
-CONTINUE_label: (void)0;
-}
-BREAK_label: (void)0;
-var18 = 1;
-var = var18;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method array#AbstractArrayRead#has_only for (self: Object, nullable Object): Bool */
-short int VIRTUAL_array__AbstractArrayRead__has_only(val* self, val* p0) {
-short int var /* : Bool */;
-short int var1 /* : Bool */;
-var1 = array__AbstractArrayRead__has_only(self, p0);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method array#AbstractArrayRead#count for (self: AbstractArrayRead[nullable Object], nullable Object): Int */
-long array__AbstractArrayRead__count(val* self, val* p0) {
-long var /* : Int */;
-short int var1 /* : Bool */;
-int cltype;
-int idtype;
-const struct type* type_struct;
-short int is_nullable;
-const char* var_class_name;
-val* var_item /* var item: nullable Object */;
-long var2 /* : Int */;
-long var_res /* var res: Int */;
-long var3 /* : Int */;
-long var_i /* var i: Int */;
-long var4 /* : Int */;
-long var_l /* var l: Int */;
-short int var5 /* : Bool */;
-short int var7 /* : Bool */;
-int cltype8;
-int idtype9;
-const char* var_class_name10;
-short int var11 /* : Bool */;
-val* var12 /* : nullable Object */;
-short int var13 /* : Bool */;
-long var14 /* : Int */;
-long var15 /* : Int */;
-long var17 /* : Int */;
-long var18 /* : Int */;
-long var19 /* : Int */;
-long var21 /* : Int */;
-/* Covariant cast for argument 0 (item) <p0:nullable Object> isa Collection#0 */
-/* <p0:nullable Object> isa Collection#0 */
-type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Collection_FT0];
-cltype = type_struct->color;
-idtype = type_struct->id;
-is_nullable = type_struct->is_nullable;
-if(p0 == NULL) {
-var1 = is_nullable;
-} else {
-if(cltype >= p0->type->table_size) {
-var1 = 0;
-} else {
-var1 = p0->type->type_table[cltype] == idtype;
-}
-}
-if (!var1) {
-var_class_name = p0 == NULL ? "null" : p0->type->name;
-fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection#0", var_class_name);
-fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/array.nit", 50);
-exit(1);
-}
-var_item = p0;
-var2 = 0;
-var_res = var2;
-var3 = 0;
-var_i = var3;
-var4 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on <self:AbstractArrayRead[nullable Object]>*/;
-var_l = var4;
-for(;;) {
-{ /* Inline kernel#Int#< (var_i,var_l) */
-/* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
-/* <var_l:Int> isa OTHER */
-var7 = 1; /* easy <var_l:Int> isa OTHER*/
-if (!var7) {
-var_class_name10 = type_kernel__Int.name;
-fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name10);
-fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
-exit(1);
-}
-var11 = var_i < var_l;
-var5 = var11;
-goto RET_LABEL6;
-RET_LABEL6:(void)0;
-}
-if (!var5) break;
-var12 = ((val* (*)(val*, long))(self->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(self, var_i) /* [] on <self:AbstractArrayRead[nullable Object]>*/;
-if (var12 == NULL) {
-var13 = (var_item == NULL);
-} else {
-var13 = ((short int (*)(val*, val*))(var12->class->vft[COLOR_kernel__Object___61d_61d]))(var12, var_item) /* == on <var12:nullable Object>*/;
-}
-if (var13){
-var14 = 1;
-{ /* Inline kernel#Int#+ (var_res,var14) */
-var17 = var_res + var14;
-var15 = var17;
-goto RET_LABEL16;
-RET_LABEL16:(void)0;
-}
-var_res = var15;
-} else {
-}
-var18 = 1;
-{ /* Inline kernel#Int#+ (var_i,var18) */
-var21 = var_i + var18;
-var19 = var21;
-goto RET_LABEL20;
-RET_LABEL20:(void)0;
-}
-var_i = var19;
-CONTINUE_label: (void)0;
-}
-BREAK_label: (void)0;
-var = var_res;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method array#AbstractArrayRead#count for (self: Object, nullable Object): Int */
-long VIRTUAL_array__AbstractArrayRead__count(val* self, val* p0) {
-long var /* : Int */;
-long var1 /* : Int */;
-var1 = array__AbstractArrayRead__count(self, p0);
-var = var1;
-RET_LABEL:;
-return var;
-}