-val_t static_type___MMTypeClass___to_s(val_t self) {
- struct trace_t trace = {NULL, NULL, 428, LOCATE_static_type___MMTypeClass___to_s};
- val_t variable[3];
- struct WBT_ **closurevariable = NULL;
- trace.prev = tracehead; tracehead = &trace;
- trace.file = LOCATE_static_type;
- /* Register variable[0]: Local variable */
- variable[0] = self;
- /* Register variable[1]: Method return value and escape marker */
- /* Register variable[2]: Result */
- variable[2] = ATTR_static_type___MMTypeClass____local_class(variable[0]) /*MMTypeClass::_local_class*/;
- /* Register variable[2]: Result */
- variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*MMLocalClass::to_s*/;
- variable[1] = variable[2];
- goto return_label55;
- return_label55: while(false);
- tracehead = trace.prev;
- return variable[1];
-}
-val_t static_type___MMTypeClass___module(val_t self) {
- struct trace_t trace = {NULL, NULL, 425, LOCATE_static_type___MMTypeClass___module};
- val_t variable[3];
- struct WBT_ **closurevariable = NULL;
- trace.prev = tracehead; tracehead = &trace;
- trace.file = LOCATE_static_type;
- /* Register variable[0]: Local variable */
- variable[0] = self;
- /* Register variable[1]: Method return value and escape marker */
- /* Register variable[2]: Result */
- variable[2] = ATTR_static_type___MMTypeClass____local_class(variable[0]) /*MMTypeClass::_local_class*/;
- /* Register variable[2]: Result */
- variable[2] = CALL_abstractmetamodel___MMLocalClass___module(variable[2])(variable[2]) /*MMLocalClass::module*/;
- variable[1] = variable[2];
- goto return_label56;
- return_label56: while(false);
- tracehead = trace.prev;
- return variable[1];
-}
-val_t static_type___MMTypeClass___local_class(val_t self) {
- struct trace_t trace = {NULL, NULL, 424, LOCATE_static_type___MMTypeClass___local_class};
- val_t *variable = NULL;
- struct WBT_ **closurevariable = NULL;
- trace.prev = tracehead; tracehead = &trace;
- trace.file = LOCATE_static_type;
- tracehead = trace.prev;
- return ATTR_static_type___MMTypeClass____local_class( self) /*MMTypeClass::_local_class*/;
-}
-val_t static_type___MMTypeClass_____l(val_t self, val_t param0) {
- struct trace_t trace = {NULL, NULL, 426, LOCATE_static_type___MMTypeClass_____l};
- val_t variable[4];
- struct WBT_ **closurevariable = NULL;
- trace.prev = tracehead; tracehead = &trace;
- trace.file = LOCATE_static_type;
- /* Register variable[0]: Local variable */
- variable[0] = self;
- /* Register variable[1]: Local variable */
- variable[1] = param0;
- /* Register variable[2]: Method return value and escape marker */
- /* Register variable[3]: Result */
- variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*t*/ == NIT_NULL /*null*/) || (( variable[1] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*t*/)( variable[1] /*t*/, NIT_NULL /*null*/) /*Object::==*/)))))));
- /* Ensure var variable[3]: Left 'and' operand*/
- if (UNTAG_Bool(variable[3])) { /* and */
- /* Register variable[3]: Result */
- variable[3] = CALL_static_type___MMType___is_supertype( variable[1] /*t*/)( variable[1] /*t*/, variable[0]) /*MMType::is_supertype*/;
- }
- /* Register variable[3]: Result */
- variable[2] = variable[3];
- goto return_label57;
- return_label57: while(false);
- tracehead = trace.prev;
- return variable[2];
-}
-val_t static_type___MMTypeClass___upcast_for(val_t self, val_t param0) {
- struct trace_t trace = {NULL, NULL, 433, LOCATE_static_type___MMTypeClass___upcast_for};
- val_t variable[5];
- struct WBT_ **closurevariable = NULL;
- trace.prev = tracehead; tracehead = &trace;
- trace.file = LOCATE_static_type;
- /* Register variable[0]: Local variable */
- variable[0] = self;
- /* Register variable[1]: Local variable */
- variable[1] = param0;
- /* Register variable[2]: Method return value and escape marker */
- /* Register variable[3]: Result */
- variable[3] = ATTR_static_type___MMTypeClass____local_class(variable[0]) /*MMTypeClass::_local_class*/;
- /* Register variable[3]: Result */
- variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
- if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMTypeClass___upcast_for, LOCATE_static_type, 435); nit_exit(1);}
- /* Register variable[3]: Result */
- variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*c*/ == NIT_NULL /*null*/) || (( variable[1] /*c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*c*/)( variable[1] /*c*/, NIT_NULL /*null*/) /*Object::==*/)))))));
- if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMTypeClass___upcast_for, LOCATE_static_type, 436); nit_exit(1);}
- /* Register variable[3]: Local variable */
- variable[3] = variable[0];
- /* Register variable[4]: Result */
- variable[4] = ATTR_static_type___MMTypeClass____local_class(variable[0]) /*MMTypeClass::_local_class*/;
- /* Register variable[4]: Result */
- variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] == variable[1] /*c*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*c*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*c*/) /*Object::==*/)))))));
- if (UNTAG_Bool(variable[4])) { /*if*/
- /* Register variable[4]: Result */
- variable[4] = ATTR_static_type___MMTypeClass____local_class(variable[0]) /*MMTypeClass::_local_class*/;
- /* Register variable[4]: Result */
- variable[4] = CALL_static_type___MMLocalClass___ancestor(variable[4])(variable[4], variable[1] /*c*/) /*MMLocalClass::ancestor*/;
- variable[3] = variable[4] /*t=*/;
- }
- /* Register variable[4]: Result */
- variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ == NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*t*/)( variable[3] /*t*/, NIT_NULL /*null*/) /*Object::==*/)))))));
- if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMTypeClass___upcast_for, LOCATE_static_type, 442); nit_exit(1);}
- variable[2] = variable[3] /*t*/;
- goto return_label58;
- return_label58: while(false);
- tracehead = trace.prev;
- return variable[2];
-}
-void static_type___MMTypeClass___init(val_t self, val_t param0, int* init_table) {
- struct trace_t trace = {NULL, NULL, 446, LOCATE_static_type___MMTypeClass___init};
- val_t variable[3];
- struct WBT_ **closurevariable = NULL;
- trace.prev = tracehead; tracehead = &trace;
- trace.file = LOCATE_static_type;
- /* Register variable[0]: Local variable */
- variable[0] = self;
- /* Register variable[1]: Local variable */
- variable[1] = param0;
- if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMTypeClass].i]) return;
- /* Register variable[2]: Method return value and escape marker */
- ATTR_static_type___MMTypeClass____local_class(variable[0]) /*MMTypeClass::_local_class*/ = variable[1] /*c*/;
- return_label59: while(false);
- init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMTypeClass].i] = 1;
- tracehead = trace.prev;
+val_t static_type___MMNullableType___mmmodule(val_t p0){
+ struct {struct stack_frame_t me;} fra;
+ val_t REGB0;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_static_type;
+ fra.me.line = 390;
+ fra.me.meth = LOCATE_static_type___MMNullableType___mmmodule;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ /* ./metamodel//static_type.nit:390 */
+ REGB0 = TAG_Bool(ATTR_static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_static_type, 390);
+ }
+ fra.me.REG[0] = ATTR_static_type___MMNullableType____base_type(fra.me.REG[0]);
+ fra.me.REG[0] = CALL_static_type___MMType___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
+ goto label1;
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return fra.me.REG[0];
+}
+val_t static_type___MMNullableType___local_class(val_t p0){
+ struct {struct stack_frame_t me;} fra;
+ val_t REGB0;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_static_type;
+ fra.me.line = 392;
+ fra.me.meth = LOCATE_static_type___MMNullableType___local_class;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ /* ./metamodel//static_type.nit:392 */
+ REGB0 = TAG_Bool(ATTR_static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_static_type, 392);
+ }
+ fra.me.REG[0] = ATTR_static_type___MMNullableType____base_type(fra.me.REG[0]);
+ fra.me.REG[0] = CALL_static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
+ goto label1;
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return fra.me.REG[0];
+}
+val_t static_type___MMNullableType_____l(val_t p0, val_t p1){
+ struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+ val_t REGB0;
+ val_t REGB1;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_static_type;
+ fra.me.line = 394;
+ fra.me.meth = LOCATE_static_type___MMNullableType_____l;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 2;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* ./metamodel//static_type.nit:396 */
+ REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_MMNullableType, ID_MMNullableType)) /*cast MMNullableType*/;
+ if (UNTAG_Bool(REGB0)) {
+ REGB0 = TAG_Bool(ATTR_static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_static_type, 396);
+ }
+ fra.me.REG[0] = ATTR_static_type___MMNullableType____base_type(fra.me.REG[0]);
+ fra.me.REG[1] = CALL_static_type___MMType___as_notnull(fra.me.REG[1])(fra.me.REG[1]);
+ REGB0 = CALL_static_type___MMType_____l(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+ } else {
+ REGB1 = TAG_Bool(false);
+ REGB0 = REGB1;
+ }
+ goto label1;
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return REGB0;
+}
+val_t static_type___MMNullableType___to_s(val_t p0){
+ struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+ val_t REGB0;
+ val_t tmp;
+ static val_t once_value_1; /* Once value */
+ static val_t once_value_2; /* Once value */
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_static_type;
+ fra.me.line = 399;
+ fra.me.meth = LOCATE_static_type___MMNullableType___to_s;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 3;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ /* ./metamodel//static_type.nit:401 */
+ REGB0 = TAG_Int(3);
+ fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
+ if (!once_value_1) {
+ fra.me.REG[2] = BOX_NativeString("nullable ");
+ REGB0 = TAG_Int(9);
+ fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
+ once_value_1 = fra.me.REG[2];
+ register_static_object(&once_value_1);
+ } else fra.me.REG[2] = once_value_1;
+ fra.me.REG[2] = fra.me.REG[2];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+ REGB0 = TAG_Bool(ATTR_static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_static_type, 401);
+ }
+ fra.me.REG[0] = ATTR_static_type___MMNullableType____base_type(fra.me.REG[0]);
+ fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+ if (!once_value_2) {
+ fra.me.REG[0] = BOX_NativeString("");
+ REGB0 = TAG_Int(0);
+ fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
+ once_value_2 = fra.me.REG[0];
+ register_static_object(&once_value_2);
+ } else fra.me.REG[0] = once_value_2;
+ fra.me.REG[0] = fra.me.REG[0];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+ fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
+ goto label3;
+ label3: while(0);
+ stack_frame_head = fra.me.prev;
+ return fra.me.REG[1];
+}
+val_t static_type___MMNullableType___is_supertype(val_t p0, val_t p1){
+ struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+ val_t REGB0;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_static_type;
+ fra.me.line = 404;
+ fra.me.meth = LOCATE_static_type___MMNullableType___is_supertype;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 2;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* ./metamodel//static_type.nit:406 */
+ REGB0 = TAG_Bool(ATTR_static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_static_type, 406);
+ }
+ fra.me.REG[0] = ATTR_static_type___MMNullableType____base_type(fra.me.REG[0]);
+ REGB0 = CALL_static_type___MMType___is_supertype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+ goto label1;
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return REGB0;
+}
+val_t static_type___MMNullableType___for_module(val_t p0, val_t p1){
+ struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+ val_t REGB0;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_static_type;
+ fra.me.line = 409;
+ fra.me.meth = LOCATE_static_type___MMNullableType___for_module;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 2;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* ./metamodel//static_type.nit:411 */
+ REGB0 = TAG_Bool(ATTR_static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_static_type, 411);
+ }
+ fra.me.REG[0] = ATTR_static_type___MMNullableType____base_type(fra.me.REG[0]);
+ fra.me.REG[1] = CALL_static_type___MMType___for_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+ fra.me.REG[1] = CALL_static_type___MMType___as_nullable(fra.me.REG[1])(fra.me.REG[1]);
+ goto label1;
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return fra.me.REG[1];
+}
+val_t static_type___MMNullableType___adapt_to(val_t p0, val_t p1){
+ struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+ val_t REGB0;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_static_type;
+ fra.me.line = 414;
+ fra.me.meth = LOCATE_static_type___MMNullableType___adapt_to;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 2;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* ./metamodel//static_type.nit:416 */
+ REGB0 = TAG_Bool(ATTR_static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_static_type, 416);
+ }
+ fra.me.REG[0] = ATTR_static_type___MMNullableType____base_type(fra.me.REG[0]);
+ fra.me.REG[1] = CALL_static_type___MMType___adapt_to(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+ fra.me.REG[1] = CALL_static_type___MMType___as_nullable(fra.me.REG[1])(fra.me.REG[1]);
+ goto label1;
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return fra.me.REG[1];
+}
+val_t static_type___MMNullableType___upcast_for(val_t p0, val_t p1){
+ struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+ val_t REGB0;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_static_type;
+ fra.me.line = 419;
+ fra.me.meth = LOCATE_static_type___MMNullableType___upcast_for;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 2;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* ./metamodel//static_type.nit:421 */
+ REGB0 = TAG_Bool(ATTR_static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_static_type, 421);
+ }
+ fra.me.REG[0] = ATTR_static_type___MMNullableType____base_type(fra.me.REG[0]);
+ fra.me.REG[1] = CALL_static_type___MMType___upcast_for(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+ goto label1;
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return fra.me.REG[1];
+}
+val_t static_type___MMNullableType___not_for_self(val_t p0){
+ struct {struct stack_frame_t me;} fra;
+ val_t REGB0;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_static_type;
+ fra.me.line = 424;
+ fra.me.meth = LOCATE_static_type___MMNullableType___not_for_self;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ /* ./metamodel//static_type.nit:426 */
+ REGB0 = TAG_Bool(ATTR_static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_static_type, 426);
+ }
+ fra.me.REG[0] = ATTR_static_type___MMNullableType____base_type(fra.me.REG[0]);
+ fra.me.REG[0] = CALL_static_type___MMType___not_for_self(fra.me.REG[0])(fra.me.REG[0]);
+ fra.me.REG[0] = CALL_static_type___MMType___as_nullable(fra.me.REG[0])(fra.me.REG[0]);
+ goto label1;
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return fra.me.REG[0];
+}
+val_t static_type___MMTypeClass___local_class(val_t p0){
+ struct {struct stack_frame_t me;} fra;
+ val_t REGB0;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_static_type;
+ fra.me.line = 432;
+ fra.me.meth = LOCATE_static_type___MMTypeClass___local_class;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ /* ./metamodel//static_type.nit:432 */
+ REGB0 = TAG_Bool(ATTR_static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_static_type, 432);
+ }
+ fra.me.REG[0] = ATTR_static_type___MMTypeClass____local_class(fra.me.REG[0]);
+ stack_frame_head = fra.me.prev;
+ return fra.me.REG[0];
+}
+val_t static_type___MMTypeClass___mmmodule(val_t p0){
+ struct {struct stack_frame_t me;} fra;
+ val_t REGB0;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_static_type;
+ fra.me.line = 433;
+ fra.me.meth = LOCATE_static_type___MMTypeClass___mmmodule;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ /* ./metamodel//static_type.nit:433 */
+ REGB0 = TAG_Bool(ATTR_static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_static_type, 433);
+ }
+ fra.me.REG[0] = ATTR_static_type___MMTypeClass____local_class(fra.me.REG[0]);
+ fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
+ goto label1;
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return fra.me.REG[0];
+}
+val_t static_type___MMTypeClass_____l(val_t p0, val_t p1){
+ struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+ val_t REGB0;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_static_type;
+ fra.me.line = 434;
+ fra.me.meth = LOCATE_static_type___MMTypeClass_____l;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 2;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* ./metamodel//static_type.nit:434 */
+ REGB0 = CALL_static_type___MMType___is_supertype(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+ goto label1;
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return REGB0;
+}
+val_t static_type___MMTypeClass___to_s(val_t p0){
+ struct {struct stack_frame_t me;} fra;
+ val_t REGB0;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_static_type;
+ fra.me.line = 436;
+ fra.me.meth = LOCATE_static_type___MMTypeClass___to_s;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ /* ./metamodel//static_type.nit:438 */
+ REGB0 = TAG_Bool(ATTR_static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_static_type, 438);
+ }
+ fra.me.REG[0] = ATTR_static_type___MMTypeClass____local_class(fra.me.REG[0]);
+ fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
+ goto label1;
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return fra.me.REG[0];
+}
+val_t static_type___MMTypeClass___upcast_for(val_t p0, val_t p1){
+ struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+ val_t REGB0;
+ val_t REGB1;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_static_type;
+ fra.me.line = 441;
+ fra.me.meth = LOCATE_static_type___MMTypeClass___upcast_for;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 4;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[3] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* ./metamodel//static_type.nit:443 */
+ fra.me.REG[2] = fra.me.REG[0];
+ /* ./metamodel//static_type.nit:444 */
+ REGB0 = TAG_Bool(ATTR_static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_static_type, 444);
+ }
+ fra.me.REG[3] = ATTR_static_type___MMTypeClass____local_class(fra.me.REG[0]);
+ REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+ REGB0 = REGB1;
+ }
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ /* ./metamodel//static_type.nit:445 */
+ REGB0 = TAG_Bool(ATTR_static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_static_type, 445);
+ }
+ fra.me.REG[0] = ATTR_static_type___MMTypeClass____local_class(fra.me.REG[0]);
+ fra.me.REG[1] = CALL_static_type___MMLocalClass___ancestor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+ fra.me.REG[2] = fra.me.REG[1];
+ }
+ /* ./metamodel//static_type.nit:447 */
+ goto label1;
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return fra.me.REG[2];
+}
+void static_type___MMTypeClass___init(val_t p0, val_t p1, int* init_table){
+ int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMTypeClass].i;
+ struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+ val_t tmp;
+ if (init_table[itpos5]) return;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_static_type;
+ fra.me.line = 450;
+ fra.me.meth = LOCATE_static_type___MMTypeClass___init;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 3;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* ./metamodel//static_type.nit:450 */
+ fra.me.REG[2] = fra.me.REG[0];
+ CALL_static_type___MMType___init(fra.me.REG[0])(fra.me.REG[0], init_table);
+ /* ./metamodel//static_type.nit:452 */
+ ATTR_static_type___MMTypeClass____local_class(fra.me.REG[2]) = fra.me.REG[1];
+ stack_frame_head = fra.me.prev;
+ init_table[itpos5] = 1;