-var93 = 1; /* is null */
-} else {
-var93 = 0; /* arg is null but recv is not */
-}
-if (var93){
-var94 = ((val* (*)(val*))(self->class->vft[COLOR_phase__Phase__toolcontext]))(self) /* toolcontext on <self:PlatformPhase>*/;
-var95 = ((val* (*)(val*))(var_nat->class->vft[COLOR_parser_nodes__ANode__location]))(var_nat) /* location on <var_nat:AAnnotation>*/;
-if (varonce96) {
-var97 = varonce96;
-} else {
-var98 = "Error: target platform \"";
-var99 = 24;
-var100 = string__NativeString__to_s_with_length(var98, var99);
-var97 = var100;
-varonce96 = var97;
-}
-if (varonce101) {
-var102 = varonce101;
-} else {
-var103 = "\" unknown";
-var104 = 9;
-var105 = string__NativeString__to_s_with_length(var103, var104);
-var102 = var105;
-varonce101 = var102;
-}
-var106 = NEW_array__Array(&type_array__Arraykernel__Object);
-{ /* var106 = array_instance Array[Object] */
-var107 = 3;
-var108 = NEW_array__NativeArray(var107, &type_array__NativeArraykernel__Object);
-((struct instance_array__NativeArray*)var108)->values[0] = (val*) var97;
-((struct instance_array__NativeArray*)var108)->values[1] = (val*) var_platform_name;
-((struct instance_array__NativeArray*)var108)->values[2] = (val*) var102;
-((void (*)(val*, val*, long))(var106->class->vft[COLOR_array__Array__with_native]))(var106, var108, var107) /* with_native on <var106:Array[Object]>*/;
-}
-var109 = ((val* (*)(val*))(var106->class->vft[COLOR_string__Object__to_s]))(var106) /* to_s on <var106:Array[Object]>*/;
-((void (*)(val*, val*, val*))(var94->class->vft[COLOR_toolcontext__ToolContext__error]))(var94, var95, var109) /* error on <var94:ToolContext>*/;
+var95 = 1; /* is null */
+} else {
+var95 = 0; /* arg is null but recv is not */
+}
+if (0) {
+var96 = ((short int (*)(val*, val*))(var_platform->class->vft[COLOR_kernel__Object___61d_61d]))(var_platform, var94) /* == on <var_platform:nullable Platform>*/;
+var95 = var96;
+}
+if (var95){
+{
+{ /* Inline phase#Phase#toolcontext (self) on <self:PlatformPhase> */
+var99 = self->attrs[COLOR_phase__Phase___toolcontext].val; /* _toolcontext on <self:PlatformPhase> */
+if (unlikely(var99 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
+PRINT_ERROR(" (%s:%d)\n", "phase.nit", 162);
+show_backtrace(1);
+}
+var97 = var99;
+RET_LABEL98:(void)0;
+}
+}
+{
+{ /* Inline parser_nodes#ANode#location (var_nat) on <var_nat:AAnnotation> */
+var102 = var_nat->attrs[COLOR_parser_nodes__ANode___location].val; /* _location on <var_nat:AAnnotation> */
+if (unlikely(var102 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 23);
+show_backtrace(1);
+}
+var100 = var102;
+RET_LABEL101:(void)0;
+}
+}
+if (varonce103) {
+var104 = varonce103;
+} else {
+var105 = "Error: target platform \"";
+var106 = 24;
+var107 = string__NativeString__to_s_with_length(var105, var106);
+var104 = var107;
+varonce103 = var104;
+}
+if (varonce108) {
+var109 = varonce108;
+} else {
+var110 = "\" unknown";
+var111 = 9;
+var112 = string__NativeString__to_s_with_length(var110, var111);
+var109 = var112;
+varonce108 = var109;
+}
+var113 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var113 = array_instance Array[Object] */
+var114 = 3;
+var115 = NEW_array__NativeArray(var114, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var115)->values[0] = (val*) var104;
+((struct instance_array__NativeArray*)var115)->values[1] = (val*) var_platform_name;
+((struct instance_array__NativeArray*)var115)->values[2] = (val*) var109;
+{
+((void (*)(val*, val*, long))(var113->class->vft[COLOR_array__Array__with_native]))(var113, var115, var114) /* with_native on <var113:Array[Object]>*/;
+}
+}
+{
+var116 = ((val* (*)(val*))(var113->class->vft[COLOR_string__Object__to_s]))(var113) /* to_s on <var113:Array[Object]>*/;
+}
+{
+toolcontext__ToolContext__error(var97, var100, var116); /* Direct call toolcontext#ToolContext#error on <var97:ToolContext>*/
+}