+ return fra.me.REG[7];
+}
+ void OC_typing___TypingVisitor___get_default_constructor_for_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+ struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+ val_t REGB0;
+ val_t REGB1;
+ val_t REGB2;
+ val_t REGB3;
+ fun_t CREG[1];
+ val_t tmp;
+ static val_t once_value_3; /* Once value */
+ static val_t once_value_4; /* Once value */
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_typing;
+ fra.me.line = 0;
+ fra.me.meth = LOCATE_typing___TypingVisitor___get_default_constructor_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.closure_ctx = closctx_param;
+ fra.me.closure_funs = CREG;
+ fra.me.REG[0] = p0;
+ CREG[0] = clos_fun0;
+ /* ./syntax//typing.nit:123 */
+ REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init_for(fra.me.REG[0])(fra.me.REG[0], closctx->REG[2]);
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ goto label2;
+ }
+ /* ./syntax//typing.nit:124 */
+ fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass_____bra(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
+ /* ./syntax//typing.nit:125 */
+ fra.me.REG[1] = CALL_static_type___MMLocalClass___get_type(closctx->REG[2])(closctx->REG[2]);
+ fra.me.REG[1] = CALL_static_type___MMLocalProperty___signature_for(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+ /* ./syntax//typing.nit:126 */
+ REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_MMSrcMethod, ID_MMSrcMethod)) /*cast MMSrcMethod*/;
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Assert failed", NULL, LOCATE_typing, 126);
+ }
+ /* ./syntax//typing.nit:127 */
+ REGB0 = CALL_static_type___MMSignature___arity(fra.me.REG[1])(fra.me.REG[1]);
+ /* ./syntax//typing.nit:128 */
+ fra.me.REG[2] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[0])(fra.me.REG[0]);
+ fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___name(closctx->REG[3])(closctx->REG[3]);
+ REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
+ if (UNTAG_Bool(REGB1)) {
+ } else {
+ REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+ REGB1 = REGB2;
+ }
+ if (UNTAG_Bool(REGB1)) {
+ /* ./syntax//typing.nit:129 */
+ REGB1 = TAG_Int(0);
+ REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
+ if (UNTAG_Bool(REGB2)) {
+ } else {
+ /* ./../lib/standard//kernel.nit:207 */
+ REGB1 = TAG_Bool((REGB0)==(REGB1));
+ /* ./syntax//typing.nit:129 */
+ REGB2 = REGB1;
+ }
+ if (UNTAG_Bool(REGB2)) {
+ REGB2 = TAG_Bool(true);
+ } else {
+ REGB1 = TAG_Bool(IS_EQUAL_OO(closctx->REG[6],REGB0));
+ if (UNTAG_Bool(REGB1)) {
+ } else {
+ /* ./../lib/standard//kernel.nit:207 */
+ REGB3 = TAG_Bool((closctx->REG[6])==(REGB0));
+ /* ./syntax//typing.nit:129 */
+ REGB1 = REGB3;
+ }
+ if (UNTAG_Bool(REGB1)) {
+ fra.me.REG[3] = CALL_static_type___MMLocalProperty___signature(closctx->REG[3])(closctx->REG[3]);
+ REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ nit_abort("Reciever is null", NULL, LOCATE_typing, 129);
+ }
+ REGB1 = CALL_static_type___MMSignature_____l(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+ } else {
+ REGB3 = TAG_Bool(false);
+ REGB1 = REGB3;
+ }
+ REGB2 = REGB1;
+ }
+ if (UNTAG_Bool(REGB2)) {
+ /* ./syntax//typing.nit:130 */
+ closctx->REG[7] = fra.me.REG[0];
+ closctx->has_broke = 1;
+ goto label2;
+ } else {
+ /* ./syntax//typing.nit:132 */
+ CALL_abstract_collection___SimpleCollection___add(closctx->REG[5])(closctx->REG[5], fra.me.REG[0]);
+ }
+ } else {
+ /* ./syntax//typing.nit:134 */
+ REGB2 = TAG_Int(0);
+ REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
+ if (UNTAG_Bool(REGB1)) {
+ } else {
+ /* ./../lib/standard//kernel.nit:207 */
+ REGB2 = TAG_Bool((REGB0)==(REGB2));
+ /* ./syntax//typing.nit:134 */
+ REGB1 = REGB2;
+ }
+ if (UNTAG_Bool(REGB1)) {
+ fra.me.REG[1] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[0])(fra.me.REG[0]);
+ if (!once_value_3) {
+ if (!once_value_4) {
+ fra.me.REG[3] = BOX_NativeString("init");
+ REGB1 = TAG_Int(4);
+ fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1);
+ once_value_4 = fra.me.REG[3];
+ register_static_object(&once_value_4);
+ } else fra.me.REG[3] = once_value_4;
+ fra.me.REG[3] = fra.me.REG[3];
+ fra.me.REG[3] = CALL_symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
+ once_value_3 = fra.me.REG[3];
+ register_static_object(&once_value_3);
+ } else fra.me.REG[3] = once_value_3;
+ fra.me.REG[3] = fra.me.REG[3];
+ REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[3]));
+ if (UNTAG_Bool(REGB1)) {
+ } else {
+ REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
+ REGB1 = REGB2;
+ }
+ } else {
+ REGB2 = TAG_Bool(false);
+ REGB1 = REGB2;
+ }
+ if (UNTAG_Bool(REGB1)) {
+ /* ./syntax//typing.nit:135 */
+ CALL_abstract_collection___SimpleCollection___add(closctx->REG[4])(closctx->REG[4], fra.me.REG[0]);
+ /* ./syntax//typing.nit:136 */
+ CALL_abstract_collection___SimpleCollection___add(closctx->REG[5])(closctx->REG[5], fra.me.REG[0]);
+ } else {
+ /* ./syntax//typing.nit:138 */
+ CALL_abstract_collection___SimpleCollection___add(closctx->REG[5])(closctx->REG[5], fra.me.REG[0]);
+ }
+ }
+ label2: while(0);
+ stack_frame_head = fra.me.prev;
+ return;