X-Git-Url: http://nitlanguage.org diff --git a/c_src/syntax___typing._sep.c b/c_src/syntax___typing._sep.c deleted file mode 100644 index cbf8e35..0000000 --- a/c_src/syntax___typing._sep.c +++ /dev/null @@ -1,13849 +0,0 @@ -/* This C file is generated by NIT to compile module syntax___typing. */ -#include "syntax___typing._sep.h" -static const char LOCATE_syntax___typing___MMSrcModule___do_typing[] = "typing::MMSrcModule::do_typing"; -void syntax___typing___MMSrcModule___do_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 25; - fra.me.meth = LOCATE_syntax___typing___MMSrcModule___do_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:29 */ - fra.me.REG[1] = NEW_TypingVisitor_syntax___typing___TypingVisitor___init(fra.me.REG[1], fra.me.REG[0]); - /* syntax/typing.nit:30 */ - fra.me.REG[0] = CALL_syntax___syntax_base___MMSrcModule___node(fra.me.REG[0])(fra.me.REG[0]); - CALL_parser___parser_nodes___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___TypingVisitor___visit[] = "typing::TypingVisitor::(parser_nodes::Visitor::visit)"; -void syntax___typing___TypingVisitor___visit(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 41; - fra.me.meth = LOCATE_syntax___typing___TypingVisitor___visit; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:43 */ - CALL_syntax___typing___ANode___accept_typing(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___TypingVisitor___scope_ctx[] = "typing::TypingVisitor::scope_ctx"; -val_t syntax___typing___TypingVisitor___scope_ctx(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_syntax___typing; - fra.me.line = 46; - fra.me.meth = LOCATE_syntax___typing___TypingVisitor___scope_ctx; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:46 */ - REGB0 = TAG_Bool(ATTR_syntax___typing___TypingVisitor____scope_ctx(fra.me.REG[0])!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Uninitialized attribute %s", "_scope_ctx", LOCATE_syntax___typing, 46); - } - fra.me.REG[0] = ATTR_syntax___typing___TypingVisitor____scope_ctx(fra.me.REG[0]); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___TypingVisitor___flow_ctx[] = "typing::TypingVisitor::flow_ctx"; -val_t syntax___typing___TypingVisitor___flow_ctx(val_t p0){ - 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_syntax___typing; - fra.me.line = 49; - fra.me.meth = LOCATE_syntax___typing___TypingVisitor___flow_ctx; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:49 */ - fra.me.REG[1] = fra.me.REG[0]; - /* syntax/typing.nit:50 */ - fra.me.REG[1] = ATTR_syntax___typing___TypingVisitor____flow_ctx(fra.me.REG[1]); - REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 50); - } - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[1]; -} -static const char LOCATE_syntax___typing___TypingVisitor___flow_ctx__eq[] = "typing::TypingVisitor::flow_ctx="; -void syntax___typing___TypingVisitor___flow_ctx__eq(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 51; - fra.me.meth = LOCATE_syntax___typing___TypingVisitor___flow_ctx__eq; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:51 */ - ATTR_syntax___typing___TypingVisitor____flow_ctx(fra.me.REG[0]) = fra.me.REG[1]; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___TypingVisitor___mark_is_set[] = "typing::TypingVisitor::mark_is_set"; -void syntax___typing___TypingVisitor___mark_is_set(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; - val_t REGB0; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 53; - fra.me.meth = LOCATE_syntax___typing___TypingVisitor___mark_is_set; - fra.me.has_broke = 0; - fra.me.REG_size = 3; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:56 */ - fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = CALL_syntax___flow___FlowContext___is_set(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); - if (UNTAG_Bool(REGB0)) { - goto label1; - } - /* syntax/typing.nit:57 */ - fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[1] = CALL_syntax___flow___FlowContext___sub_setvariable(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); - CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - label1: while(0); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___TypingVisitor___mark_unreash[] = "typing::TypingVisitor::mark_unreash"; -void syntax___typing___TypingVisitor___mark_unreash(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 60; - fra.me.meth = LOCATE_syntax___typing___TypingVisitor___mark_unreash; - fra.me.has_broke = 0; - fra.me.REG_size = 3; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:63 */ - fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[1] = CALL_syntax___flow___FlowContext___sub_unreash(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); - CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___TypingVisitor___enter_visit_block[] = "typing::TypingVisitor::enter_visit_block"; -void syntax___typing___TypingVisitor___enter_visit_block(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[2];} 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_syntax___typing; - fra.me.line = 66; - fra.me.meth = LOCATE_syntax___typing___TypingVisitor___enter_visit_block; - fra.me.has_broke = 0; - fra.me.REG_size = 3; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:69 */ - REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL); - REGB0 = REGB1; - } - } - if (UNTAG_Bool(REGB0)) { - goto label1; - } - /* syntax/typing.nit:70 */ - fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___scope___ScopeContext___push(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); - /* syntax/typing.nit:71 */ - CALL_parser___parser_nodes___Visitor___enter_visit(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - /* syntax/typing.nit:72 */ - fra.me.REG[0] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___scope___ScopeContext___pop(fra.me.REG[0])(fra.me.REG[0]); - label1: while(0); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___TypingVisitor___base_flow_ctx[] = "typing::TypingVisitor::base_flow_ctx"; -val_t syntax___typing___TypingVisitor___base_flow_ctx(val_t p0){ - 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_syntax___typing; - fra.me.line = 75; - fra.me.meth = LOCATE_syntax___typing___TypingVisitor___base_flow_ctx; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:75 */ - fra.me.REG[1] = fra.me.REG[0]; - /* syntax/typing.nit:76 */ - fra.me.REG[1] = ATTR_syntax___typing___TypingVisitor____base_flow_ctx(fra.me.REG[1]); - REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 76); - } - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[1]; -} -static const char LOCATE_syntax___typing___TypingVisitor___base_flow_ctx__eq[] = "typing::TypingVisitor::base_flow_ctx="; -void syntax___typing___TypingVisitor___base_flow_ctx__eq(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 77; - fra.me.meth = LOCATE_syntax___typing___TypingVisitor___base_flow_ctx__eq; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:77 */ - ATTR_syntax___typing___TypingVisitor____base_flow_ctx(fra.me.REG[0]) = fra.me.REG[1]; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___TypingVisitor___self_var[] = "typing::TypingVisitor::self_var"; -val_t syntax___typing___TypingVisitor___self_var(val_t p0){ - 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_syntax___typing; - fra.me.line = 79; - fra.me.meth = LOCATE_syntax___typing___TypingVisitor___self_var; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:79 */ - fra.me.REG[1] = fra.me.REG[0]; - /* syntax/typing.nit:80 */ - fra.me.REG[1] = ATTR_syntax___typing___TypingVisitor____self_var(fra.me.REG[1]); - REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 80); - } - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[1]; -} -static const char LOCATE_syntax___typing___TypingVisitor___self_var__eq[] = "typing::TypingVisitor::self_var="; -void syntax___typing___TypingVisitor___self_var__eq(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 81; - fra.me.meth = LOCATE_syntax___typing___TypingVisitor___self_var__eq; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:81 */ - ATTR_syntax___typing___TypingVisitor____self_var(fra.me.REG[0]) = fra.me.REG[1]; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___TypingVisitor___top_block[] = "typing::TypingVisitor::top_block"; -val_t syntax___typing___TypingVisitor___top_block(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 83; - fra.me.meth = LOCATE_syntax___typing___TypingVisitor___top_block; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:83 */ - fra.me.REG[0] = ATTR_syntax___typing___TypingVisitor____top_block(fra.me.REG[0]); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___TypingVisitor___top_block__eq[] = "typing::TypingVisitor::top_block="; -void syntax___typing___TypingVisitor___top_block__eq(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 83; - fra.me.meth = LOCATE_syntax___typing___TypingVisitor___top_block__eq; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:83 */ - ATTR_syntax___typing___TypingVisitor____top_block(fra.me.REG[0]) = fra.me.REG[1]; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___TypingVisitor___explicit_super_init_calls[] = "typing::TypingVisitor::explicit_super_init_calls"; -val_t syntax___typing___TypingVisitor___explicit_super_init_calls(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 86; - fra.me.meth = LOCATE_syntax___typing___TypingVisitor___explicit_super_init_calls; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:86 */ - fra.me.REG[0] = ATTR_syntax___typing___TypingVisitor____explicit_super_init_calls(fra.me.REG[0]); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___TypingVisitor___explicit_super_init_calls__eq[] = "typing::TypingVisitor::explicit_super_init_calls="; -void syntax___typing___TypingVisitor___explicit_super_init_calls__eq(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 86; - fra.me.meth = LOCATE_syntax___typing___TypingVisitor___explicit_super_init_calls__eq; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:86 */ - ATTR_syntax___typing___TypingVisitor____explicit_super_init_calls(fra.me.REG[0]) = fra.me.REG[1]; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___TypingVisitor___explicit_other_init_call[] = "typing::TypingVisitor::explicit_other_init_call"; -val_t syntax___typing___TypingVisitor___explicit_other_init_call(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_syntax___typing; - fra.me.line = 89; - fra.me.meth = LOCATE_syntax___typing___TypingVisitor___explicit_other_init_call; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:89 */ - REGB0 = TAG_Bool(ATTR_syntax___typing___TypingVisitor____explicit_other_init_call(fra.me.REG[0])!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Uninitialized attribute %s", "_explicit_other_init_call", LOCATE_syntax___typing, 89); - } - REGB0 = ATTR_syntax___typing___TypingVisitor____explicit_other_init_call(fra.me.REG[0]); - stack_frame_head = fra.me.prev; - return REGB0; -} -static const char LOCATE_syntax___typing___TypingVisitor___explicit_other_init_call__eq[] = "typing::TypingVisitor::explicit_other_init_call="; -void syntax___typing___TypingVisitor___explicit_other_init_call__eq(val_t p0, val_t p1){ - 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_syntax___typing; - fra.me.line = 89; - fra.me.meth = LOCATE_syntax___typing___TypingVisitor___explicit_other_init_call__eq; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - REGB0 = p1; - /* syntax/typing.nit:89 */ - ATTR_syntax___typing___TypingVisitor____explicit_other_init_call(fra.me.REG[0]) = REGB0; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___TypingVisitor___use_if_true_flow_ctx[] = "typing::TypingVisitor::use_if_true_flow_ctx"; -void syntax___typing___TypingVisitor___use_if_true_flow_ctx(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_syntax___typing; - fra.me.line = 92; - fra.me.meth = LOCATE_syntax___typing___TypingVisitor___use_if_true_flow_ctx; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:95 */ - fra.me.REG[1] = CALL_syntax___typing___AExpr___if_true_flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:96 */ - REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - } - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___TypingVisitor___use_if_false_flow_ctx[] = "typing::TypingVisitor::use_if_false_flow_ctx"; -void syntax___typing___TypingVisitor___use_if_false_flow_ctx(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_syntax___typing; - fra.me.line = 99; - fra.me.meth = LOCATE_syntax___typing___TypingVisitor___use_if_false_flow_ctx; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:102 */ - fra.me.REG[1] = CALL_syntax___typing___AExpr___if_false_flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:103 */ - REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - } - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___TypingVisitor___is_default_closure_definition[] = "typing::TypingVisitor::is_default_closure_definition"; -val_t syntax___typing___TypingVisitor___is_default_closure_definition(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_syntax___typing; - fra.me.line = 106; - fra.me.meth = LOCATE_syntax___typing___TypingVisitor___is_default_closure_definition; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:106 */ - REGB0 = TAG_Bool(ATTR_syntax___typing___TypingVisitor____is_default_closure_definition(fra.me.REG[0])!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Uninitialized attribute %s", "_is_default_closure_definition", LOCATE_syntax___typing, 106); - } - REGB0 = ATTR_syntax___typing___TypingVisitor____is_default_closure_definition(fra.me.REG[0]); - stack_frame_head = fra.me.prev; - return REGB0; -} -static const char LOCATE_syntax___typing___TypingVisitor___is_default_closure_definition__eq[] = "typing::TypingVisitor::is_default_closure_definition="; -void syntax___typing___TypingVisitor___is_default_closure_definition__eq(val_t p0, val_t p1){ - 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_syntax___typing; - fra.me.line = 106; - fra.me.meth = LOCATE_syntax___typing___TypingVisitor___is_default_closure_definition__eq; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - REGB0 = p1; - /* syntax/typing.nit:106 */ - ATTR_syntax___typing___TypingVisitor____is_default_closure_definition(fra.me.REG[0]) = REGB0; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___TypingVisitor___once_count[] = "typing::TypingVisitor::once_count"; -val_t syntax___typing___TypingVisitor___once_count(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_syntax___typing; - fra.me.line = 109; - fra.me.meth = LOCATE_syntax___typing___TypingVisitor___once_count; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:109 */ - REGB0 = TAG_Bool(ATTR_syntax___typing___TypingVisitor____once_count(fra.me.REG[0])!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Uninitialized attribute %s", "_once_count", LOCATE_syntax___typing, 109); - } - REGB0 = ATTR_syntax___typing___TypingVisitor____once_count(fra.me.REG[0]); - stack_frame_head = fra.me.prev; - return REGB0; -} -static const char LOCATE_syntax___typing___TypingVisitor___once_count__eq[] = "typing::TypingVisitor::once_count="; -void syntax___typing___TypingVisitor___once_count__eq(val_t p0, val_t p1){ - 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_syntax___typing; - fra.me.line = 109; - fra.me.meth = LOCATE_syntax___typing___TypingVisitor___once_count__eq; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - REGB0 = p1; - /* syntax/typing.nit:109 */ - ATTR_syntax___typing___TypingVisitor____once_count(fra.me.REG[0]) = REGB0; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___TypingVisitor___init[] = "typing::TypingVisitor::init"; -void syntax___typing___TypingVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){ - int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___typing___TypingVisitor].i; - struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; - val_t tmp; - if (init_table[itpos0]) return; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 112; - fra.me.meth = LOCATE_syntax___typing___TypingVisitor___init; - fra.me.has_broke = 0; - fra.me.REG_size = 3; - fra.me.nitni_local_ref_head = NULL; - 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; - fra.me.REG[2] = p2; - /* syntax/typing.nit:112 */ - CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table); - stack_frame_head = fra.me.prev; - init_table[itpos0] = 1; - return; -} -static const char LOCATE_syntax___typing___TypingVisitor___get_default_constructor_for[] = "typing::TypingVisitor::get_default_constructor_for"; -val_t syntax___typing___TypingVisitor___get_default_constructor_for(val_t p0, val_t p1, val_t p2, val_t p3){ - struct {struct stack_frame_t me; val_t MORE_REG[11];} fra; - val_t REGB0; - val_t REGB1; - val_t REGB2; - val_t tmp; - static val_t once_value_6; /* Once value */ - static val_t once_value_7; /* Once value */ - static val_t once_value_8; /* Once value */ - static val_t once_value_10; /* Once value */ - static val_t once_value_11; /* Once value */ - static val_t once_value_12; /* Once value */ - static val_t once_value_13; /* Once value */ - static val_t once_value_14; /* Once value */ - static val_t once_value_15; /* Once value */ - static val_t once_value_16; /* Once value */ - static val_t once_value_18; /* Once value */ - static val_t once_value_19; /* Once value */ - static val_t once_value_20; /* Once value */ - static val_t once_value_21; /* Once value */ - static val_t once_value_22; /* Once value */ - static val_t once_value_23; /* Once value */ - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 114; - fra.me.meth = LOCATE_syntax___typing___TypingVisitor___get_default_constructor_for; - fra.me.has_broke = 0; - fra.me.REG_size = 12; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[5] = NIT_NULL; - fra.me.REG[6] = NIT_NULL; - fra.me.REG[7] = NIT_NULL; - fra.me.REG[8] = NIT_NULL; - fra.me.REG[9] = NIT_NULL; - fra.me.REG[10] = NIT_NULL; - fra.me.REG[11] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - fra.me.REG[2] = p2; - fra.me.REG[3] = p3; - /* syntax/typing.nit:114 */ - fra.me.REG[4] = fra.me.REG[0]; - /* syntax/typing.nit:116 */ - fra.me.REG[5] = fra.me.REG[4]; - /* syntax/typing.nit:119 */ - fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init(); - /* syntax/typing.nit:120 */ - fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init(); - /* syntax/typing.nit:121 */ - fra.me.REG[8] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[3])(fra.me.REG[3]); - REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 121); - } - REGB0 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[8])(fra.me.REG[8]); - fra.me.REG[8] = REGB0; - /* syntax/typing.nit:122 */ - fra.me.REG[9] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[2])(fra.me.REG[2]); - CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[9])(fra.me.REG[9], (&(fra.me)), ((fun_t)OC_syntax___typing___TypingVisitor___get_default_constructor_for_1)); - switch ((&(fra.me))->has_broke) { - case 0: break; - case 1: (&(fra.me))->has_broke = 0; goto label5; - } - /* ../lib/standard/collection/array.nit:24 */ - REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); - } - REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]); - /* syntax/typing.nit:141 */ - REGB1 = TAG_Int(1); - REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1)); - if (UNTAG_Bool(REGB2)) { - } else { - /* ../lib/standard/kernel.nit:237 */ - REGB1 = TAG_Bool((REGB0)==(REGB1)); - /* syntax/typing.nit:141 */ - REGB2 = REGB1; - } - if (UNTAG_Bool(REGB2)) { - /* syntax/typing.nit:142 */ - fra.me.REG[3] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[6])(fra.me.REG[6]); - fra.me.REG[9] = fra.me.REG[3]; - goto label5; - } else { - /* ../lib/standard/collection/array.nit:24 */ - REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL); - if (UNTAG_Bool(REGB2)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); - } - REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]); - /* syntax/typing.nit:143 */ - REGB1 = TAG_Int(0); - REGB0 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/; - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:244 */ - REGB1 = TAG_Bool(UNTAG_Int(REGB2)>UNTAG_Int(REGB1)); - /* syntax/typing.nit:143 */ - if (UNTAG_Bool(REGB1)) { - /* syntax/typing.nit:144 */ - fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init(); - /* ../lib/standard/collection/array.nit:270 */ - REGB1 = TAG_Int(0); - /* ../lib/standard/collection/array.nit:271 */ - REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL); - if (UNTAG_Bool(REGB2)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271); - } - REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]); - /* ../lib/standard/collection/array.nit:272 */ - fra.me.REG[8] = ATTR_standard___collection___array___Array____items(fra.me.REG[6]); - /* ../lib/standard/collection/array.nit:273 */ - while(1) { - /* ../lib/standard/collection/array.nit:24 */ - REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL); - if (UNTAG_Bool(REGB2)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); - } - REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]); - REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/; - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:242 */ - REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; - /* syntax/typing.nit:146 */ - REGB2 = TAG_Int(5); - fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2); - if (!once_value_6) { - fra.me.REG[11] = BOX_NativeString(""); - REGB2 = TAG_Int(0); - fra.me.REG[11] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[11])(fra.me.REG[11], REGB2); - once_value_6 = fra.me.REG[11]; - register_static_object(&once_value_6); - } else fra.me.REG[11] = once_value_6; - fra.me.REG[11] = fra.me.REG[11]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]); - fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[4])(fra.me.REG[4]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]); - if (!once_value_7) { - fra.me.REG[11] = BOX_NativeString(""); - REGB2 = TAG_Int(0); - fra.me.REG[11] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[11])(fra.me.REG[11], REGB2); - once_value_7 = fra.me.REG[11]; - register_static_object(&once_value_7); - } else fra.me.REG[11] = once_value_7; - fra.me.REG[11] = fra.me.REG[11]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]); - fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[4])(fra.me.REG[4]); - REGB2 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_metamodel___static_type___MMSignature, ID_metamodel___static_type___MMSignature)) /*cast MMSignature*/; - if (UNTAG_Bool(REGB2)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 146); - } - fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[4]); - if (!once_value_8) { - fra.me.REG[4] = BOX_NativeString(""); - REGB2 = TAG_Int(0); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2); - once_value_8 = fra.me.REG[4]; - register_static_object(&once_value_8); - } else fra.me.REG[4] = once_value_8; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[4]); - fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[10]); - /* ../lib/standard/collection/array.nit:275 */ - REGB2 = TAG_Int(1); - /* ../lib/standard/kernel.nit:245 */ - REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2)); - /* ../lib/standard/collection/array.nit:275 */ - REGB1 = REGB2; - } else { - /* ../lib/standard/collection/array.nit:273 */ - goto label9; - } - } - label9: while(0); - /* syntax/typing.nit:148 */ - REGB1 = TAG_Int(5); - fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1); - if (!once_value_10) { - fra.me.REG[6] = BOX_NativeString("Error: Conflicting default constructor to call for "); - REGB1 = TAG_Int(51); - fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB1); - once_value_10 = fra.me.REG[6]; - register_static_object(&once_value_10); - } else fra.me.REG[6] = once_value_10; - fra.me.REG[6] = fra.me.REG[6]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[6]); - fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[6]); - if (!once_value_11) { - fra.me.REG[6] = BOX_NativeString(": "); - REGB1 = TAG_Int(2); - fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB1); - once_value_11 = fra.me.REG[6]; - register_static_object(&once_value_11); - } else fra.me.REG[6] = once_value_11; - fra.me.REG[6] = fra.me.REG[6]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[6]); - if (!once_value_12) { - fra.me.REG[6] = BOX_NativeString(", "); - REGB1 = TAG_Int(2); - fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB1); - once_value_12 = fra.me.REG[6]; - register_static_object(&once_value_12); - } else fra.me.REG[6] = once_value_12; - fra.me.REG[6] = fra.me.REG[6]; - fra.me.REG[6] = CALL_standard___string___Collection___join(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[6]); - if (!once_value_13) { - fra.me.REG[6] = BOX_NativeString("."); - REGB1 = TAG_Int(1); - fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB1); - once_value_13 = fra.me.REG[6]; - register_static_object(&once_value_13); - } else fra.me.REG[6] = once_value_13; - fra.me.REG[6] = fra.me.REG[6]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[6]); - fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1], fra.me.REG[8]); - /* syntax/typing.nit:149 */ - fra.me.REG[9] = NIT_NULL; - goto label5; - } else { - /* ../lib/standard/collection/array.nit:24 */ - REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); - } - REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]); - /* syntax/typing.nit:150 */ - REGB2 = TAG_Int(0); - REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/; - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:244 */ - REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2)); - /* syntax/typing.nit:150 */ - if (UNTAG_Bool(REGB2)) { - /* syntax/typing.nit:151 */ - fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init(); - /* ../lib/standard/collection/array.nit:270 */ - REGB2 = TAG_Int(0); - /* ../lib/standard/collection/array.nit:271 */ - REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271); - } - REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]); - /* ../lib/standard/collection/array.nit:272 */ - fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]); - /* ../lib/standard/collection/array.nit:273 */ - while(1) { - /* ../lib/standard/collection/array.nit:24 */ - REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); - } - REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]); - REGB0 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/; - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:242 */ - REGB1 = TAG_Bool(UNTAG_Int(REGB2)val[UNTAG_Int(REGB2)]; - /* syntax/typing.nit:153 */ - REGB1 = TAG_Int(5); - fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1); - if (!once_value_14) { - fra.me.REG[4] = BOX_NativeString(""); - REGB1 = TAG_Int(0); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB1); - once_value_14 = fra.me.REG[4]; - register_static_object(&once_value_14); - } else fra.me.REG[4] = once_value_14; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[4]); - fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[3])(fra.me.REG[3]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[4]); - if (!once_value_15) { - fra.me.REG[4] = BOX_NativeString(""); - REGB1 = TAG_Int(0); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB1); - once_value_15 = fra.me.REG[4]; - register_static_object(&once_value_15); - } else fra.me.REG[4] = once_value_15; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[4]); - fra.me.REG[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[3])(fra.me.REG[3]); - REGB1 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_metamodel___static_type___MMSignature, ID_metamodel___static_type___MMSignature)) /*cast MMSignature*/; - if (UNTAG_Bool(REGB1)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 153); - } - fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[3]); - if (!once_value_16) { - fra.me.REG[3] = BOX_NativeString(""); - REGB1 = TAG_Int(0); - fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB1); - once_value_16 = fra.me.REG[3]; - register_static_object(&once_value_16); - } else fra.me.REG[3] = once_value_16; - fra.me.REG[3] = fra.me.REG[3]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[3]); - fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]); - /* ../lib/standard/collection/array.nit:275 */ - REGB1 = TAG_Int(1); - /* ../lib/standard/kernel.nit:245 */ - REGB1 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB1)); - /* ../lib/standard/collection/array.nit:275 */ - REGB2 = REGB1; - } else { - /* ../lib/standard/collection/array.nit:273 */ - goto label17; - } - } - label17: while(0); - /* syntax/typing.nit:155 */ - REGB2 = TAG_Int(5); - fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2); - if (!once_value_18) { - fra.me.REG[6] = BOX_NativeString("Error: there is no available compatible constructor in "); - REGB2 = TAG_Int(55); - fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2); - once_value_18 = fra.me.REG[6]; - register_static_object(&once_value_18); - } else fra.me.REG[6] = once_value_18; - fra.me.REG[6] = fra.me.REG[6]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]); - fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]); - if (!once_value_19) { - fra.me.REG[6] = BOX_NativeString(". Discarded candidates are "); - REGB2 = TAG_Int(27); - fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2); - once_value_19 = fra.me.REG[6]; - register_static_object(&once_value_19); - } else fra.me.REG[6] = once_value_19; - fra.me.REG[6] = fra.me.REG[6]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]); - if (!once_value_20) { - fra.me.REG[6] = BOX_NativeString(", "); - REGB2 = TAG_Int(2); - fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2); - once_value_20 = fra.me.REG[6]; - register_static_object(&once_value_20); - } else fra.me.REG[6] = once_value_20; - fra.me.REG[6] = fra.me.REG[6]; - fra.me.REG[6] = CALL_standard___string___Collection___join(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[6]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]); - if (!once_value_21) { - fra.me.REG[6] = BOX_NativeString("."); - REGB2 = TAG_Int(1); - fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2); - once_value_21 = fra.me.REG[6]; - register_static_object(&once_value_21); - } else fra.me.REG[6] = once_value_21; - fra.me.REG[6] = fra.me.REG[6]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]); - fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1], fra.me.REG[0]); - /* syntax/typing.nit:156 */ - fra.me.REG[9] = NIT_NULL; - goto label5; - } else { - /* syntax/typing.nit:158 */ - REGB2 = TAG_Int(3); - fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2); - if (!once_value_22) { - fra.me.REG[6] = BOX_NativeString("Error: there is no available compatible constructor in "); - REGB2 = TAG_Int(55); - fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2); - once_value_22 = fra.me.REG[6]; - register_static_object(&once_value_22); - } else fra.me.REG[6] = once_value_22; - fra.me.REG[6] = fra.me.REG[6]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]); - fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); - if (!once_value_23) { - fra.me.REG[2] = BOX_NativeString("."); - REGB2 = TAG_Int(1); - fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB2); - once_value_23 = fra.me.REG[2]; - register_static_object(&once_value_23); - } else fra.me.REG[2] = once_value_23; - fra.me.REG[2] = fra.me.REG[2]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); - fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1], fra.me.REG[0]); - /* syntax/typing.nit:159 */ - fra.me.REG[9] = NIT_NULL; - goto label5; - } - } - } - label5: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[9]; -} - void OC_syntax___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_syntax___typing; - fra.me.line = 0; - fra.me.meth = LOCATE_syntax___typing___TypingVisitor___get_default_constructor_for; - fra.me.has_broke = 0; - fra.me.REG_size = 4; - fra.me.nitni_local_ref_head = NULL; - 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_metamodel___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_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]); - /* syntax/typing.nit:125 */ - fra.me.REG[1] = CALL_metamodel___static_type___MMLocalClass___get_type(closctx->REG[2])(closctx->REG[2]); - fra.me.REG[1] = CALL_metamodel___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_syntax___syntax_base___MMSrcMethod, ID_syntax___syntax_base___MMSrcMethod)) /*cast MMSrcMethod*/; - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Assert failed", NULL, LOCATE_syntax___typing, 126); - } - /* syntax/typing.nit:127 */ - REGB0 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:128 */ - fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[3] = CALL_metamodel___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_standard___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:237 */ - REGB1 = TAG_Bool((REGB0)==(REGB1)); - /* syntax/typing.nit:129 */ - REGB2 = REGB1; - } - if (UNTAG_Bool(REGB2)) { - REGB2 = TAG_Bool(1); - } else { - REGB1 = TAG_Bool(IS_EQUAL_OO(closctx->REG[8],REGB0)); - if (UNTAG_Bool(REGB1)) { - } else { - /* ../lib/standard/kernel.nit:237 */ - REGB3 = TAG_Bool((closctx->REG[8])==(REGB0)); - /* syntax/typing.nit:129 */ - REGB1 = REGB3; - } - if (UNTAG_Bool(REGB1)) { - fra.me.REG[3] = CALL_metamodel___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_syntax___typing, 129); - } - REGB1 = CALL_metamodel___static_type___MMSignature_____l(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); - } else { - REGB3 = TAG_Bool(0); - REGB1 = REGB3; - } - REGB2 = REGB1; - } - if (UNTAG_Bool(REGB2)) { - /* syntax/typing.nit:130 */ - closctx->REG[9] = fra.me.REG[0]; - closctx->has_broke = 1; - goto label2; - } else { - /* syntax/typing.nit:132 */ - CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[7])(closctx->REG[7], 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:237 */ - REGB2 = TAG_Bool((REGB0)==(REGB2)); - /* syntax/typing.nit:134 */ - REGB1 = REGB2; - } - if (UNTAG_Bool(REGB1)) { - fra.me.REG[1] = CALL_metamodel___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] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(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_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - REGB1 = REGB2; - } - } else { - REGB2 = TAG_Bool(0); - REGB1 = REGB2; - } - if (UNTAG_Bool(REGB1)) { - /* syntax/typing.nit:135 */ - CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[6])(closctx->REG[6], fra.me.REG[0]); - /* syntax/typing.nit:136 */ - CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[7])(closctx->REG[7], fra.me.REG[0]); - } else { - /* syntax/typing.nit:138 */ - CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[7])(closctx->REG[7], fra.me.REG[0]); - } - } - label2: while(0); - stack_frame_head = fra.me.prev; - return; - } -static const char LOCATE_syntax___typing___ANode___accept_typing[] = "typing::ANode::accept_typing"; -void syntax___typing___ANode___accept_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 168; - fra.me.meth = LOCATE_syntax___typing___ANode___accept_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:170 */ - CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - /* syntax/typing.nit:171 */ - CALL_syntax___typing___ANode___after_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___ANode___after_typing[] = "typing::ANode::after_typing"; -void syntax___typing___ANode___after_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 173; - fra.me.meth = LOCATE_syntax___typing___ANode___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AClassdef___accept_typing[] = "typing::AClassdef::(typing::ANode::accept_typing)"; -void syntax___typing___AClassdef___accept_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[4];} fra; - val_t REGB0; - val_t tmp; - static val_t once_value_1; /* Once value */ - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 177; - fra.me.meth = LOCATE_syntax___typing___AClassdef___accept_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 5; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:177 */ - fra.me.REG[2] = fra.me.REG[0]; - fra.me.REG[3] = fra.me.REG[1]; - /* syntax/typing.nit:179 */ - if (!once_value_1) { - fra.me.REG[4] = BOX_NativeString("self"); - REGB0 = TAG_Int(4); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_1 = fra.me.REG[4]; - register_static_object(&once_value_1); - } else fra.me.REG[4] = once_value_1; - fra.me.REG[4] = fra.me.REG[4]; - fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]); - fra.me.REG[4] = NEW_ParamVariable_syntax___syntax_base___ParamVariable___init(fra.me.REG[4], fra.me.REG[2]); - CALL_syntax___typing___TypingVisitor___self_var__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - /* syntax/typing.nit:180 */ - fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___self_var(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[2] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[2] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[2])(fra.me.REG[2]); - CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); - /* syntax/typing.nit:181 */ - CALL_SUPER_syntax___typing___AClassdef___accept_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___APropdef___self_var[] = "typing::APropdef::(syntax_base::APropdef::self_var)"; -val_t syntax___typing___APropdef___self_var(val_t p0){ - 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_syntax___typing; - fra.me.line = 186; - fra.me.meth = LOCATE_syntax___typing___APropdef___self_var; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:186 */ - fra.me.REG[1] = fra.me.REG[0]; - fra.me.REG[1] = ATTR_syntax___typing___APropdef____self_var(fra.me.REG[1]); - REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 186); - } - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[1]; -} -static const char LOCATE_syntax___typing___AAttrPropdef___accept_typing[] = "typing::AAttrPropdef::(typing::ANode::accept_typing)"; -void syntax___typing___AAttrPropdef___accept_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[4];} 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_syntax___typing; - fra.me.line = 191; - fra.me.meth = LOCATE_syntax___typing___AAttrPropdef___accept_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 5; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:191 */ - fra.me.REG[2] = fra.me.REG[0]; - fra.me.REG[3] = fra.me.REG[1]; - /* syntax/typing.nit:193 */ - fra.me.REG[4] = NEW_RootFlowContext_syntax___flow___RootFlowContext___init(fra.me.REG[3], fra.me.REG[2]); - CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - /* syntax/typing.nit:194 */ - fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[3])(fra.me.REG[3]); - CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - /* syntax/typing.nit:196 */ - fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[3])(fra.me.REG[3]); - CALL_syntax___scope___ScopeContext___push(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]); - /* syntax/typing.nit:197 */ - fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___self_var(fra.me.REG[3])(fra.me.REG[3]); - ATTR_syntax___typing___APropdef____self_var(fra.me.REG[2]) = fra.me.REG[4]; - /* syntax/typing.nit:198 */ - CALL_SUPER_syntax___typing___AAttrPropdef___accept_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - /* syntax/typing.nit:199 */ - fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra.me.REG[2])(fra.me.REG[2]); - REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:200 */ - fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra.me.REG[2])(fra.me.REG[2]); - REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/; - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 200); - } - fra.me.REG[2] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]); - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 200); - } - fra.me.REG[2] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[2])(fra.me.REG[2]); - REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_metamodel___static_type___MMType, ID_metamodel___static_type___MMType)) /*cast MMType*/; - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 200); - } - CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[2]); - } - /* syntax/typing.nit:202 */ - fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[3])(fra.me.REG[3]); - CALL_syntax___scope___ScopeContext___pop(fra.me.REG[3])(fra.me.REG[3]); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AMethPropdef___accept_typing[] = "typing::AMethPropdef::(typing::ANode::accept_typing)"; -void syntax___typing___AMethPropdef___accept_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[4];} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 207; - fra.me.meth = LOCATE_syntax___typing___AMethPropdef___accept_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 5; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:207 */ - fra.me.REG[2] = fra.me.REG[0]; - fra.me.REG[3] = fra.me.REG[1]; - /* syntax/typing.nit:209 */ - fra.me.REG[4] = NEW_RootFlowContext_syntax___flow___RootFlowContext___init(fra.me.REG[3], fra.me.REG[2]); - CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - /* syntax/typing.nit:210 */ - fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[3])(fra.me.REG[3]); - CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - /* syntax/typing.nit:212 */ - fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[3])(fra.me.REG[3]); - CALL_syntax___scope___ScopeContext___push(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]); - /* syntax/typing.nit:213 */ - fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___self_var(fra.me.REG[3])(fra.me.REG[3]); - ATTR_syntax___typing___APropdef____self_var(fra.me.REG[2]) = fra.me.REG[4]; - /* syntax/typing.nit:214 */ - CALL_SUPER_syntax___typing___AMethPropdef___accept_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - /* syntax/typing.nit:215 */ - fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[3])(fra.me.REG[3]); - CALL_syntax___scope___ScopeContext___pop(fra.me.REG[3])(fra.me.REG[3]); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AConcreteMethPropdef___after_typing[] = "typing::AConcreteMethPropdef::(typing::ANode::after_typing)"; -void syntax___typing___AConcreteMethPropdef___after_typing(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; - static val_t once_value_1; /* Once value */ - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 220; - fra.me.meth = LOCATE_syntax___typing___AConcreteMethPropdef___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 4; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:220 */ - fra.me.REG[2] = fra.me.REG[0]; - fra.me.REG[3] = fra.me.REG[1]; - /* syntax/typing.nit:222 */ - CALL_SUPER_syntax___typing___AConcreteMethPropdef___after_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - /* syntax/typing.nit:223 */ - fra.me.REG[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[3])(fra.me.REG[3]); - REGB0 = CALL_syntax___flow___FlowContext___unreash(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - fra.me.REG[1] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[1] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 223); - } - fra.me.REG[1] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - } else { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:224 */ - if (!once_value_1) { - fra.me.REG[1] = BOX_NativeString("Control error: Reached end of function (a 'return' with a value was expected)."); - REGB0 = TAG_Int(78); - fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0); - once_value_1 = fra.me.REG[1]; - register_static_object(&once_value_1); - } else fra.me.REG[1] = once_value_1; - fra.me.REG[1] = fra.me.REG[1]; - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[1]); - } - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AConcreteInitPropdef___accept_typing[] = "typing::AConcreteInitPropdef::(typing::ANode::accept_typing)"; -void syntax___typing___AConcreteInitPropdef___accept_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[4];} fra; - val_t REGB0; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 230; - fra.me.meth = LOCATE_syntax___typing___AConcreteInitPropdef___accept_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 5; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:230 */ - fra.me.REG[2] = fra.me.REG[0]; - fra.me.REG[3] = fra.me.REG[1]; - /* syntax/typing.nit:232 */ - fra.me.REG[4] = CALL_parser___parser_nodes___AConcreteMethPropdef___n_block(fra.me.REG[2])(fra.me.REG[2]); - CALL_syntax___typing___TypingVisitor___top_block__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - /* syntax/typing.nit:233 */ - fra.me.REG[2] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra.me.REG[2])(fra.me.REG[2]); - CALL_syntax___typing___TypingVisitor___explicit_super_init_calls__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); - /* syntax/typing.nit:234 */ - REGB0 = TAG_Bool(0); - CALL_syntax___typing___TypingVisitor___explicit_other_init_call__eq(fra.me.REG[3])(fra.me.REG[3], REGB0); - /* syntax/typing.nit:235 */ - CALL_SUPER_syntax___typing___AConcreteInitPropdef___accept_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AConcreteInitPropdef___after_typing[] = "typing::AConcreteInitPropdef::(typing::ANode::after_typing)"; -void syntax___typing___AConcreteInitPropdef___after_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[7];} fra; - val_t REGB0; - val_t REGB1; - val_t REGB2; - val_t REGB3; - val_t REGB4; - val_t REGB5; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 238; - fra.me.meth = LOCATE_syntax___typing___AConcreteInitPropdef___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 8; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[5] = NIT_NULL; - fra.me.REG[6] = NIT_NULL; - fra.me.REG[7] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:238 */ - fra.me.REG[2] = fra.me.REG[0]; - fra.me.REG[3] = fra.me.REG[1]; - /* syntax/typing.nit:240 */ - CALL_SUPER_syntax___typing___AConcreteInitPropdef___after_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - /* syntax/typing.nit:241 */ - REGB0 = CALL_syntax___typing___TypingVisitor___explicit_other_init_call(fra.me.REG[3])(fra.me.REG[3]); - if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(1); - } else { - fra.me.REG[1] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[4] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]); - REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[4])); - if (UNTAG_Bool(REGB1)) { - } else { - REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); - REGB1 = REGB2; - } - REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - } else { - /* syntax/typing.nit:244 */ - REGB0 = TAG_Int(0); - /* syntax/typing.nit:245 */ - fra.me.REG[4] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra.me.REG[2])(fra.me.REG[2]); - /* ../lib/standard/collection/array.nit:24 */ - REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); - } - REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]); - /* syntax/typing.nit:246 */ - fra.me.REG[4] = NIT_NULL; - /* syntax/typing.nit:247 */ - fra.me.REG[1] = NIT_NULL; - REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/; - if (UNTAG_Bool(REGB2)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:242 */ - REGB2 = TAG_Bool(UNTAG_Int(REGB0)=UNTAG_Int(REGB3)); - /* ../lib/standard/collection/array.nit:281 */ - if (UNTAG_Bool(REGB3)) { - REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL); - if (UNTAG_Bool(REGB3)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281); - } - REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]); - REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/; - if (UNTAG_Bool(REGB4)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:242 */ - REGB3 = TAG_Bool(UNTAG_Int(REGB2)val[UNTAG_Int(REGB2)]; - /* ../lib/standard/collection/array.nit:282 */ - goto label1; - label1: while(0); - /* syntax/typing.nit:249 */ - fra.me.REG[4] = fra.me.REG[5]; - /* syntax/typing.nit:250 */ - REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB2)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 250); - } - fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[4])(fra.me.REG[4]); - fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[5])(fra.me.REG[5]); - fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[5])(fra.me.REG[5]); - fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___for_module(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); - fra.me.REG[1] = fra.me.REG[6]; - } - /* syntax/typing.nit:252 */ - REGB2 = TAG_Int(0); - /* syntax/typing.nit:253 */ - while(1) { - fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[6])(fra.me.REG[6]); - fra.me.REG[6] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[6])(fra.me.REG[6]); - /* ../lib/standard/collection/array.nit:24 */ - REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL); - if (UNTAG_Bool(REGB3)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); - } - REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]); - REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/; - if (UNTAG_Bool(REGB4)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:242 */ - REGB3 = TAG_Bool(UNTAG_Int(REGB2)=UNTAG_Int(REGB4)); - /* ../lib/standard/collection/array.nit:281 */ - if (UNTAG_Bool(REGB4)) { - REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL); - if (UNTAG_Bool(REGB4)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281); - } - REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]); - REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/; - if (UNTAG_Bool(REGB5)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:242 */ - REGB4 = TAG_Bool(UNTAG_Int(REGB3)val[UNTAG_Int(REGB3)]; - /* ../lib/standard/collection/array.nit:282 */ - goto label2; - label2: while(0); - /* syntax/typing.nit:255 */ - fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]); - REGB3 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[5])(fra.me.REG[5]); - if (UNTAG_Bool(REGB3)) { - REGB3 = TAG_Bool(1); - } else { - fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]); - REGB4 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[5])(fra.me.REG[5]); - REGB3 = REGB4; - } - if (UNTAG_Bool(REGB3)) { - REGB3 = TAG_Bool(1); - } else { - fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]); - REGB4 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[5])(fra.me.REG[5]); - REGB3 = REGB4; - } - if (UNTAG_Bool(REGB3)) { - REGB3 = TAG_Bool(1); - } else { - fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]); - REGB4 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_mixin(fra.me.REG[5])(fra.me.REG[5]); - REGB3 = REGB4; - } - if (UNTAG_Bool(REGB3)) { - /* syntax/typing.nit:256 */ - REGB3 = TAG_Int(1); - /* ../lib/standard/kernel.nit:245 */ - REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3)); - /* syntax/typing.nit:256 */ - REGB2 = REGB3; - } else { - /* syntax/typing.nit:257 */ - REGB3 = TAG_Bool(fra.me.REG[1]==NIT_NULL); - if (UNTAG_Bool(REGB3)) { - } else { - REGB4 = TAG_Bool(fra.me.REG[1]==NIT_NULL); - if (UNTAG_Bool(REGB4)) { - REGB4 = TAG_Bool(0); - REGB3 = REGB4; - } else { - REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL); - REGB3 = REGB4; - } - } - REGB3 = TAG_Bool(!UNTAG_Bool(REGB3)); - if (UNTAG_Bool(REGB3)) { - fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[6])(fra.me.REG[6]); - REGB3 = CALL_metamodel___partial_order___PartialOrderElement_____leq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]); - if (UNTAG_Bool(REGB3)) { - REGB3 = TAG_Bool(1); - } else { - REGB4 = TAG_Bool(fra.me.REG[1]==NIT_NULL); - if (UNTAG_Bool(REGB4)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 257); - } - fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]); - REGB4 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_mixin(fra.me.REG[5])(fra.me.REG[5]); - REGB3 = REGB4; - } - } else { - REGB4 = TAG_Bool(0); - REGB3 = REGB4; - } - if (UNTAG_Bool(REGB3)) { - /* syntax/typing.nit:258 */ - REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[6],fra.me.REG[1])); - if (UNTAG_Bool(REGB3)) { - } else { - REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1]); - REGB3 = REGB4; - } - if (UNTAG_Bool(REGB3)) { - REGB3 = TAG_Int(1); - /* ../lib/standard/kernel.nit:245 */ - REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3)); - /* syntax/typing.nit:258 */ - REGB2 = REGB3; - } - /* syntax/typing.nit:259 */ - fra.me.REG[5] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra.me.REG[2])(fra.me.REG[2]); - REGB3 = TAG_Bool(fra.me.REG[4]!=NIT_NULL); - if (UNTAG_Bool(REGB3)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 259); - } - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); - /* syntax/typing.nit:260 */ - REGB3 = TAG_Int(1); - /* ../lib/standard/kernel.nit:245 */ - REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3)); - /* syntax/typing.nit:260 */ - REGB0 = REGB3; - REGB3 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/; - if (UNTAG_Bool(REGB3)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:242 */ - REGB3 = TAG_Bool(UNTAG_Int(REGB0)=UNTAG_Int(REGB4)); - /* ../lib/standard/collection/array.nit:281 */ - if (UNTAG_Bool(REGB4)) { - REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL); - if (UNTAG_Bool(REGB4)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281); - } - REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]); - REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/; - if (UNTAG_Bool(REGB5)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:242 */ - REGB4 = TAG_Bool(UNTAG_Int(REGB3)val[UNTAG_Int(REGB3)]; - /* ../lib/standard/collection/array.nit:282 */ - goto label3; - label3: while(0); - /* syntax/typing.nit:262 */ - fra.me.REG[4] = fra.me.REG[5]; - /* syntax/typing.nit:263 */ - REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB3)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 263); - } - fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[4])(fra.me.REG[4]); - fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[5])(fra.me.REG[5]); - fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[5])(fra.me.REG[5]); - fra.me.REG[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___for_module(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]); - fra.me.REG[1] = fra.me.REG[7]; - } else { - /* syntax/typing.nit:265 */ - fra.me.REG[4] = NIT_NULL; - /* syntax/typing.nit:266 */ - fra.me.REG[1] = NIT_NULL; - } - } else { - /* syntax/typing.nit:269 */ - fra.me.REG[7] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[7] = CALL_syntax___typing___TypingVisitor___get_default_constructor_for(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6], fra.me.REG[7]); - /* syntax/typing.nit:270 */ - REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL); - if (UNTAG_Bool(REGB3)) { - } else { - REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL); - if (UNTAG_Bool(REGB4)) { - REGB4 = TAG_Bool(0); - REGB3 = REGB4; - } else { - REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL); - REGB3 = REGB4; - } - } - REGB3 = TAG_Bool(!UNTAG_Bool(REGB3)); - if (UNTAG_Bool(REGB3)) { - /* syntax/typing.nit:271 */ - fra.me.REG[6] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra.me.REG[2])(fra.me.REG[2]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); - } - /* syntax/typing.nit:273 */ - REGB3 = TAG_Int(1); - /* ../lib/standard/kernel.nit:245 */ - REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3)); - /* syntax/typing.nit:273 */ - REGB2 = REGB3; - } - } - } else { - /* syntax/typing.nit:253 */ - goto label4; - } - } - label4: while(0); - } - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AExternInitPropdef___accept_typing[] = "typing::AExternInitPropdef::(typing::ANode::accept_typing)"; -void syntax___typing___AExternInitPropdef___accept_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; - val_t REGB0; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 281; - fra.me.meth = LOCATE_syntax___typing___AExternInitPropdef___accept_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 3; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:281 */ - fra.me.REG[2] = fra.me.REG[1]; - /* syntax/typing.nit:283 */ - REGB0 = TAG_Bool(0); - CALL_syntax___typing___TypingVisitor___explicit_other_init_call__eq(fra.me.REG[2])(fra.me.REG[2], REGB0); - /* syntax/typing.nit:284 */ - CALL_SUPER_syntax___typing___AExternInitPropdef___accept_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AExternInitPropdef___after_typing[] = "typing::AExternInitPropdef::(typing::ANode::after_typing)"; -void syntax___typing___AExternInitPropdef___after_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 286; - fra.me.meth = LOCATE_syntax___typing___AExternInitPropdef___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:288 */ - CALL_SUPER_syntax___typing___AExternInitPropdef___after_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___ASignature___after_typing[] = "typing::ASignature::(typing::ANode::after_typing)"; -void syntax___typing___ASignature___after_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; - val_t REGB0; - val_t REGB1; - val_t tmp; - static val_t once_value_1; /* Once value */ - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 293; - fra.me.meth = LOCATE_syntax___typing___ASignature___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 3; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:295 */ - fra.me.REG[2] = CALL_parser___parser_nodes___ASignature___n_opar(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - fra.me.REG[2] = CALL_parser___parser_nodes___ASignature___n_params(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]); - } else { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:296 */ - if (!once_value_1) { - fra.me.REG[2] = BOX_NativeString("Warning: superfluous parentheses."); - REGB0 = TAG_Int(33); - fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(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_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]); - } - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AParam___after_typing[] = "typing::AParam::(typing::ANode::after_typing)"; -void syntax___typing___AParam___after_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 302; - fra.me.meth = LOCATE_syntax___typing___AParam___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:304 */ - fra.me.REG[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[0] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___scope___ScopeContext___add_variable(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AClosureDecl___escapable[] = "typing::AClosureDecl::escapable"; -val_t syntax___typing___AClosureDecl___escapable(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 309; - fra.me.meth = LOCATE_syntax___typing___AClosureDecl___escapable; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:309 */ - fra.me.REG[0] = ATTR_syntax___typing___AClosureDecl____escapable(fra.me.REG[0]); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AClosureDecl___accept_typing[] = "typing::AClosureDecl::(typing::ANode::accept_typing)"; -void syntax___typing___AClosureDecl___accept_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[9];} fra; - val_t REGB0; - val_t REGB1; - val_t REGB2; - 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_syntax___typing; - fra.me.line = 312; - fra.me.meth = LOCATE_syntax___typing___AClosureDecl___accept_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 10; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[5] = NIT_NULL; - fra.me.REG[6] = NIT_NULL; - fra.me.REG[7] = NIT_NULL; - fra.me.REG[8] = NIT_NULL; - fra.me.REG[9] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:312 */ - fra.me.REG[2] = fra.me.REG[0]; - fra.me.REG[3] = fra.me.REG[1]; - /* syntax/typing.nit:315 */ - fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[5] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[2])(fra.me.REG[2]); - CALL_syntax___scope___ScopeContext___add_variable(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); - /* syntax/typing.nit:317 */ - fra.me.REG[5] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[3])(fra.me.REG[3]); - /* syntax/typing.nit:318 */ - fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra.me.REG[3])(fra.me.REG[3]); - /* syntax/typing.nit:319 */ - fra.me.REG[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[3])(fra.me.REG[3]); - CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); - /* syntax/typing.nit:321 */ - fra.me.REG[6] = NIT_NULL; - /* syntax/typing.nit:322 */ - fra.me.REG[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[7])(fra.me.REG[7]); - REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 322); - } - fra.me.REG[7] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[7])(fra.me.REG[7]); - /* syntax/typing.nit:323 */ - REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init(); - fra.me.REG[6] = fra.me.REG[8]; - } - /* syntax/typing.nit:324 */ - fra.me.REG[8] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[8] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[8])(fra.me.REG[8]); - fra.me.REG[8] = NEW_EscapableClosure_syntax___scope___EscapableClosure___init(fra.me.REG[2], fra.me.REG[8], fra.me.REG[6]); - /* syntax/typing.nit:325 */ - ATTR_syntax___typing___AClosureDecl____escapable(fra.me.REG[2]) = fra.me.REG[8]; - /* syntax/typing.nit:326 */ - fra.me.REG[9] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[3])(fra.me.REG[3]); - CALL_syntax___scope___ScopeContext___push_escapable(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[8], NIT_NULL); - /* syntax/typing.nit:328 */ - REGB0 = TAG_Bool(1); - CALL_syntax___typing___TypingVisitor___is_default_closure_definition__eq(fra.me.REG[3])(fra.me.REG[3], REGB0); - /* syntax/typing.nit:330 */ - CALL_SUPER_syntax___typing___AClosureDecl___accept_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - /* syntax/typing.nit:332 */ - REGB0 = TAG_Bool(0); - CALL_syntax___typing___TypingVisitor___is_default_closure_definition__eq(fra.me.REG[3])(fra.me.REG[3], REGB0); - /* syntax/typing.nit:334 */ - fra.me.REG[1] = CALL_parser___parser_nodes___AClosureDecl___n_expr(fra.me.REG[2])(fra.me.REG[2]); - REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:335 */ - fra.me.REG[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[3])(fra.me.REG[3]); - REGB0 = CALL_syntax___flow___FlowContext___unreash(fra.me.REG[1])(fra.me.REG[1]); - REGB1 = TAG_Bool(0); - REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1)); - if (UNTAG_Bool(REGB2)) { - } else { - /* ../lib/standard/kernel.nit:199 */ - REGB1 = TAG_Bool((REGB0)==(REGB1)); - /* syntax/typing.nit:335 */ - REGB2 = REGB1; - } - if (UNTAG_Bool(REGB2)) { - /* syntax/typing.nit:336 */ - fra.me.REG[1] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[1] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[1] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[1] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[1])(fra.me.REG[1]); - REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL); - if (UNTAG_Bool(REGB2)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB2 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL); - REGB2 = REGB1; - } - } - REGB2 = TAG_Bool(!UNTAG_Bool(REGB2)); - if (UNTAG_Bool(REGB2)) { - /* syntax/typing.nit:337 */ - if (!once_value_1) { - fra.me.REG[1] = BOX_NativeString("Control error: Reached end of block (a 'continue' with a value was expected)."); - REGB2 = TAG_Int(77); - fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB2); - once_value_1 = fra.me.REG[1]; - register_static_object(&once_value_1); - } else fra.me.REG[1] = once_value_1; - fra.me.REG[1] = fra.me.REG[1]; - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[1]); - } else { - /* syntax/typing.nit:338 */ - fra.me.REG[1] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[1] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[1])(fra.me.REG[1]); - REGB2 = CALL_metamodel___static_type___MMClosure___is_break(fra.me.REG[1])(fra.me.REG[1]); - if (UNTAG_Bool(REGB2)) { - fra.me.REG[8] = CALL_syntax___scope___EscapableBlock___break_list(fra.me.REG[8])(fra.me.REG[8]); - REGB2 = TAG_Bool(fra.me.REG[8]==NIT_NULL); - if (UNTAG_Bool(REGB2)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB2 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL); - REGB2 = REGB1; - } - } - REGB2 = TAG_Bool(!UNTAG_Bool(REGB2)); - } else { - REGB1 = TAG_Bool(0); - REGB2 = REGB1; - } - if (UNTAG_Bool(REGB2)) { - /* syntax/typing.nit:339 */ - if (!once_value_2) { - fra.me.REG[8] = BOX_NativeString("Control error: Reached end of break block (a 'break' with a value was expected)."); - REGB2 = TAG_Int(80); - fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB2); - once_value_2 = fra.me.REG[8]; - register_static_object(&once_value_2); - } else fra.me.REG[8] = once_value_2; - fra.me.REG[8] = fra.me.REG[8]; - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[8]); - } - } - } - } - /* syntax/typing.nit:343 */ - REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL); - if (UNTAG_Bool(REGB2)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB2 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL); - REGB2 = REGB1; - } - } - REGB2 = TAG_Bool(!UNTAG_Bool(REGB2)); - if (UNTAG_Bool(REGB2)) { - REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL); - if (UNTAG_Bool(REGB2)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 343); - } - /* ../lib/standard/collection/array.nit:270 */ - REGB2 = TAG_Int(0); - /* ../lib/standard/collection/array.nit:271 */ - REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271); - } - REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]); - /* ../lib/standard/collection/array.nit:272 */ - fra.me.REG[8] = ATTR_standard___collection___array___Array____items(fra.me.REG[6]); - /* ../lib/standard/collection/array.nit:273 */ - while(1) { - /* ../lib/standard/collection/array.nit:24 */ - REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); - } - REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]); - REGB0 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/; - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:242 */ - REGB1 = TAG_Bool(UNTAG_Int(REGB2)val[UNTAG_Int(REGB2)]; - /* syntax/typing.nit:344 */ - CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]); - /* ../lib/standard/collection/array.nit:275 */ - REGB1 = TAG_Int(1); - /* ../lib/standard/kernel.nit:245 */ - REGB1 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB1)); - /* ../lib/standard/collection/array.nit:275 */ - REGB2 = REGB1; - } else { - /* ../lib/standard/collection/array.nit:273 */ - goto label3; - } - } - label3: while(0); - } - /* syntax/typing.nit:347 */ - CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]); - /* syntax/typing.nit:348 */ - CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - /* syntax/typing.nit:349 */ - fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[3])(fra.me.REG[3]); - CALL_syntax___scope___ScopeContext___pop(fra.me.REG[3])(fra.me.REG[3]); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AType___stype[] = "typing::AType::(syntax_base::AType::stype)"; -val_t syntax___typing___AType___stype(val_t p0){ - 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_syntax___typing; - fra.me.line = 354; - fra.me.meth = LOCATE_syntax___typing___AType___stype; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:354 */ - fra.me.REG[1] = fra.me.REG[0]; - fra.me.REG[1] = ATTR_syntax___typing___AType____stype(fra.me.REG[1]); - REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 354); - } - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[1]; -} -static const char LOCATE_syntax___typing___AType___is_typed[] = "typing::AType::(syntax_base::AType::is_typed)"; -val_t syntax___typing___AType___is_typed(val_t p0){ - struct {struct stack_frame_t me;} 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_syntax___typing; - fra.me.line = 355; - fra.me.meth = LOCATE_syntax___typing___AType___is_typed; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:355 */ - fra.me.REG[0] = ATTR_syntax___typing___AType____stype(fra.me.REG[0]); - REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return REGB0; -} -static const char LOCATE_syntax___typing___AType___after_typing[] = "typing::AType::(typing::ANode::after_typing)"; -void syntax___typing___AType___after_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 358; - fra.me.meth = LOCATE_syntax___typing___AType___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:360 */ - fra.me.REG[1] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - ATTR_syntax___typing___AType____stype(fra.me.REG[0]) = fra.me.REG[1]; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AExpr___is_typed[] = "typing::AExpr::(syntax_base::AExpr::is_typed)"; -val_t syntax___typing___AExpr___is_typed(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_syntax___typing; - fra.me.line = 365; - fra.me.meth = LOCATE_syntax___typing___AExpr___is_typed; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:365 */ - REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_syntax___typing, 365); - } - REGB0 = ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]); - stack_frame_head = fra.me.prev; - return REGB0; -} -static const char LOCATE_syntax___typing___AExpr___is_statement[] = "typing::AExpr::(syntax_base::AExpr::is_statement)"; -val_t syntax___typing___AExpr___is_statement(val_t p0){ - struct {struct stack_frame_t me;} 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_syntax___typing; - fra.me.line = 366; - fra.me.meth = LOCATE_syntax___typing___AExpr___is_statement; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:366 */ - fra.me.REG[0] = ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]); - REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL); - REGB0 = REGB1; - } - } - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return REGB0; -} -static const char LOCATE_syntax___typing___AExpr___stype[] = "typing::AExpr::(syntax_base::AExpr::stype)"; -val_t syntax___typing___AExpr___stype(val_t p0){ - struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; - val_t REGB0; - val_t tmp; - static val_t once_value_1; /* Once value */ - static val_t once_value_2; /* Once value */ - 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_syntax___typing; - fra.me.line = 367; - fra.me.meth = LOCATE_syntax___typing___AExpr___stype; - fra.me.has_broke = 0; - fra.me.REG_size = 4; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:367 */ - fra.me.REG[1] = fra.me.REG[0]; - /* syntax/typing.nit:369 */ - REGB0 = CALL_syntax___syntax_base___AExpr___is_typed(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:370 */ - REGB0 = TAG_Int(3); - fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_1) { - fra.me.REG[3] = BOX_NativeString(""); - REGB0 = TAG_Int(0); - fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0); - once_value_1 = fra.me.REG[3]; - register_static_object(&once_value_1); - } else fra.me.REG[3] = once_value_1; - fra.me.REG[3] = fra.me.REG[3]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); - fra.me.REG[3] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); - if (!once_value_2) { - fra.me.REG[3] = BOX_NativeString(": not is_typed"); - REGB0 = TAG_Int(14); - fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0); - once_value_2 = fra.me.REG[3]; - register_static_object(&once_value_2); - } else fra.me.REG[3] = once_value_2; - fra.me.REG[3] = fra.me.REG[3]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); - fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); - CALL_standard___file___Object___print(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* syntax/typing.nit:371 */ - nit_abort("Aborted", NULL, LOCATE_syntax___typing, 371); - } - /* syntax/typing.nit:373 */ - REGB0 = CALL_syntax___syntax_base___AExpr___is_statement(fra.me.REG[1])(fra.me.REG[1]); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:374 */ - REGB0 = TAG_Int(3); - fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_3) { - fra.me.REG[3] = BOX_NativeString(""); - REGB0 = TAG_Int(0); - fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0); - 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]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); - fra.me.REG[3] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); - if (!once_value_4) { - fra.me.REG[3] = BOX_NativeString(": is_statement"); - REGB0 = TAG_Int(14); - fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0); - 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]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); - fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); - CALL_standard___file___Object___print(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* syntax/typing.nit:375 */ - nit_abort("Aborted", NULL, LOCATE_syntax___typing, 375); - } - /* syntax/typing.nit:377 */ - fra.me.REG[1] = ATTR_syntax___typing___AExpr____stype(fra.me.REG[1]); - REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 377); - } - goto label5; - label5: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[1]; -} -static const char LOCATE_syntax___typing___AExpr___after_typing[] = "typing::AExpr::(typing::ANode::after_typing)"; -void syntax___typing___AExpr___after_typing(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_syntax___typing; - fra.me.line = 381; - fra.me.meth = LOCATE_syntax___typing___AExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:384 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AExpr___is_implicit_self[] = "typing::AExpr::is_implicit_self"; -val_t syntax___typing___AExpr___is_implicit_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_syntax___typing; - fra.me.line = 387; - fra.me.meth = LOCATE_syntax___typing___AExpr___is_implicit_self; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:388 */ - REGB0 = TAG_Bool(0); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return REGB0; -} -static const char LOCATE_syntax___typing___AExpr___is_self[] = "typing::AExpr::is_self"; -val_t syntax___typing___AExpr___is_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_syntax___typing; - fra.me.line = 390; - fra.me.meth = LOCATE_syntax___typing___AExpr___is_self; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:391 */ - REGB0 = TAG_Bool(0); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return REGB0; -} -static const char LOCATE_syntax___typing___AExpr___its_variable[] = "typing::AExpr::its_variable"; -val_t syntax___typing___AExpr___its_variable(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 393; - fra.me.meth = LOCATE_syntax___typing___AExpr___its_variable; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:394 */ - fra.me.REG[0] = NIT_NULL; - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AExpr___if_true_flow_ctx[] = "typing::AExpr::if_true_flow_ctx"; -val_t syntax___typing___AExpr___if_true_flow_ctx(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 396; - fra.me.meth = LOCATE_syntax___typing___AExpr___if_true_flow_ctx; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:396 */ - fra.me.REG[0] = ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra.me.REG[0]); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AExpr___if_false_flow_ctx[] = "typing::AExpr::if_false_flow_ctx"; -val_t syntax___typing___AExpr___if_false_flow_ctx(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 399; - fra.me.meth = LOCATE_syntax___typing___AExpr___if_false_flow_ctx; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:399 */ - fra.me.REG[0] = ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra.me.REG[0]); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AExpr___warn_parentheses[] = "typing::AExpr::warn_parentheses"; -void syntax___typing___AExpr___warn_parentheses(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 402; - fra.me.meth = LOCATE_syntax___typing___AExpr___warn_parentheses; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AParExpr___warn_parentheses[] = "typing::AParExpr::(typing::AExpr::warn_parentheses)"; -void syntax___typing___AParExpr___warn_parentheses(val_t p0, val_t p1){ - 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 */ - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 409; - fra.me.meth = LOCATE_syntax___typing___AParExpr___warn_parentheses; - fra.me.has_broke = 0; - fra.me.REG_size = 3; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:411 */ - if (!once_value_1) { - fra.me.REG[2] = BOX_NativeString("Warning: superfluous parentheses."); - REGB0 = TAG_Int(33); - fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(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_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AParExprs___after_typing[] = "typing::AParExprs::(typing::ANode::after_typing)"; -void syntax___typing___AParExprs___after_typing(val_t p0, val_t p1){ - 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 */ - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 416; - fra.me.meth = LOCATE_syntax___typing___AParExprs___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 3; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:418 */ - fra.me.REG[2] = CALL_parser___parser_nodes___AExprs___n_exprs(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:419 */ - if (!once_value_1) { - fra.me.REG[2] = BOX_NativeString("Warning: superfluous parentheses."); - REGB0 = TAG_Int(33); - fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(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_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]); - } - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AVardeclExpr___variable[] = "typing::AVardeclExpr::(syntax_base::AVardeclExpr::variable)"; -val_t syntax___typing___AVardeclExpr___variable(val_t p0){ - 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_syntax___typing; - fra.me.line = 426; - fra.me.meth = LOCATE_syntax___typing___AVardeclExpr___variable; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:426 */ - fra.me.REG[1] = fra.me.REG[0]; - fra.me.REG[1] = ATTR_syntax___typing___AVardeclExpr____variable(fra.me.REG[1]); - REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 426); - } - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[1]; -} -static const char LOCATE_syntax___typing___AVardeclExpr___after_typing[] = "typing::AVardeclExpr::(typing::ANode::after_typing)"; -void syntax___typing___AVardeclExpr___after_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[4];} 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_syntax___typing; - fra.me.line = 428; - fra.me.meth = LOCATE_syntax___typing___AVardeclExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 5; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:430 */ - fra.me.REG[2] = CALL_parser___parser_nodes___AVardeclExpr___n_id(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[2] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[3] = CALL_parser___parser_nodes___AVardeclExpr___n_id(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[3] = NEW_VarVariable_syntax___syntax_base___VarVariable___init(fra.me.REG[2], fra.me.REG[3]); - /* syntax/typing.nit:431 */ - ATTR_syntax___typing___AVardeclExpr____variable(fra.me.REG[0]) = fra.me.REG[3]; - /* syntax/typing.nit:432 */ - fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[1])(fra.me.REG[1]); - CALL_syntax___scope___ScopeContext___add_variable(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); - /* syntax/typing.nit:433 */ - fra.me.REG[2] = CALL_parser___parser_nodes___AVardeclExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - /* syntax/typing.nit:434 */ - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - CALL_syntax___typing___TypingVisitor___mark_is_set(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - } - /* syntax/typing.nit:436 */ - fra.me.REG[4] = CALL_parser___parser_nodes___AVardeclExpr___n_type(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:437 */ - fra.me.REG[4] = CALL_parser___parser_nodes___AVardeclExpr___n_type(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 437); - } - REGB0 = CALL_syntax___syntax_base___AType___is_typed(fra.me.REG[4])(fra.me.REG[4]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - goto label1; - } - /* syntax/typing.nit:438 */ - fra.me.REG[4] = CALL_parser___parser_nodes___AVardeclExpr___n_type(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 438); - } - fra.me.REG[4] = CALL_syntax___syntax_base___AType___stype(fra.me.REG[4])(fra.me.REG[4]); - CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - /* syntax/typing.nit:439 */ - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:440 */ - fra.me.REG[4] = CALL_syntax___syntax_base___Variable___stype(fra.me.REG[3])(fra.me.REG[3]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[4]); - } - } else { - /* syntax/typing.nit:442 */ - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:443 */ - REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - goto label1; - } - /* syntax/typing.nit:444 */ - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 444); - } - fra.me.REG[2] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[2])(fra.me.REG[2]); - /* syntax/typing.nit:445 */ - REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/; - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:446 */ - fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[4] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[4])(fra.me.REG[4]); - CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - /* syntax/typing.nit:447 */ - fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[4] = CALL_syntax___flow___FlowContext___sub_with(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]); - CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); - } else { - /* syntax/typing.nit:449 */ - CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); - } - } else { - /* syntax/typing.nit:452 */ - fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[1] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[1])(fra.me.REG[1]); - CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); - } - } - /* syntax/typing.nit:454 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - label1: while(0); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___ABlockExpr___accept_typing[] = "typing::ABlockExpr::(typing::ANode::accept_typing)"; -void syntax___typing___ABlockExpr___accept_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; - val_t REGB0; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 459; - fra.me.meth = LOCATE_syntax___typing___ABlockExpr___accept_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 3; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:461 */ - fra.me.REG[2] = CALL_parser___parser_nodes___ABlockExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_syntax___typing___ABlockExpr___accept_typing_1)); - /* syntax/typing.nit:470 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - stack_frame_head = fra.me.prev; - return; -} - void OC_syntax___typing___ABlockExpr___accept_typing_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[1];} fra; - val_t REGB0; - fun_t CREG[1]; - val_t tmp; - static val_t once_value_2; /* Once value */ - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 0; - fra.me.meth = LOCATE_syntax___typing___ABlockExpr___accept_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = 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:462 */ - fra.me.REG[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(closctx->REG[1])(closctx->REG[1]); - REGB0 = CALL_syntax___flow___FlowContext___unreash(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:463 */ - CALL_parser___parser_nodes___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]); - } else { - /* syntax/typing.nit:464 */ - fra.me.REG[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(closctx->REG[1])(closctx->REG[1]); - REGB0 = CALL_syntax___flow___FlowContext___already_unreash(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:465 */ - fra.me.REG[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(closctx->REG[1])(closctx->REG[1]); - REGB0 = TAG_Bool(1); - CALL_syntax___flow___FlowContext___already_unreash__eq(fra.me.REG[1])(fra.me.REG[1], REGB0); - /* syntax/typing.nit:466 */ - if (!once_value_2) { - fra.me.REG[1] = BOX_NativeString("Error: unreachable statement."); - REGB0 = TAG_Int(29); - fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0); - once_value_2 = fra.me.REG[1]; - register_static_object(&once_value_2); - } else fra.me.REG[1] = once_value_2; - fra.me.REG[1] = fra.me.REG[1]; - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(closctx->REG[1])(closctx->REG[1], fra.me.REG[0], fra.me.REG[1]); - } - } - stack_frame_head = fra.me.prev; - return; - } -static const char LOCATE_syntax___typing___AReturnExpr___after_typing[] = "typing::AReturnExpr::(typing::ANode::after_typing)"; -void syntax___typing___AReturnExpr___after_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[4];} fra; - val_t REGB0; - val_t REGB1; - val_t tmp; - static val_t once_value_1; /* Once value */ - 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_syntax___typing; - fra.me.line = 475; - fra.me.meth = LOCATE_syntax___typing___AReturnExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 5; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:477 */ - CALL_syntax___typing___TypingVisitor___mark_unreash(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - /* syntax/typing.nit:478 */ - fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]); - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 478); - } - fra.me.REG[2] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[2])(fra.me.REG[2]); - /* syntax/typing.nit:480 */ - REGB0 = CALL_syntax___typing___TypingVisitor___is_default_closure_definition(fra.me.REG[1])(fra.me.REG[1]); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:481 */ - if (!once_value_1) { - fra.me.REG[3] = BOX_NativeString("Error: 'return' invalid in default closure definitions. Use 'continue' or 'break'."); - REGB0 = TAG_Int(82); - fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0); - once_value_1 = fra.me.REG[3]; - register_static_object(&once_value_1); - } else fra.me.REG[3] = once_value_1; - fra.me.REG[3] = fra.me.REG[3]; - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]); - /* syntax/typing.nit:482 */ - goto label2; - } - /* syntax/typing.nit:485 */ - fra.me.REG[3] = CALL_parser___parser_nodes___AReturnExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - /* syntax/typing.nit:486 */ - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); - REGB0 = REGB1; - } - } - if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - } else { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:487 */ - if (!once_value_3) { - fra.me.REG[4] = BOX_NativeString("Error: Return without value in a function."); - REGB0 = TAG_Int(42); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_3 = fra.me.REG[4]; - register_static_object(&once_value_3); - } else fra.me.REG[4] = once_value_3; - fra.me.REG[4] = fra.me.REG[4]; - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]); - } else { - /* syntax/typing.nit:488 */ - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); - REGB0 = REGB1; - } - } - } else { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:489 */ - if (!once_value_4) { - fra.me.REG[4] = BOX_NativeString("Error: Return with value in a procedure."); - REGB0 = TAG_Int(40); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_4 = fra.me.REG[4]; - register_static_object(&once_value_4); - } else fra.me.REG[4] = once_value_4; - fra.me.REG[4] = fra.me.REG[4]; - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]); - } else { - /* syntax/typing.nit:490 */ - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - } else { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:491 */ - CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2]); - } - } - } - /* syntax/typing.nit:493 */ - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:494 */ - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 494); - } - CALL_syntax___typing___AExpr___warn_parentheses(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); - } - /* syntax/typing.nit:496 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - label2: while(0); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AContinueExpr___after_typing[] = "typing::AContinueExpr::(typing::ANode::after_typing)"; -void syntax___typing___AContinueExpr___after_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[4];} fra; - val_t REGB0; - val_t REGB1; - val_t tmp; - static val_t once_value_2; /* Once value */ - 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_syntax___typing; - fra.me.line = 501; - fra.me.meth = LOCATE_syntax___typing___AContinueExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 5; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:503 */ - CALL_syntax___typing___TypingVisitor___mark_unreash(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - /* syntax/typing.nit:504 */ - fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[2] = CALL_syntax___scope___AEscapeExpr___compute_escapable_block(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); - /* syntax/typing.nit:505 */ - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); - REGB0 = REGB1; - } - } - if (UNTAG_Bool(REGB0)) { - goto label1; - } - /* syntax/typing.nit:507 */ - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 507); - } - REGB0 = CALL_syntax___scope___EscapableBlock___is_break_block(fra.me.REG[2])(fra.me.REG[2]); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:508 */ - if (!once_value_2) { - fra.me.REG[3] = BOX_NativeString("Error: cannot 'continue', only 'break'."); - REGB0 = TAG_Int(39); - fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0); - once_value_2 = fra.me.REG[3]; - register_static_object(&once_value_2); - } else fra.me.REG[3] = once_value_2; - fra.me.REG[3] = fra.me.REG[3]; - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]); - /* syntax/typing.nit:509 */ - goto label1; - } - /* syntax/typing.nit:512 */ - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 512); - } - fra.me.REG[2] = CALL_syntax___scope___EscapableBlock___continue_stype(fra.me.REG[2])(fra.me.REG[2]); - /* syntax/typing.nit:513 */ - fra.me.REG[3] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - /* syntax/typing.nit:514 */ - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); - REGB0 = REGB1; - } - } - if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - } else { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:515 */ - if (!once_value_3) { - fra.me.REG[4] = BOX_NativeString("Error: continue with a value required in this block."); - REGB0 = TAG_Int(52); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_3 = fra.me.REG[4]; - register_static_object(&once_value_3); - } else fra.me.REG[4] = once_value_3; - fra.me.REG[4] = fra.me.REG[4]; - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]); - } else { - /* syntax/typing.nit:516 */ - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); - REGB0 = REGB1; - } - } - } else { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:517 */ - if (!once_value_4) { - fra.me.REG[4] = BOX_NativeString("Error: continue without value required in this block."); - REGB0 = TAG_Int(53); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_4 = fra.me.REG[4]; - register_static_object(&once_value_4); - } else fra.me.REG[4] = once_value_4; - fra.me.REG[4] = fra.me.REG[4]; - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]); - } else { - /* syntax/typing.nit:518 */ - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - } else { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:519 */ - CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2]); - } - } - } - /* syntax/typing.nit:521 */ - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:522 */ - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 522); - } - CALL_syntax___typing___AExpr___warn_parentheses(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); - } - /* syntax/typing.nit:524 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - label1: while(0); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___ABreakExpr___after_typing[] = "typing::ABreakExpr::(typing::ANode::after_typing)"; -void syntax___typing___ABreakExpr___after_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[4];} fra; - val_t REGB0; - val_t REGB1; - val_t tmp; - static val_t once_value_2; /* Once value */ - static val_t once_value_3; /* Once value */ - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 529; - fra.me.meth = LOCATE_syntax___typing___ABreakExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 5; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:531 */ - fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:532 */ - CALL_syntax___typing___TypingVisitor___mark_unreash(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - /* syntax/typing.nit:533 */ - fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[3] = CALL_syntax___scope___AEscapeExpr___compute_escapable_block(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]); - /* syntax/typing.nit:534 */ - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); - REGB0 = REGB1; - } - } - if (UNTAG_Bool(REGB0)) { - goto label1; - } - /* syntax/typing.nit:536 */ - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 536); - } - fra.me.REG[4] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra.me.REG[3])(fra.me.REG[3]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]); - /* syntax/typing.nit:538 */ - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 538); - } - fra.me.REG[3] = CALL_syntax___scope___EscapableBlock___break_list(fra.me.REG[3])(fra.me.REG[3]); - /* syntax/typing.nit:539 */ - fra.me.REG[2] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - /* syntax/typing.nit:540 */ - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); - REGB0 = REGB1; - } - } - if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - } else { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:541 */ - if (!once_value_2) { - fra.me.REG[4] = BOX_NativeString("Error: break with a value required in this block."); - REGB0 = TAG_Int(49); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_2 = fra.me.REG[4]; - register_static_object(&once_value_2); - } else fra.me.REG[4] = once_value_2; - fra.me.REG[4] = fra.me.REG[4]; - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]); - } else { - /* syntax/typing.nit:542 */ - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); - REGB0 = REGB1; - } - } - } else { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:543 */ - if (!once_value_3) { - fra.me.REG[4] = BOX_NativeString("Error: break without value required in this block."); - REGB0 = TAG_Int(50); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_3 = fra.me.REG[4]; - register_static_object(&once_value_3); - } else fra.me.REG[4] = once_value_3; - fra.me.REG[4] = fra.me.REG[4]; - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]); - } else { - /* syntax/typing.nit:544 */ - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - } else { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:546 */ - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 546); - } - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); - } - } - } - /* syntax/typing.nit:548 */ - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:549 */ - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 549); - } - CALL_syntax___typing___AExpr___warn_parentheses(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); - } - /* syntax/typing.nit:551 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - label1: while(0); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AAbortExpr___after_typing[] = "typing::AAbortExpr::(typing::ANode::after_typing)"; -void syntax___typing___AAbortExpr___after_typing(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_syntax___typing; - fra.me.line = 556; - fra.me.meth = LOCATE_syntax___typing___AAbortExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:558 */ - CALL_syntax___typing___TypingVisitor___mark_unreash(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - /* syntax/typing.nit:559 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AAbsControl___escapable[] = "typing::AAbsControl::escapable"; -val_t syntax___typing___AAbsControl___escapable(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 566; - fra.me.meth = LOCATE_syntax___typing___AAbsControl___escapable; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:566 */ - fra.me.REG[0] = ATTR_syntax___typing___AAbsControl____escapable(fra.me.REG[0]); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AAbsControl___process_control[] = "typing::AAbsControl::process_control"; -void syntax___typing___AAbsControl___process_control(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){ - struct {struct stack_frame_t me; val_t MORE_REG[6];} 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_syntax___typing; - fra.me.line = 569; - fra.me.meth = LOCATE_syntax___typing___AAbsControl___process_control; - fra.me.has_broke = 0; - fra.me.REG_size = 7; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[5] = NIT_NULL; - fra.me.REG[6] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - fra.me.REG[2] = p2; - fra.me.REG[3] = p3; - REGB0 = p4; - /* syntax/typing.nit:573 */ - ATTR_syntax___typing___AAbsControl____escapable(fra.me.REG[0]) = fra.me.REG[2]; - /* syntax/typing.nit:574 */ - fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[1])(fra.me.REG[1]); - CALL_syntax___scope___ScopeContext___push_escapable(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2], fra.me.REG[3]); - /* syntax/typing.nit:577 */ - fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:578 */ - fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:579 */ - if (UNTAG_Bool(REGB0)) { - fra.me.REG[5] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]); - } - /* syntax/typing.nit:582 */ - CALL_syntax___typing___AAbsControl___process_control_inside(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - /* syntax/typing.nit:585 */ - fra.me.REG[5] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - REGB1 = CALL_syntax___flow___FlowContext___unreash(fra.me.REG[5])(fra.me.REG[5]); - REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); - if (UNTAG_Bool(REGB1)) { - /* syntax/typing.nit:586 */ - fra.me.REG[5] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); - } - /* syntax/typing.nit:590 */ - fra.me.REG[6] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra.me.REG[2])(fra.me.REG[2]); - REGB1 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[6])(fra.me.REG[6]); - if (UNTAG_Bool(REGB1)) { - /* syntax/typing.nit:591 */ - CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - /* syntax/typing.nit:592 */ - CALL_syntax___typing___TypingVisitor___mark_unreash(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - } else { - /* syntax/typing.nit:594 */ - fra.me.REG[2] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[2] = CALL_syntax___flow___FlowContext___merge(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0], fra.me.REG[2]); - CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - } - /* syntax/typing.nit:597 */ - if (UNTAG_Bool(REGB0)) { - CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); - } - /* syntax/typing.nit:598 */ - fra.me.REG[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[1])(fra.me.REG[1]); - CALL_syntax___scope___ScopeContext___pop(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:599 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AAbsControl___process_control_inside[] = "typing::AAbsControl::process_control_inside"; -void syntax___typing___AAbsControl___process_control_inside(val_t p0, val_t p1){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 602; - fra.me.meth = LOCATE_syntax___typing___AAbsControl___process_control_inside; - fra.me.has_broke = 0; - fra.me.REG_size = 0; - fra.me.nitni_local_ref_head = NULL; - /* syntax/typing.nit:602 */ - nit_abort("Deferred method called", NULL, LOCATE_syntax___typing, 602); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___ADoExpr___accept_typing[] = "typing::ADoExpr::(typing::ANode::accept_typing)"; -void syntax___typing___ADoExpr___accept_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; - val_t REGB0; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 608; - fra.me.meth = LOCATE_syntax___typing___ADoExpr___accept_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 4; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:610 */ - fra.me.REG[2] = NEW_BreakOnlyEscapableBlock_syntax___scope___BreakOnlyEscapableBlock___init(fra.me.REG[0]); - fra.me.REG[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = TAG_Bool(0); - CALL_syntax___typing___AAbsControl___process_control(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], REGB0); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___ADoExpr___process_control_inside[] = "typing::ADoExpr::(typing::AAbsControl::process_control_inside)"; -void syntax___typing___ADoExpr___process_control_inside(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 613; - fra.me.meth = LOCATE_syntax___typing___ADoExpr___process_control_inside; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:615 */ - fra.me.REG[0] = CALL_parser___parser_nodes___ADoExpr___n_block(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___typing___TypingVisitor___enter_visit_block(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AIfExpr___accept_typing[] = "typing::AIfExpr::(typing::ANode::accept_typing)"; -void syntax___typing___AIfExpr___accept_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[4];} fra; - val_t REGB0; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 620; - fra.me.meth = LOCATE_syntax___typing___AIfExpr___accept_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 5; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:622 */ - fra.me.REG[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - CALL_parser___parser_nodes___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* syntax/typing.nit:623 */ - fra.me.REG[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra.me.REG[1])(fra.me.REG[1]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]); - /* syntax/typing.nit:625 */ - fra.me.REG[3] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___typing___AExpr___warn_parentheses(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); - /* syntax/typing.nit:628 */ - fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:629 */ - fra.me.REG[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* syntax/typing.nit:632 */ - fra.me.REG[2] = CALL_parser___parser_nodes___AIfExpr___n_then(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___typing___TypingVisitor___enter_visit_block(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* syntax/typing.nit:635 */ - fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:638 */ - CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - /* syntax/typing.nit:639 */ - fra.me.REG[3] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - /* syntax/typing.nit:642 */ - fra.me.REG[3] = CALL_parser___parser_nodes___AIfExpr___n_else(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___typing___TypingVisitor___enter_visit_block(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - /* syntax/typing.nit:645 */ - fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[4] = CALL_syntax___flow___FlowContext___merge_reash(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0], fra.me.REG[2], fra.me.REG[4]); - CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); - /* syntax/typing.nit:646 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AWhileExpr___accept_typing[] = "typing::AWhileExpr::(typing::ANode::accept_typing)"; -void syntax___typing___AWhileExpr___accept_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; - val_t REGB0; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 652; - fra.me.meth = LOCATE_syntax___typing___AWhileExpr___accept_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 4; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:654 */ - fra.me.REG[2] = NEW_EscapableBlock_syntax___scope___EscapableBlock___init(fra.me.REG[0]); - fra.me.REG[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = TAG_Bool(1); - CALL_syntax___typing___AAbsControl___process_control(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], REGB0); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AWhileExpr___process_control_inside[] = "typing::AWhileExpr::(typing::AAbsControl::process_control_inside)"; -void syntax___typing___AWhileExpr___process_control_inside(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[4];} fra; - val_t REGB0; - val_t tmp; - static val_t once_value_1; /* Once value */ - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 657; - fra.me.meth = LOCATE_syntax___typing___AWhileExpr___process_control_inside; - fra.me.has_broke = 0; - fra.me.REG_size = 5; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:659 */ - fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:662 */ - fra.me.REG[3] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - CALL_parser___parser_nodes___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - /* syntax/typing.nit:663 */ - fra.me.REG[3] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra.me.REG[1])(fra.me.REG[1]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[4]); - /* syntax/typing.nit:665 */ - fra.me.REG[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ATrueExpr, ID_parser___parser_nodes___ATrueExpr)) /*cast ATrueExpr*/; - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:666 */ - if (!once_value_1) { - fra.me.REG[4] = BOX_NativeString("Warning: use 'loop' instead of 'while true do'."); - REGB0 = TAG_Int(47); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_1 = fra.me.REG[4]; - register_static_object(&once_value_1); - } else fra.me.REG[4] = once_value_1; - fra.me.REG[4] = fra.me.REG[4]; - CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]); - } else { - /* syntax/typing.nit:668 */ - fra.me.REG[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___typing___AExpr___warn_parentheses(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]); - } - /* syntax/typing.nit:672 */ - fra.me.REG[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); - /* syntax/typing.nit:675 */ - fra.me.REG[4] = CALL_parser___parser_nodes___AWhileExpr___n_block(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___typing___TypingVisitor___enter_visit_block(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); - /* syntax/typing.nit:678 */ - CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* syntax/typing.nit:679 */ - fra.me.REG[2] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* syntax/typing.nit:680 */ - fra.me.REG[0] = CALL_syntax___typing___AAbsControl___escapable(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 680); - } - fra.me.REG[0] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___ALoopExpr___accept_typing[] = "typing::ALoopExpr::(typing::ANode::accept_typing)"; -void syntax___typing___ALoopExpr___accept_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; - val_t REGB0; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 686; - fra.me.meth = LOCATE_syntax___typing___ALoopExpr___accept_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 4; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:688 */ - fra.me.REG[2] = NEW_EscapableBlock_syntax___scope___EscapableBlock___init(fra.me.REG[0]); - fra.me.REG[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = TAG_Bool(1); - CALL_syntax___typing___AAbsControl___process_control(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], REGB0); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___ALoopExpr___process_control_inside[] = "typing::ALoopExpr::(typing::AAbsControl::process_control_inside)"; -void syntax___typing___ALoopExpr___process_control_inside(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 691; - fra.me.meth = LOCATE_syntax___typing___ALoopExpr___process_control_inside; - fra.me.has_broke = 0; - fra.me.REG_size = 3; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:694 */ - fra.me.REG[2] = CALL_parser___parser_nodes___ALoopExpr___n_block(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___typing___TypingVisitor___enter_visit_block(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* syntax/typing.nit:697 */ - CALL_syntax___typing___TypingVisitor___mark_unreash(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AForExpr___variables[] = "typing::AForExpr::(syntax_base::AForExpr::variables)"; -val_t syntax___typing___AForExpr___variables(val_t p0){ - 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_syntax___typing; - fra.me.line = 704; - fra.me.meth = LOCATE_syntax___typing___AForExpr___variables; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:704 */ - fra.me.REG[1] = fra.me.REG[0]; - fra.me.REG[1] = ATTR_syntax___typing___AForExpr____variables(fra.me.REG[1]); - REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 704); - } - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[1]; -} -static const char LOCATE_syntax___typing___AForExpr___accept_typing[] = "typing::AForExpr::(typing::ANode::accept_typing)"; -void syntax___typing___AForExpr___accept_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; - val_t REGB0; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 706; - fra.me.meth = LOCATE_syntax___typing___AForExpr___accept_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 4; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:708 */ - fra.me.REG[2] = NEW_EscapableBlock_syntax___scope___EscapableBlock___init(fra.me.REG[0]); - fra.me.REG[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = TAG_Bool(1); - CALL_syntax___typing___AAbsControl___process_control(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], REGB0); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AForExpr___process_control_inside[] = "typing::AForExpr::(typing::AAbsControl::process_control_inside)"; -void syntax___typing___AForExpr___process_control_inside(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 711; - fra.me.meth = LOCATE_syntax___typing___AForExpr___process_control_inside; - fra.me.has_broke = 0; - fra.me.REG_size = 3; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:713 */ - fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[1])(fra.me.REG[1]); - CALL_syntax___scope___ScopeContext___push(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); - /* syntax/typing.nit:714 */ - fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:716 */ - CALL_syntax___typing___AForExpr___do_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - /* syntax/typing.nit:719 */ - fra.me.REG[0] = CALL_parser___parser_nodes___AForExpr___n_block(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___typing___TypingVisitor___enter_visit_block(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - /* syntax/typing.nit:722 */ - CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* syntax/typing.nit:723 */ - fra.me.REG[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[1])(fra.me.REG[1]); - CALL_syntax___scope___ScopeContext___pop(fra.me.REG[1])(fra.me.REG[1]); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AForExpr___do_typing[] = "typing::AForExpr::do_typing"; -void syntax___typing___AForExpr___do_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[7];} fra; - val_t REGB0; - val_t REGB1; - val_t REGB2; - val_t REGB3; - val_t REGB4; - val_t REGB5; - val_t tmp; - static val_t once_value_3; /* Once value */ - static val_t once_value_4; /* Once value */ - static val_t once_value_5; /* Once value */ - static val_t once_value_6; /* Once value */ - static val_t once_value_7; /* Once value */ - static val_t once_value_8; /* Once value */ - static val_t once_value_9; /* Once value */ - static val_t once_value_10; /* Once value */ - static val_t once_value_11; /* Once value */ - static val_t once_value_12; /* Once value */ - static val_t once_value_13; /* Once value */ - static val_t once_value_14; /* Once value */ - static val_t once_value_15; /* Once value */ - static val_t once_value_16; /* Once value */ - static val_t once_value_17; /* Once value */ - static val_t once_value_18; /* Once value */ - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 726; - fra.me.meth = LOCATE_syntax___typing___AForExpr___do_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 8; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[5] = NIT_NULL; - fra.me.REG[6] = NIT_NULL; - fra.me.REG[7] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:729 */ - fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init(); - /* syntax/typing.nit:730 */ - fra.me.REG[3] = CALL_parser___parser_nodes___AForExpr___n_ids(fra.me.REG[0])(fra.me.REG[0]); - CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_syntax___typing___AForExpr___do_typing_1)); - /* syntax/typing.nit:735 */ - ATTR_syntax___typing___AForExpr____variables(fra.me.REG[0]) = fra.me.REG[2]; - /* syntax/typing.nit:738 */ - fra.me.REG[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - CALL_parser___parser_nodes___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - /* syntax/typing.nit:739 */ - fra.me.REG[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - goto label2; - } - /* syntax/typing.nit:740 */ - fra.me.REG[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[3] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[3])(fra.me.REG[3]); - /* syntax/typing.nit:742 */ - REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:743 */ - fra.me.REG[4] = CALL_parser___parser_nodes___AForExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - if (!once_value_3) { - fra.me.REG[5] = BOX_NativeString("Type error: 'for' on a nullable expression."); - REGB0 = TAG_Int(43); - fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0); - once_value_3 = fra.me.REG[5]; - register_static_object(&once_value_3); - } else fra.me.REG[5] = once_value_3; - fra.me.REG[5] = fra.me.REG[5]; - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[5]); - /* syntax/typing.nit:744 */ - goto label2; - } - /* syntax/typing.nit:746 */ - fra.me.REG[5] = CALL_parser___parser_nodes___AForExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___typing___AExpr___warn_parentheses(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]); - /* syntax/typing.nit:749 */ - if (!once_value_4) { - if (!once_value_5) { - fra.me.REG[5] = BOX_NativeString("iterate"); - REGB0 = TAG_Int(7); - fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0); - once_value_5 = fra.me.REG[5]; - register_static_object(&once_value_5); - } else fra.me.REG[5] = once_value_5; - fra.me.REG[5] = fra.me.REG[5]; - fra.me.REG[5] = CALL_symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]); - once_value_4 = fra.me.REG[5]; - register_static_object(&once_value_4); - } else fra.me.REG[5] = once_value_4; - fra.me.REG[5] = fra.me.REG[5]; - /* syntax/typing.nit:750 */ - fra.me.REG[4] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]); - REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:751 */ - fra.me.REG[4] = CALL_parser___parser_nodes___AForExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = TAG_Int(3); - fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_6) { - fra.me.REG[7] = BOX_NativeString("Type error: Expected a type with an 'iterate' method. Found "); - REGB0 = TAG_Int(60); - fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB0); - once_value_6 = fra.me.REG[7]; - register_static_object(&once_value_6); - } else fra.me.REG[7] = once_value_6; - fra.me.REG[7] = fra.me.REG[7]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); - fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); - if (!once_value_7) { - fra.me.REG[7] = BOX_NativeString("."); - REGB0 = TAG_Int(1); - fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB0); - once_value_7 = fra.me.REG[7]; - register_static_object(&once_value_7); - } else fra.me.REG[7] = once_value_7; - fra.me.REG[7] = fra.me.REG[7]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); - fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[6]); - /* syntax/typing.nit:752 */ - goto label2; - } - /* syntax/typing.nit:754 */ - fra.me.REG[6] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]); - /* syntax/typing.nit:755 */ - fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[5])(fra.me.REG[5]); - fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[7] = CALL_parser___parser_nodes___AForExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = CALL_syntax___typing___AExpr___is_self(fra.me.REG[7])(fra.me.REG[7]); - CALL_syntax___syntax_base___MMGlobalProperty___check_visibility(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1], fra.me.REG[0], fra.me.REG[4], REGB0); - /* syntax/typing.nit:756 */ - fra.me.REG[3] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]); - /* syntax/typing.nit:757 */ - fra.me.REG[5] = CALL_parser___parser_nodes___AForExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = CALL_syntax___typing___AExpr___is_self(fra.me.REG[5])(fra.me.REG[5]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___not_for_self(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[3] = fra.me.REG[5]; - } - /* syntax/typing.nit:758 */ - REGB0 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[3])(fra.me.REG[3]); - REGB1 = TAG_Int(0); - REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1)); - if (UNTAG_Bool(REGB2)) { - } else { - /* ../lib/standard/kernel.nit:237 */ - REGB1 = TAG_Bool((REGB0)==(REGB1)); - /* syntax/typing.nit:758 */ - REGB2 = REGB1; - } - REGB2 = TAG_Bool(!UNTAG_Bool(REGB2)); - if (UNTAG_Bool(REGB2)) { - /* syntax/typing.nit:759 */ - if (!once_value_8) { - fra.me.REG[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require no arguments."); - REGB2 = TAG_Int(63); - fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2); - once_value_8 = fra.me.REG[5]; - register_static_object(&once_value_8); - } else fra.me.REG[5] = once_value_8; - fra.me.REG[5] = fra.me.REG[5]; - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]); - /* syntax/typing.nit:760 */ - goto label2; - } else { - /* syntax/typing.nit:761 */ - fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[3])(fra.me.REG[3]); - /* ../lib/standard/collection/array.nit:24 */ - REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL); - if (UNTAG_Bool(REGB2)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); - } - REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]); - /* syntax/typing.nit:761 */ - REGB1 = TAG_Int(1); - REGB0 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1)); - if (UNTAG_Bool(REGB0)) { - } else { - /* ../lib/standard/kernel.nit:237 */ - REGB1 = TAG_Bool((REGB2)==(REGB1)); - /* syntax/typing.nit:761 */ - REGB0 = REGB1; - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:762 */ - if (!once_value_9) { - fra.me.REG[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require one closure."); - REGB0 = TAG_Int(62); - fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0); - once_value_9 = fra.me.REG[5]; - register_static_object(&once_value_9); - } else fra.me.REG[5] = once_value_9; - fra.me.REG[5] = fra.me.REG[5]; - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]); - /* syntax/typing.nit:763 */ - goto label2; - } - } - /* syntax/typing.nit:765 */ - fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[5] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[5])(fra.me.REG[5]); - REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 765); - } - fra.me.REG[5] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[5])(fra.me.REG[5]); - fra.me.REG[3] = fra.me.REG[5]; - /* syntax/typing.nit:766 */ - fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[3])(fra.me.REG[3]); - REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:767 */ - if (!once_value_10) { - fra.me.REG[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require one procedural closure."); - REGB0 = TAG_Int(73); - fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0); - once_value_10 = fra.me.REG[5]; - register_static_object(&once_value_10); - } else fra.me.REG[5] = once_value_10; - fra.me.REG[5] = fra.me.REG[5]; - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]); - /* syntax/typing.nit:768 */ - goto label2; - } - /* ../lib/standard/collection/array.nit:24 */ - REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); - } - REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]); - /* syntax/typing.nit:770 */ - REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[3])(fra.me.REG[3]); - REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1)); - if (UNTAG_Bool(REGB2)) { - } else { - /* ../lib/standard/kernel.nit:237 */ - REGB1 = TAG_Bool((REGB0)==(REGB1)); - /* syntax/typing.nit:770 */ - REGB2 = REGB1; - } - REGB2 = TAG_Bool(!UNTAG_Bool(REGB2)); - if (UNTAG_Bool(REGB2)) { - /* syntax/typing.nit:771 */ - REGB2 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[3])(fra.me.REG[3]); - REGB1 = TAG_Int(1); - REGB0 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1)); - if (UNTAG_Bool(REGB0)) { - } else { - /* ../lib/standard/kernel.nit:237 */ - REGB1 = TAG_Bool((REGB2)==(REGB1)); - /* syntax/typing.nit:771 */ - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:772 */ - REGB0 = TAG_Int(7); - fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_11) { - fra.me.REG[4] = BOX_NativeString("Error: Expected "); - REGB0 = TAG_Int(16); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_11 = fra.me.REG[4]; - register_static_object(&once_value_11); - } else fra.me.REG[4] = once_value_11; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); - REGB0 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); - if (!once_value_12) { - fra.me.REG[4] = BOX_NativeString(" variable "); - REGB0 = TAG_Int(10); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_12 = fra.me.REG[4]; - register_static_object(&once_value_12); - } else fra.me.REG[4] = once_value_12; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); - fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); - if (!once_value_13) { - fra.me.REG[4] = BOX_NativeString(", found "); - REGB0 = TAG_Int(8); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_13 = fra.me.REG[4]; - register_static_object(&once_value_13); - } else fra.me.REG[4] = once_value_13; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); - /* ../lib/standard/collection/array.nit:24 */ - REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); - } - REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]); - /* syntax/typing.nit:772 */ - fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); - if (!once_value_14) { - fra.me.REG[4] = BOX_NativeString("."); - REGB0 = TAG_Int(1); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_14 = fra.me.REG[4]; - register_static_object(&once_value_14); - } else fra.me.REG[4] = once_value_14; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); - fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]); - } else { - /* syntax/typing.nit:774 */ - REGB0 = TAG_Int(7); - fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_15) { - fra.me.REG[4] = BOX_NativeString("Error: Expected "); - REGB0 = TAG_Int(16); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_15 = fra.me.REG[4]; - register_static_object(&once_value_15); - } else fra.me.REG[4] = once_value_15; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); - REGB0 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); - if (!once_value_16) { - fra.me.REG[4] = BOX_NativeString(" variables "); - REGB0 = TAG_Int(11); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_16 = fra.me.REG[4]; - register_static_object(&once_value_16); - } else fra.me.REG[4] = once_value_16; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); - fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); - if (!once_value_17) { - fra.me.REG[4] = BOX_NativeString(", found "); - REGB0 = TAG_Int(8); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_17 = fra.me.REG[4]; - register_static_object(&once_value_17); - } else fra.me.REG[4] = once_value_17; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); - /* ../lib/standard/collection/array.nit:24 */ - REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); - } - REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]); - /* syntax/typing.nit:774 */ - fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); - if (!once_value_18) { - fra.me.REG[4] = BOX_NativeString("."); - REGB0 = TAG_Int(1); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_18 = fra.me.REG[4]; - register_static_object(&once_value_18); - } else fra.me.REG[4] = once_value_18; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); - fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]); - } - /* syntax/typing.nit:776 */ - goto label2; - } - /* syntax/typing.nit:780 */ - REGB0 = TAG_Int(0); - /* ../lib/standard/collection/array.nit:24 */ - REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); - } - REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]); - /* ../lib/standard/kernel.nit:404 */ - while(1) { - REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/; - if (UNTAG_Bool(REGB2)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:242 */ - REGB2 = TAG_Bool(UNTAG_Int(REGB0)=UNTAG_Int(REGB4)); - /* ../lib/standard/collection/array.nit:281 */ - if (UNTAG_Bool(REGB4)) { - REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL); - if (UNTAG_Bool(REGB4)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281); - } - REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]); - REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/; - if (UNTAG_Bool(REGB5)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:242 */ - REGB4 = TAG_Bool(UNTAG_Int(REGB3)val[UNTAG_Int(REGB3)]; - /* ../lib/standard/collection/array.nit:282 */ - goto label19; - label19: while(0); - /* syntax/typing.nit:781 */ - fra.me.REG[0] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2); - REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL); - if (UNTAG_Bool(REGB2)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 781); - } - CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]); - /* ../lib/standard/kernel.nit:406 */ - REGB2 = TAG_Int(1); - /* ../lib/standard/kernel.nit:245 */ - REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2)); - /* ../lib/standard/kernel.nit:406 */ - REGB0 = REGB2; - } else { - /* ../lib/standard/kernel.nit:404 */ - goto label20; - } - } - label20: while(0); - label2: while(0); - stack_frame_head = fra.me.prev; - return; -} - void OC_syntax___typing___AForExpr___do_typing_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[1];} fra; - fun_t CREG[1]; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 0; - fra.me.meth = LOCATE_syntax___typing___AForExpr___do_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = 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:731 */ - fra.me.REG[1] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = NEW_AutoVariable_syntax___syntax_base___AutoVariable___init(fra.me.REG[1], fra.me.REG[0]); - /* syntax/typing.nit:732 */ - fra.me.REG[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(closctx->REG[1])(closctx->REG[1]); - CALL_syntax___scope___ScopeContext___add_variable(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - /* syntax/typing.nit:733 */ - CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]); - stack_frame_head = fra.me.prev; - return; - } -static const char LOCATE_syntax___typing___AAssertExpr___accept_typing[] = "typing::AAssertExpr::(typing::ANode::accept_typing)"; -void syntax___typing___AAssertExpr___accept_typing(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_syntax___typing; - fra.me.line = 787; - fra.me.meth = LOCATE_syntax___typing___AAssertExpr___accept_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 4; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:790 */ - fra.me.REG[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - CALL_parser___parser_nodes___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* syntax/typing.nit:791 */ - fra.me.REG[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra.me.REG[1])(fra.me.REG[1]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]); - /* syntax/typing.nit:792 */ - fra.me.REG[3] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___typing___AExpr___warn_parentheses(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); - /* syntax/typing.nit:795 */ - fra.me.REG[3] = CALL_parser___parser_nodes___AAssertExpr___n_else(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:796 */ - fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:797 */ - fra.me.REG[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* syntax/typing.nit:798 */ - fra.me.REG[2] = CALL_parser___parser_nodes___AAssertExpr___n_else(fra.me.REG[0])(fra.me.REG[0]); - CALL_parser___parser_nodes___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* syntax/typing.nit:799 */ - CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - } - /* syntax/typing.nit:803 */ - fra.me.REG[3] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - /* syntax/typing.nit:804 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AVarFormExpr___variable[] = "typing::AVarFormExpr::(syntax_base::AVarFormExpr::variable)"; -val_t syntax___typing___AVarFormExpr___variable(val_t p0){ - 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_syntax___typing; - fra.me.line = 810; - fra.me.meth = LOCATE_syntax___typing___AVarFormExpr___variable; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:810 */ - fra.me.REG[1] = fra.me.REG[0]; - fra.me.REG[1] = ATTR_syntax___typing___AVarFormExpr____variable(fra.me.REG[1]); - REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 810); - } - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[1]; -} -static const char LOCATE_syntax___typing___AVarExpr___its_variable[] = "typing::AVarExpr::(typing::AExpr::its_variable)"; -val_t syntax___typing___AVarExpr___its_variable(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 814; - fra.me.meth = LOCATE_syntax___typing___AVarExpr___its_variable; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:814 */ - fra.me.REG[0] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra.me.REG[0])(fra.me.REG[0]); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AVarExpr___after_typing[] = "typing::AVarExpr::(typing::ANode::after_typing)"; -void syntax___typing___AVarExpr___after_typing(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_syntax___typing; - fra.me.line = 816; - fra.me.meth = LOCATE_syntax___typing___AVarExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 4; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:818 */ - fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___flow___FlowContext___check_is_set(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], fra.me.REG[3]); - /* syntax/typing.nit:819 */ - fra.me.REG[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[3] = CALL_syntax___flow___FlowContext___stype(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[3]; - /* syntax/typing.nit:820 */ - fra.me.REG[3] = ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]); - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AVarAssignExpr___after_typing[] = "typing::AVarAssignExpr::(typing::ANode::after_typing)"; -void syntax___typing___AVarAssignExpr___after_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[4];} 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_syntax___typing; - fra.me.line = 825; - fra.me.meth = LOCATE_syntax___typing___AVarAssignExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 5; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:827 */ - fra.me.REG[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___typing___TypingVisitor___mark_is_set(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* syntax/typing.nit:830 */ - fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[3] = CALL_syntax___flow___FlowContext___stype(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); - /* syntax/typing.nit:831 */ - fra.me.REG[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - goto label1; - } - /* syntax/typing.nit:832 */ - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - fra.me.REG[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - } else { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - goto label1; - } - /* syntax/typing.nit:835 */ - fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[4] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[4] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[4])(fra.me.REG[4]); - fra.me.REG[4] = CALL_syntax___flow___FlowContext___sub_with(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0], fra.me.REG[2], fra.me.REG[4]); - CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); - /* syntax/typing.nit:837 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - label1: while(0); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AReassignFormExpr___do_rvalue_typing[] = "typing::AReassignFormExpr::do_rvalue_typing"; -val_t syntax___typing___AReassignFormExpr___do_rvalue_typing(val_t p0, val_t p1, val_t p2){ - struct {struct stack_frame_t me; val_t MORE_REG[7];} fra; - val_t REGB0; - val_t REGB1; - val_t tmp; - static val_t once_value_2; /* Once value */ - static val_t once_value_3; /* Once value */ - static val_t once_value_4; /* Once value */ - static val_t once_value_5; /* Once value */ - static val_t once_value_6; /* Once value */ - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 842; - fra.me.meth = LOCATE_syntax___typing___AReassignFormExpr___do_rvalue_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 8; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[5] = NIT_NULL; - fra.me.REG[6] = NIT_NULL; - fra.me.REG[7] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - fra.me.REG[2] = p2; - /* syntax/typing.nit:847 */ - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); - REGB0 = REGB1; - } - } - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:848 */ - fra.me.REG[3] = NIT_NULL; - goto label1; - } - /* syntax/typing.nit:850 */ - fra.me.REG[4] = CALL_parser___parser_nodes___AReassignFormExpr___n_assign_op(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[4] = CALL_syntax___typing___AAssignOp___method_name(fra.me.REG[4])(fra.me.REG[4]); - /* syntax/typing.nit:851 */ - REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/; - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:852 */ - REGB0 = TAG_Int(3); - fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_2) { - fra.me.REG[6] = BOX_NativeString("Error: Method '"); - REGB0 = TAG_Int(15); - fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0); - once_value_2 = fra.me.REG[6]; - register_static_object(&once_value_2); - } else fra.me.REG[6] = once_value_2; - fra.me.REG[6] = fra.me.REG[6]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); - fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); - if (!once_value_3) { - fra.me.REG[6] = BOX_NativeString("' call on 'null'."); - REGB0 = TAG_Int(17); - fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0); - once_value_3 = fra.me.REG[6]; - register_static_object(&once_value_3); - } else fra.me.REG[6] = once_value_3; - fra.me.REG[6] = fra.me.REG[6]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); - fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]); - /* syntax/typing.nit:853 */ - fra.me.REG[3] = NIT_NULL; - goto label1; - } - /* syntax/typing.nit:855 */ - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 855); - } - fra.me.REG[5] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[2])(fra.me.REG[2]); - /* syntax/typing.nit:856 */ - REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:857 */ - REGB0 = TAG_Int(5); - fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_4) { - fra.me.REG[7] = BOX_NativeString("Error: Method '"); - REGB0 = TAG_Int(15); - fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB0); - once_value_4 = fra.me.REG[7]; - register_static_object(&once_value_4); - } else fra.me.REG[7] = once_value_4; - fra.me.REG[7] = fra.me.REG[7]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); - fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); - if (!once_value_5) { - fra.me.REG[7] = BOX_NativeString("' doesn't exists in "); - REGB0 = TAG_Int(20); - fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB0); - once_value_5 = fra.me.REG[7]; - register_static_object(&once_value_5); - } else fra.me.REG[7] = once_value_5; - fra.me.REG[7] = fra.me.REG[7]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); - fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); - if (!once_value_6) { - fra.me.REG[7] = BOX_NativeString("."); - REGB0 = TAG_Int(1); - fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB0); - once_value_6 = fra.me.REG[7]; - register_static_object(&once_value_6); - } else fra.me.REG[7] = once_value_6; - fra.me.REG[7] = fra.me.REG[7]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); - fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[6]); - /* syntax/typing.nit:858 */ - fra.me.REG[3] = NIT_NULL; - goto label1; - } - /* syntax/typing.nit:860 */ - fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); - /* syntax/typing.nit:861 */ - fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[4])(fra.me.REG[4]); - fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(0); - CALL_syntax___syntax_base___MMGlobalProperty___check_visibility(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1], fra.me.REG[0], fra.me.REG[6], REGB0); - /* syntax/typing.nit:862 */ - fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]); - /* syntax/typing.nit:863 */ - ATTR_syntax___typing___AReassignFormExpr____assign_method(fra.me.REG[0]) = fra.me.REG[4]; - /* syntax/typing.nit:864 */ - fra.me.REG[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = TAG_Int(0); - fra.me.REG[4] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[2])(fra.me.REG[2], REGB0); - fra.me.REG[4] = CALL_metamodel___static_type___MMType___not_for_self(fra.me.REG[4])(fra.me.REG[4]); - REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - fra.me.REG[3] = NIT_NULL; - goto label1; - } - /* syntax/typing.nit:865 */ - fra.me.REG[2] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[2])(fra.me.REG[2]); - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 865); - } - fra.me.REG[2] = CALL_metamodel___static_type___MMType___not_for_self(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[3] = fra.me.REG[2]; - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[3]; -} -static const char LOCATE_syntax___typing___AReassignFormExpr___assign_method[] = "typing::AReassignFormExpr::(syntax_base::AReassignFormExpr::assign_method)"; -val_t syntax___typing___AReassignFormExpr___assign_method(val_t p0){ - 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_syntax___typing; - fra.me.line = 868; - fra.me.meth = LOCATE_syntax___typing___AReassignFormExpr___assign_method; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:868 */ - fra.me.REG[1] = fra.me.REG[0]; - fra.me.REG[1] = ATTR_syntax___typing___AReassignFormExpr____assign_method(fra.me.REG[1]); - REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 868); - } - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[1]; -} -static const char LOCATE_syntax___typing___AVarReassignExpr___after_typing[] = "typing::AVarReassignExpr::(typing::ANode::after_typing)"; -void syntax___typing___AVarReassignExpr___after_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[4];} 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_syntax___typing; - fra.me.line = 873; - fra.me.meth = LOCATE_syntax___typing___AVarReassignExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 5; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:875 */ - fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___flow___FlowContext___check_is_set(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], fra.me.REG[3]); - /* syntax/typing.nit:876 */ - fra.me.REG[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___typing___TypingVisitor___mark_is_set(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - /* syntax/typing.nit:877 */ - fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[2] = CALL_syntax___flow___FlowContext___stype(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); - /* syntax/typing.nit:878 */ - fra.me.REG[2] = CALL_syntax___typing___AReassignFormExpr___do_rvalue_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]); - /* syntax/typing.nit:879 */ - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); - REGB0 = REGB1; - } - } - if (UNTAG_Bool(REGB0)) { - goto label1; - } - /* syntax/typing.nit:882 */ - fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[4] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[4] = CALL_syntax___flow___FlowContext___stype(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - /* syntax/typing.nit:883 */ - fra.me.REG[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - goto label1; - } - /* syntax/typing.nit:884 */ - REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - fra.me.REG[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - } else { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - goto label1; - } - /* syntax/typing.nit:887 */ - fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[2] = CALL_syntax___flow___FlowContext___sub_with(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]); - CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* syntax/typing.nit:889 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - label1: while(0); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AAssignOp___method_name[] = "typing::AAssignOp::method_name"; -val_t syntax___typing___AAssignOp___method_name(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 894; - fra.me.meth = LOCATE_syntax___typing___AAssignOp___method_name; - fra.me.has_broke = 0; - fra.me.REG_size = 0; - fra.me.nitni_local_ref_head = NULL; - /* syntax/typing.nit:894 */ - nit_abort("Deferred method called", NULL, LOCATE_syntax___typing, 894); - stack_frame_head = fra.me.prev; - return NIT_NULL; -} -static const char LOCATE_syntax___typing___APlusAssignOp___method_name[] = "typing::APlusAssignOp::(typing::AAssignOp::method_name)"; -val_t syntax___typing___APlusAssignOp___method_name(val_t p0){ - struct {struct stack_frame_t me;} 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_syntax___typing; - fra.me.line = 897; - fra.me.meth = LOCATE_syntax___typing___APlusAssignOp___method_name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:897 */ - if (!once_value_1) { - if (!once_value_2) { - fra.me.REG[0] = BOX_NativeString("+"); - REGB0 = TAG_Int(1); - fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(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]; - fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - once_value_1 = fra.me.REG[0]; - register_static_object(&once_value_1); - } else fra.me.REG[0] = once_value_1; - fra.me.REG[0] = fra.me.REG[0]; - goto label3; - label3: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AMinusAssignOp___method_name[] = "typing::AMinusAssignOp::(typing::AAssignOp::method_name)"; -val_t syntax___typing___AMinusAssignOp___method_name(val_t p0){ - struct {struct stack_frame_t me;} 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_syntax___typing; - fra.me.line = 900; - fra.me.meth = LOCATE_syntax___typing___AMinusAssignOp___method_name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:900 */ - if (!once_value_1) { - if (!once_value_2) { - fra.me.REG[0] = BOX_NativeString("-"); - REGB0 = TAG_Int(1); - fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(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]; - fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - once_value_1 = fra.me.REG[0]; - register_static_object(&once_value_1); - } else fra.me.REG[0] = once_value_1; - fra.me.REG[0] = fra.me.REG[0]; - goto label3; - label3: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___ASelfExpr___variable[] = "typing::ASelfExpr::(syntax_base::ASelfExpr::variable)"; -val_t syntax___typing___ASelfExpr___variable(val_t p0){ - 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_syntax___typing; - fra.me.line = 905; - fra.me.meth = LOCATE_syntax___typing___ASelfExpr___variable; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:905 */ - fra.me.REG[1] = fra.me.REG[0]; - fra.me.REG[1] = ATTR_syntax___typing___ASelfExpr____variable(fra.me.REG[1]); - REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 905); - } - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[1]; -} -static const char LOCATE_syntax___typing___ASelfExpr___its_variable[] = "typing::ASelfExpr::(typing::AExpr::its_variable)"; -val_t syntax___typing___ASelfExpr___its_variable(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 907; - fra.me.meth = LOCATE_syntax___typing___ASelfExpr___its_variable; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:907 */ - fra.me.REG[0] = CALL_syntax___syntax_base___ASelfExpr___variable(fra.me.REG[0])(fra.me.REG[0]); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___ASelfExpr___after_typing[] = "typing::ASelfExpr::(typing::ANode::after_typing)"; -void syntax___typing___ASelfExpr___after_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; - val_t REGB0; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 909; - fra.me.meth = LOCATE_syntax___typing___ASelfExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 3; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:911 */ - fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___self_var(fra.me.REG[1])(fra.me.REG[1]); - ATTR_syntax___typing___ASelfExpr____variable(fra.me.REG[0]) = fra.me.REG[2]; - /* syntax/typing.nit:912 */ - fra.me.REG[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[2] = CALL_syntax___syntax_base___ASelfExpr___variable(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[2] = CALL_syntax___flow___FlowContext___stype(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[2]; - /* syntax/typing.nit:913 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___ASelfExpr___is_self[] = "typing::ASelfExpr::(typing::AExpr::is_self)"; -val_t syntax___typing___ASelfExpr___is_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_syntax___typing; - fra.me.line = 916; - fra.me.meth = LOCATE_syntax___typing___ASelfExpr___is_self; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:916 */ - REGB0 = TAG_Bool(1); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return REGB0; -} -static const char LOCATE_syntax___typing___AImplicitSelfExpr___is_implicit_self[] = "typing::AImplicitSelfExpr::(typing::AExpr::is_implicit_self)"; -val_t syntax___typing___AImplicitSelfExpr___is_implicit_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_syntax___typing; - fra.me.line = 920; - fra.me.meth = LOCATE_syntax___typing___AImplicitSelfExpr___is_implicit_self; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:920 */ - REGB0 = TAG_Bool(1); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return REGB0; -} -static const char LOCATE_syntax___typing___AIfexprExpr___accept_typing[] = "typing::AIfexprExpr::(typing::ANode::accept_typing)"; -void syntax___typing___AIfexprExpr___accept_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[4];} 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_syntax___typing; - fra.me.line = 924; - fra.me.meth = LOCATE_syntax___typing___AIfexprExpr___accept_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 5; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:926 */ - fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:929 */ - fra.me.REG[3] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - CALL_parser___parser_nodes___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - /* syntax/typing.nit:930 */ - fra.me.REG[3] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra.me.REG[1])(fra.me.REG[1]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[4]); - /* syntax/typing.nit:933 */ - fra.me.REG[4] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); - /* syntax/typing.nit:936 */ - fra.me.REG[4] = CALL_parser___parser_nodes___AIfexprExpr___n_then(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___typing___TypingVisitor___enter_visit_block(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); - /* syntax/typing.nit:939 */ - fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:942 */ - CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* syntax/typing.nit:943 */ - fra.me.REG[2] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* syntax/typing.nit:946 */ - fra.me.REG[2] = CALL_parser___parser_nodes___AIfexprExpr___n_else(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___typing___TypingVisitor___enter_visit_block(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* syntax/typing.nit:949 */ - fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[3] = CALL_syntax___flow___FlowContext___merge_reash(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]); - CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - /* syntax/typing.nit:951 */ - REGB0 = TAG_Int(2); - fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - fra.me.REG[4] = CALL_parser___parser_nodes___AIfexprExpr___n_then(fra.me.REG[0])(fra.me.REG[0]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - fra.me.REG[4] = CALL_parser___parser_nodes___AIfexprExpr___n_else(fra.me.REG[0])(fra.me.REG[0]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[3]); - /* syntax/typing.nit:952 */ - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); - REGB0 = REGB1; - } - } - if (UNTAG_Bool(REGB0)) { - goto label1; - } - /* syntax/typing.nit:954 */ - ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[3]; - /* syntax/typing.nit:955 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - label1: while(0); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___ABoolExpr___after_typing[] = "typing::ABoolExpr::(typing::ANode::after_typing)"; -void syntax___typing___ABoolExpr___after_typing(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_syntax___typing; - fra.me.line = 960; - fra.me.meth = LOCATE_syntax___typing___ABoolExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:962 */ - fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra.me.REG[1])(fra.me.REG[1]); - ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[1]; - /* syntax/typing.nit:963 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AOrExpr___accept_typing[] = "typing::AOrExpr::(typing::ANode::accept_typing)"; -void syntax___typing___AOrExpr___accept_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[4];} 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_syntax___typing; - fra.me.line = 968; - fra.me.meth = LOCATE_syntax___typing___AOrExpr___accept_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 5; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:970 */ - fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:971 */ - fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:972 */ - ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[3]; - /* syntax/typing.nit:975 */ - fra.me.REG[4] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - CALL_parser___parser_nodes___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); - /* syntax/typing.nit:978 */ - fra.me.REG[4] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); - /* syntax/typing.nit:981 */ - fra.me.REG[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]); - CALL_parser___parser_nodes___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); - /* syntax/typing.nit:982 */ - fra.me.REG[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[4] = CALL_syntax___typing___AExpr___if_false_flow_ctx(fra.me.REG[4])(fra.me.REG[4]); - REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:983 */ - fra.me.REG[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[4] = CALL_syntax___typing___AExpr___if_false_flow_ctx(fra.me.REG[4])(fra.me.REG[4]); - ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra.me.REG[0]) = fra.me.REG[4]; - } else { - /* syntax/typing.nit:985 */ - fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra.me.REG[0]) = fra.me.REG[4]; - } - /* syntax/typing.nit:988 */ - CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* syntax/typing.nit:990 */ - fra.me.REG[2] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]); - /* syntax/typing.nit:991 */ - fra.me.REG[2] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]); - /* syntax/typing.nit:992 */ - ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[3]; - /* syntax/typing.nit:993 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AAndExpr___accept_typing[] = "typing::AAndExpr::(typing::ANode::accept_typing)"; -void syntax___typing___AAndExpr___accept_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[4];} 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_syntax___typing; - fra.me.line = 998; - fra.me.meth = LOCATE_syntax___typing___AAndExpr___accept_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 5; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:1000 */ - fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:1001 */ - fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:1004 */ - fra.me.REG[4] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - CALL_parser___parser_nodes___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); - /* syntax/typing.nit:1007 */ - fra.me.REG[4] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); - /* syntax/typing.nit:1010 */ - fra.me.REG[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]); - CALL_parser___parser_nodes___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); - /* syntax/typing.nit:1011 */ - fra.me.REG[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[4] = CALL_syntax___typing___AExpr___if_true_flow_ctx(fra.me.REG[4])(fra.me.REG[4]); - REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1012 */ - fra.me.REG[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[4] = CALL_syntax___typing___AExpr___if_true_flow_ctx(fra.me.REG[4])(fra.me.REG[4]); - ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra.me.REG[0]) = fra.me.REG[4]; - } else { - /* syntax/typing.nit:1014 */ - fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra.me.REG[0]) = fra.me.REG[4]; - } - /* syntax/typing.nit:1017 */ - CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* syntax/typing.nit:1019 */ - fra.me.REG[2] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]); - /* syntax/typing.nit:1020 */ - fra.me.REG[2] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]); - /* syntax/typing.nit:1021 */ - ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[3]; - /* syntax/typing.nit:1022 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___ANotExpr___after_typing[] = "typing::ANotExpr::(typing::ANode::after_typing)"; -void syntax___typing___ANotExpr___after_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; - val_t REGB0; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1027; - fra.me.meth = LOCATE_syntax___typing___ANotExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 4; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:1029 */ - fra.me.REG[2] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra.me.REG[1])(fra.me.REG[1]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]); - /* syntax/typing.nit:1032 */ - fra.me.REG[3] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[3] = ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra.me.REG[3]); - ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra.me.REG[0]) = fra.me.REG[3]; - /* syntax/typing.nit:1033 */ - fra.me.REG[3] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[3] = ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra.me.REG[3]); - ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra.me.REG[0]) = fra.me.REG[3]; - /* syntax/typing.nit:1035 */ - fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra.me.REG[1])(fra.me.REG[1]); - ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[1]; - /* syntax/typing.nit:1036 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AOrElseExpr___after_typing[] = "typing::AOrElseExpr::(typing::ANode::after_typing)"; -void syntax___typing___AOrElseExpr___after_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[6];} fra; - val_t REGB0; - val_t REGB1; - val_t tmp; - static val_t once_value_1; /* Once value */ - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1041; - fra.me.meth = LOCATE_syntax___typing___AOrElseExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 7; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[5] = NIT_NULL; - fra.me.REG[6] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:1043 */ - fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:1046 */ - fra.me.REG[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - CALL_parser___parser_nodes___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - /* syntax/typing.nit:1047 */ - fra.me.REG[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - /* syntax/typing.nit:1050 */ - fra.me.REG[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[3] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[3])(fra.me.REG[3]); - /* syntax/typing.nit:1051 */ - REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1052 */ - fra.me.REG[4] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - if (!once_value_1) { - fra.me.REG[5] = BOX_NativeString("Warning: left operand of a 'or else' is not a nullable type."); - REGB0 = TAG_Int(60); - fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0); - once_value_1 = fra.me.REG[5]; - register_static_object(&once_value_1); - } else fra.me.REG[5] = once_value_1; - fra.me.REG[5] = fra.me.REG[5]; - CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[5]); - } else { - /* syntax/typing.nit:1054 */ - fra.me.REG[5] = CALL_metamodel___static_type___MMType___as_notnull(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[3] = fra.me.REG[5]; - } - /* syntax/typing.nit:1058 */ - fra.me.REG[5] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[5] = CALL_syntax___typing___AExpr___its_variable(fra.me.REG[5])(fra.me.REG[5]); - /* syntax/typing.nit:1059 */ - REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1060 */ - fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra.me.REG[1])(fra.me.REG[1]); - CALL_syntax___flow___FlowContext___sub_with(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0], fra.me.REG[5], fra.me.REG[6]); - } - /* syntax/typing.nit:1064 */ - fra.me.REG[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]); - CALL_parser___parser_nodes___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]); - /* syntax/typing.nit:1065 */ - fra.me.REG[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]); - /* syntax/typing.nit:1068 */ - CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* syntax/typing.nit:1071 */ - REGB0 = TAG_Int(1); - fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - fra.me.REG[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]); - fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2]); - /* syntax/typing.nit:1072 */ - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); - REGB0 = REGB1; - } - } - if (UNTAG_Bool(REGB0)) { - goto label2; - } - /* syntax/typing.nit:1074 */ - ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[2]; - /* syntax/typing.nit:1075 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - label2: while(0); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AIntExpr___after_typing[] = "typing::AIntExpr::(typing::ANode::after_typing)"; -void syntax___typing___AIntExpr___after_typing(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_syntax___typing; - fra.me.line = 1080; - fra.me.meth = LOCATE_syntax___typing___AIntExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:1082 */ - fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra.me.REG[1])(fra.me.REG[1]); - ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[1]; - /* syntax/typing.nit:1083 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AFloatExpr___after_typing[] = "typing::AFloatExpr::(typing::ANode::after_typing)"; -void syntax___typing___AFloatExpr___after_typing(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_syntax___typing; - fra.me.line = 1088; - fra.me.meth = LOCATE_syntax___typing___AFloatExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:1090 */ - fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_float(fra.me.REG[1])(fra.me.REG[1]); - ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[1]; - /* syntax/typing.nit:1091 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___ACharExpr___after_typing[] = "typing::ACharExpr::(typing::ANode::after_typing)"; -void syntax___typing___ACharExpr___after_typing(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_syntax___typing; - fra.me.line = 1096; - fra.me.meth = LOCATE_syntax___typing___ACharExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:1098 */ - fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_char(fra.me.REG[1])(fra.me.REG[1]); - ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[1]; - /* syntax/typing.nit:1099 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AStringFormExpr___after_typing[] = "typing::AStringFormExpr::(typing::ANode::after_typing)"; -void syntax___typing___AStringFormExpr___after_typing(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_syntax___typing; - fra.me.line = 1104; - fra.me.meth = LOCATE_syntax___typing___AStringFormExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:1106 */ - fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_string(fra.me.REG[1])(fra.me.REG[1]); - ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[1]; - /* syntax/typing.nit:1107 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___ASuperstringExpr___atype[] = "typing::ASuperstringExpr::(syntax_base::ASuperstringExpr::atype)"; -val_t syntax___typing___ASuperstringExpr___atype(val_t p0){ - 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_syntax___typing; - fra.me.line = 1112; - fra.me.meth = LOCATE_syntax___typing___ASuperstringExpr___atype; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1112 */ - fra.me.REG[1] = fra.me.REG[0]; - fra.me.REG[1] = ATTR_syntax___typing___ASuperstringExpr____atype(fra.me.REG[1]); - REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1112); - } - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[1]; -} -static const char LOCATE_syntax___typing___ASuperstringExpr___after_typing[] = "typing::ASuperstringExpr::(typing::ANode::after_typing)"; -void syntax___typing___ASuperstringExpr___after_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[4];} fra; - val_t REGB0; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1114; - fra.me.meth = LOCATE_syntax___typing___ASuperstringExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 5; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:1116 */ - fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:1117 */ - fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_string(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:1118 */ - ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[3]; - /* syntax/typing.nit:1119 */ - fra.me.REG[4] = CALL_parser___parser_nodes___ASuperstringExpr___n_exprs(fra.me.REG[0])(fra.me.REG[0]); - CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_syntax___typing___ASuperstringExpr___after_typing_1)); - /* syntax/typing.nit:1120 */ - fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - /* syntax/typing.nit:1121 */ - ATTR_syntax___typing___ASuperstringExpr____atype(fra.me.REG[0]) = fra.me.REG[3]; - /* syntax/typing.nit:1122 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - stack_frame_head = fra.me.prev; - return; -} - void OC_syntax___typing___ASuperstringExpr___after_typing_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;} fra; - fun_t CREG[1]; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 0; - fra.me.meth = LOCATE_syntax___typing___ASuperstringExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.closure_ctx = closctx_param; - fra.me.closure_funs = CREG; - fra.me.REG[0] = p0; - CREG[0] = clos_fun0; - CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(closctx->REG[1])(closctx->REG[1], fra.me.REG[0], closctx->REG[2]); - stack_frame_head = fra.me.prev; - return; - } -static const char LOCATE_syntax___typing___ANullExpr___after_typing[] = "typing::ANullExpr::(typing::ANode::after_typing)"; -void syntax___typing___ANullExpr___after_typing(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_syntax___typing; - fra.me.line = 1127; - fra.me.meth = LOCATE_syntax___typing___ANullExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:1129 */ - fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra.me.REG[1])(fra.me.REG[1]); - ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[1]; - /* syntax/typing.nit:1130 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AArrayExpr___after_typing[] = "typing::AArrayExpr::(typing::ANode::after_typing)"; -void syntax___typing___AArrayExpr___after_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[2];} 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_syntax___typing; - fra.me.line = 1135; - fra.me.meth = LOCATE_syntax___typing___AArrayExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 3; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:1137 */ - fra.me.REG[2] = CALL_parser___parser_nodes___AArrayExpr___n_exprs(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[2] = CALL_parser___parser_nodes___AExprs___n_exprs(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[2]); - /* syntax/typing.nit:1138 */ - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - CALL_syntax___typing___AArrayExpr___do_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]); - } - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AArrayExpr___do_typing[] = "typing::AArrayExpr::do_typing"; -void syntax___typing___AArrayExpr___do_typing(val_t p0, val_t p1, val_t p2){ - struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; - val_t REGB0; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1141; - fra.me.meth = LOCATE_syntax___typing___AArrayExpr___do_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 3; - fra.me.nitni_local_ref_head = NULL; - 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; - fra.me.REG[2] = p2; - /* syntax/typing.nit:1143 */ - fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[2]; - /* syntax/typing.nit:1144 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___ARangeExpr___after_typing[] = "typing::ARangeExpr::(typing::ANode::after_typing)"; -void syntax___typing___ARangeExpr___after_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[5];} fra; - val_t REGB0; - val_t REGB1; - val_t tmp; - static val_t once_value_2; /* Once value */ - 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_syntax___typing; - fra.me.line = 1149; - fra.me.meth = LOCATE_syntax___typing___ARangeExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 6; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[5] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:1151 */ - fra.me.REG[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(1); - } else { - fra.me.REG[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]); - REGB1 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - goto label1; - } - /* syntax/typing.nit:1152 */ - fra.me.REG[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[2] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[2])(fra.me.REG[2]); - /* syntax/typing.nit:1153 */ - fra.me.REG[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[3] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[3])(fra.me.REG[3]); - /* syntax/typing.nit:1154 */ - REGB0 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1155 */ - fra.me.REG[2] = fra.me.REG[3]; - } else { - /* syntax/typing.nit:1156 */ - REGB0 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1157 */ - REGB0 = TAG_Int(5); - fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_2) { - fra.me.REG[5] = BOX_NativeString("Type error: "); - REGB0 = TAG_Int(12); - fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0); - once_value_2 = fra.me.REG[5]; - register_static_object(&once_value_2); - } else fra.me.REG[5] = once_value_2; - fra.me.REG[5] = fra.me.REG[5]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); - fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); - if (!once_value_3) { - fra.me.REG[5] = BOX_NativeString(" incompatible with "); - REGB0 = TAG_Int(19); - fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0); - once_value_3 = fra.me.REG[5]; - register_static_object(&once_value_3); - } else fra.me.REG[5] = once_value_3; - fra.me.REG[5] = fra.me.REG[5]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); - fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); - if (!once_value_4) { - fra.me.REG[3] = BOX_NativeString("."); - REGB0 = TAG_Int(1); - fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0); - 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]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); - fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]); - /* syntax/typing.nit:1158 */ - goto label1; - } - } - /* syntax/typing.nit:1160 */ - fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_discrete(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:1161 */ - fra.me.REG[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[4]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(1); - } else { - fra.me.REG[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]); - REGB1 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[4]); - REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - goto label1; - } - /* syntax/typing.nit:1162 */ - fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_range(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[2]; - /* syntax/typing.nit:1163 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - label1: while(0); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___ASuperExpr___init_in_superclass[] = "typing::ASuperExpr::(syntax_base::ASuperExpr::init_in_superclass)"; -val_t syntax___typing___ASuperExpr___init_in_superclass(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1168; - fra.me.meth = LOCATE_syntax___typing___ASuperExpr___init_in_superclass; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1168 */ - fra.me.REG[0] = ATTR_syntax___typing___ASuperExpr____init_in_superclass(fra.me.REG[0]); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___ASuperExpr___compute_raw_arguments[] = "typing::ASuperExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)"; -val_t syntax___typing___ASuperExpr___compute_raw_arguments(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1169; - fra.me.meth = LOCATE_syntax___typing___ASuperExpr___compute_raw_arguments; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1169 */ - fra.me.REG[0] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_syntax___syntax_base___AExprs___to_a(fra.me.REG[0])(fra.me.REG[0]); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___ASuperExpr___after_typing[] = "typing::ASuperExpr::(typing::ANode::after_typing)"; -void syntax___typing___ASuperExpr___after_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[9];} fra; - val_t REGB0; - val_t REGB1; - val_t REGB2; - val_t tmp; - static val_t once_value_1; /* Once value */ - static val_t once_value_2; /* Once value */ - static val_t once_value_3; /* Once value */ - static val_t once_value_5; /* Once value */ - static val_t once_value_6; /* Once value */ - static val_t once_value_8; /* Once value */ - static val_t once_value_9; /* Once value */ - static val_t once_value_10; /* Once value */ - static val_t once_value_11; /* Once value */ - static val_t once_value_12; /* Once value */ - static val_t once_value_13; /* Once value */ - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1170; - fra.me.meth = LOCATE_syntax___typing___ASuperExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 10; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[5] = NIT_NULL; - fra.me.REG[6] = NIT_NULL; - fra.me.REG[7] = NIT_NULL; - fra.me.REG[8] = NIT_NULL; - fra.me.REG[9] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:1170 */ - fra.me.REG[2] = fra.me.REG[0]; - /* syntax/typing.nit:1172 */ - fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[3])(fra.me.REG[3]); - /* syntax/typing.nit:1173 */ - REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1174 */ - fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(1); - CALL_metamodel___abstractmetamodel___MMLocalProperty___need_super__eq(fra.me.REG[4])(fra.me.REG[4], REGB0); - } else { - /* syntax/typing.nit:1175 */ - fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[4])(fra.me.REG[4]); - REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[4])(fra.me.REG[4]); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1176 */ - fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[5])(fra.me.REG[5]); - fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); - /* ../lib/standard/collection/array.nit:267 */ - fra.me.REG[4] = fra.me.REG[5]; - /* ../lib/standard/collection/array.nit:270 */ - REGB0 = TAG_Int(0); - /* ../lib/standard/collection/array.nit:271 */ - REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271); - } - REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]); - /* ../lib/standard/collection/array.nit:272 */ - fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]); - /* ../lib/standard/collection/array.nit:273 */ - while(1) { - /* ../lib/standard/collection/array.nit:24 */ - REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); - } - REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]); - REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/; - if (UNTAG_Bool(REGB2)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:242 */ - REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; - /* syntax/typing.nit:1178 */ - fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[7])(fra.me.REG[7]); - REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[8])(fra.me.REG[8]); - REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); - if (UNTAG_Bool(REGB1)) { - /* syntax/typing.nit:1179 */ - REGB1 = TAG_Int(5); - fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1); - if (!once_value_1) { - fra.me.REG[9] = BOX_NativeString("Error: "); - REGB1 = TAG_Int(7); - fra.me.REG[9] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[9])(fra.me.REG[9], REGB1); - once_value_1 = fra.me.REG[9]; - register_static_object(&once_value_1); - } else fra.me.REG[9] = once_value_1; - fra.me.REG[9] = fra.me.REG[9]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]); - fra.me.REG[9] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[7])(fra.me.REG[7]); - fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]); - if (!once_value_2) { - fra.me.REG[9] = BOX_NativeString("::"); - REGB1 = TAG_Int(2); - fra.me.REG[9] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[9])(fra.me.REG[9], REGB1); - once_value_2 = fra.me.REG[9]; - register_static_object(&once_value_2); - } else fra.me.REG[9] = once_value_2; - fra.me.REG[9] = fra.me.REG[9]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]); - fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]); - if (!once_value_3) { - fra.me.REG[9] = BOX_NativeString(" is not a constructor."); - REGB1 = TAG_Int(22); - fra.me.REG[9] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[9])(fra.me.REG[9], REGB1); - once_value_3 = fra.me.REG[9]; - register_static_object(&once_value_3); - } else fra.me.REG[9] = once_value_3; - fra.me.REG[9] = fra.me.REG[9]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]); - fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[8]); - } else { - /* syntax/typing.nit:1181 */ - fra.me.REG[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[7])(fra.me.REG[7]); - fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]); - } - /* ../lib/standard/collection/array.nit:275 */ - REGB1 = TAG_Int(1); - /* ../lib/standard/kernel.nit:245 */ - REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1)); - /* ../lib/standard/collection/array.nit:275 */ - REGB0 = REGB1; - } else { - /* ../lib/standard/collection/array.nit:273 */ - goto label4; - } - } - label4: while(0); - /* syntax/typing.nit:1184 */ - REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1185 */ - REGB0 = TAG_Int(3); - fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_5) { - fra.me.REG[4] = BOX_NativeString("Error: No contructor named "); - REGB0 = TAG_Int(27); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_5 = fra.me.REG[4]; - register_static_object(&once_value_5); - } else fra.me.REG[4] = once_value_5; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]); - fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[4])(fra.me.REG[4]); - fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]); - if (!once_value_6) { - fra.me.REG[4] = BOX_NativeString(" in superclasses."); - REGB0 = TAG_Int(17); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_6 = fra.me.REG[4]; - register_static_object(&once_value_6); - } else fra.me.REG[4] = once_value_6; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]); - fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[6]); - /* syntax/typing.nit:1186 */ - goto label7; - } else { - /* ../lib/standard/collection/array.nit:24 */ - REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); - } - REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]); - /* syntax/typing.nit:1187 */ - REGB1 = TAG_Int(1); - REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/; - if (UNTAG_Bool(REGB2)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:244 */ - REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1)); - /* syntax/typing.nit:1187 */ - if (UNTAG_Bool(REGB1)) { - /* syntax/typing.nit:1188 */ - REGB1 = TAG_Int(5); - fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1); - if (!once_value_8) { - fra.me.REG[4] = BOX_NativeString("Error: Conflicting contructors named "); - REGB1 = TAG_Int(37); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB1); - once_value_8 = fra.me.REG[4]; - register_static_object(&once_value_8); - } else fra.me.REG[4] = once_value_8; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]); - fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[4])(fra.me.REG[4]); - fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]); - if (!once_value_9) { - fra.me.REG[4] = BOX_NativeString(" in superclasses: "); - REGB1 = TAG_Int(18); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB1); - once_value_9 = fra.me.REG[4]; - register_static_object(&once_value_9); - } else fra.me.REG[4] = once_value_9; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]); - if (!once_value_10) { - fra.me.REG[4] = BOX_NativeString(", "); - REGB1 = TAG_Int(2); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB1); - once_value_10 = fra.me.REG[4]; - register_static_object(&once_value_10); - } else fra.me.REG[4] = once_value_10; - fra.me.REG[4] = fra.me.REG[4]; - fra.me.REG[4] = CALL_standard___string___Collection___join(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]); - if (!once_value_11) { - fra.me.REG[4] = BOX_NativeString("."); - REGB1 = TAG_Int(1); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB1); - once_value_11 = fra.me.REG[4]; - register_static_object(&once_value_11); - } else fra.me.REG[4] = once_value_11; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]); - fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[6]); - /* syntax/typing.nit:1189 */ - goto label7; - } - } - /* syntax/typing.nit:1191 */ - fra.me.REG[5] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[5])(fra.me.REG[5]); - /* syntax/typing.nit:1192 */ - REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[5], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/; - if (UNTAG_Bool(REGB1)) { - } else { - nit_abort("Assert failed", NULL, LOCATE_syntax___typing, 1192); - } - /* syntax/typing.nit:1193 */ - ATTR_syntax___typing___ASuperExpr____init_in_superclass(fra.me.REG[2]) = fra.me.REG[5]; - /* syntax/typing.nit:1194 */ - CALL_syntax___typing___ASuperInitCall___register_super_init_call(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[5]); - /* syntax/typing.nit:1195 */ - fra.me.REG[6] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[6] = CALL_parser___parser_nodes___AExprs___n_exprs(fra.me.REG[6])(fra.me.REG[6]); - REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[6])(fra.me.REG[6]); - REGB0 = TAG_Int(0); - REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/; - if (UNTAG_Bool(REGB2)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:244 */ - REGB0 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB0)); - /* syntax/typing.nit:1195 */ - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1196 */ - fra.me.REG[6] = CALL_syntax___typing___TypingVisitor___self_var(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[6] = CALL_syntax___syntax_base___Variable___stype(fra.me.REG[6])(fra.me.REG[6]); - REGB0 = TAG_Bool((fra.me.REG[6]!=NIT_NULL) && VAL_ISA(fra.me.REG[6], COLOR_metamodel___static_type___MMType, ID_metamodel___static_type___MMType)) /*cast MMType*/; - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1196); - } - REGB0 = TAG_Bool(1); - fra.me.REG[6] = CALL_syntax___typing___AAbsSendExpr___get_signature(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[6], fra.me.REG[5], REGB0); - /* syntax/typing.nit:1197 */ - fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[5])(fra.me.REG[5]); - fra.me.REG[4] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra.me.REG[2])(fra.me.REG[2]); - CALL_syntax___typing___AAbsAbsSendExpr___process_signature(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4]); - } - } else { - /* syntax/typing.nit:1200 */ - REGB0 = TAG_Int(3); - fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_12) { - fra.me.REG[5] = BOX_NativeString("Error: No super method to call for "); - REGB0 = TAG_Int(35); - fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0); - once_value_12 = fra.me.REG[5]; - register_static_object(&once_value_12); - } else fra.me.REG[5] = once_value_12; - fra.me.REG[5] = fra.me.REG[5]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); - fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); - if (!once_value_13) { - fra.me.REG[5] = BOX_NativeString("."); - REGB0 = TAG_Int(1); - fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0); - once_value_13 = fra.me.REG[5]; - register_static_object(&once_value_13); - } else fra.me.REG[5] = once_value_13; - fra.me.REG[5] = fra.me.REG[5]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); - fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[4]); - /* syntax/typing.nit:1201 */ - goto label7; - } - } - /* syntax/typing.nit:1204 */ - fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[5] = CALL_syntax___typing___TypingVisitor___self_var(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[5] = CALL_syntax___syntax_base___Variable___stype(fra.me.REG[5])(fra.me.REG[5]); - REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_metamodel___static_type___MMType, ID_metamodel___static_type___MMType)) /*cast MMType*/; - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1204); - } - REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1204); - } - fra.me.REG[5] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); - fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[5])(fra.me.REG[5]); - REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1205 */ - fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init(); - /* syntax/typing.nit:1206 */ - fra.me.REG[4] = NIT_NULL; - /* ../lib/standard/collection/array.nit:270 */ - REGB0 = TAG_Int(0); - /* ../lib/standard/collection/array.nit:271 */ - REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271); - } - REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]); - /* ../lib/standard/collection/array.nit:272 */ - fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]); - /* ../lib/standard/collection/array.nit:273 */ - while(1) { - /* ../lib/standard/collection/array.nit:24 */ - REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); - } - REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]); - REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/; - if (UNTAG_Bool(REGB2)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:242 */ - REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; - /* syntax/typing.nit:1208 */ - REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[7], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/; - if (UNTAG_Bool(REGB1)) { - } else { - nit_abort("Assert failed", NULL, LOCATE_syntax___typing, 1208); - } - /* syntax/typing.nit:1209 */ - fra.me.REG[8] = CALL_syntax___typing___TypingVisitor___self_var(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[8] = CALL_syntax___syntax_base___Variable___stype(fra.me.REG[8])(fra.me.REG[8]); - REGB1 = TAG_Bool((fra.me.REG[8]!=NIT_NULL) && VAL_ISA(fra.me.REG[8], COLOR_metamodel___static_type___MMType, ID_metamodel___static_type___MMType)) /*cast MMType*/; - if (UNTAG_Bool(REGB1)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1209); - } - fra.me.REG[8] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); - fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[8])(fra.me.REG[8]); - fra.me.REG[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]); - REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1209); - } - fra.me.REG[7] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]); - fra.me.REG[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[8] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[8])(fra.me.REG[8]); - REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1209); - } - fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___recv(fra.me.REG[8])(fra.me.REG[8]); - fra.me.REG[8] = CALL_metamodel___static_type___MMType___adapt_to(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); - /* syntax/typing.nit:1210 */ - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]); - /* syntax/typing.nit:1211 */ - REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB2)) { - REGB2 = TAG_Bool(0); - REGB1 = REGB2; - } else { - REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL); - REGB1 = REGB2; - } - } - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(1); - } else { - REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB2)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1211); - } - REGB2 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]); - REGB1 = REGB2; - } - if (UNTAG_Bool(REGB1)) { - /* syntax/typing.nit:1212 */ - fra.me.REG[4] = fra.me.REG[8]; - } - /* ../lib/standard/collection/array.nit:275 */ - REGB1 = TAG_Int(1); - /* ../lib/standard/kernel.nit:245 */ - REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1)); - /* ../lib/standard/collection/array.nit:275 */ - REGB0 = REGB1; - } else { - /* ../lib/standard/collection/array.nit:273 */ - goto label14; - } - } - label14: while(0); - /* ../lib/standard/collection/array.nit:270 */ - REGB0 = TAG_Int(0); - /* ../lib/standard/collection/array.nit:271 */ - REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271); - } - REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]); - /* ../lib/standard/collection/array.nit:272 */ - fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]); - /* ../lib/standard/collection/array.nit:273 */ - while(1) { - /* ../lib/standard/collection/array.nit:24 */ - REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); - } - REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]); - REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/; - if (UNTAG_Bool(REGB2)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:242 */ - REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; - /* syntax/typing.nit:1216 */ - REGB1 = TAG_Bool(fra.me.REG[4]!=NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1216); - } - CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]); - /* ../lib/standard/collection/array.nit:275 */ - REGB1 = TAG_Int(1); - /* ../lib/standard/kernel.nit:245 */ - REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1)); - /* ../lib/standard/collection/array.nit:275 */ - REGB0 = REGB1; - } else { - /* ../lib/standard/collection/array.nit:273 */ - goto label15; - } - } - label15: while(0); - /* syntax/typing.nit:1218 */ - ATTR_syntax___typing___AExpr____stype(fra.me.REG[2]) = fra.me.REG[4]; - } - /* syntax/typing.nit:1220 */ - fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:1221 */ - REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_syntax___syntax_base___MMSrcMethod, ID_syntax___syntax_base___MMSrcMethod)) /*cast MMSrcMethod*/; - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Assert failed", NULL, LOCATE_syntax___typing, 1221); - } - /* syntax/typing.nit:1222 */ - ATTR_syntax___typing___AAbsSendExpr____prop(fra.me.REG[2]) = fra.me.REG[1]; - /* syntax/typing.nit:1223 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[2]) = REGB0; - label7: while(0); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AExternCall___target_class_name[] = "typing::AExternCall::target_class_name"; -val_t syntax___typing___AExternCall___target_class_name(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1228; - fra.me.meth = LOCATE_syntax___typing___AExternCall___target_class_name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1228 */ - fra.me.REG[0] = NIT_NULL; - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AExternCall___target_method_name[] = "typing::AExternCall::target_method_name"; -val_t syntax___typing___AExternCall___target_method_name(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1229; - fra.me.meth = LOCATE_syntax___typing___AExternCall___target_method_name; - fra.me.has_broke = 0; - fra.me.REG_size = 0; - fra.me.nitni_local_ref_head = NULL; - /* syntax/typing.nit:1229 */ - nit_abort("Deferred method called", NULL, LOCATE_syntax___typing, 1229); - stack_frame_head = fra.me.prev; - return NIT_NULL; -} -static const char LOCATE_syntax___typing___AExternCall___after_typing[] = "typing::AExternCall::(typing::ANode::after_typing)"; -void syntax___typing___AExternCall___after_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[7];} fra; - val_t REGB0; - val_t REGB1; - val_t tmp; - static val_t once_value_1; /* Once value */ - static val_t once_value_2; /* Once value */ - static val_t once_value_4; /* Once value */ - static val_t once_value_5; /* Once value */ - static val_t once_value_6; /* Once value */ - static val_t once_value_7; /* Once value */ - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1231; - fra.me.meth = LOCATE_syntax___typing___AExternCall___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 8; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[5] = NIT_NULL; - fra.me.REG[6] = NIT_NULL; - fra.me.REG[7] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:1231 */ - fra.me.REG[2] = fra.me.REG[0]; - /* syntax/typing.nit:1233 */ - fra.me.REG[3] = CALL_syntax___typing___AExternCall___target_class_name(fra.me.REG[2])(fra.me.REG[2]); - /* syntax/typing.nit:1234 */ - fra.me.REG[4] = CALL_syntax___typing___AExternCall___target_method_name(fra.me.REG[2])(fra.me.REG[2]); - /* syntax/typing.nit:1241 */ - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); - REGB0 = REGB1; - } - } - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1242 */ - fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[5])(fra.me.REG[5]); - } else { - /* syntax/typing.nit:1244 */ - fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra.me.REG[6])(fra.me.REG[6]); - REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1245 */ - fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra.me.REG[6])(fra.me.REG[6]); - fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMModule___global_class_named(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]); - /* syntax/typing.nit:1246 */ - fra.me.REG[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra.me.REG[7])(fra.me.REG[7]); - fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMModule_____bra(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]); - fra.me.REG[5] = fra.me.REG[6]; - } else { - /* syntax/typing.nit:1248 */ - REGB0 = TAG_Int(3); - fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_1) { - fra.me.REG[7] = BOX_NativeString("Error: class "); - REGB0 = TAG_Int(13); - fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB0); - once_value_1 = fra.me.REG[7]; - register_static_object(&once_value_1); - } else fra.me.REG[7] = once_value_1; - fra.me.REG[7] = fra.me.REG[7]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1248); - } - fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]); - if (!once_value_2) { - fra.me.REG[3] = BOX_NativeString(", not found."); - REGB0 = TAG_Int(12); - fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0); - once_value_2 = fra.me.REG[3]; - register_static_object(&once_value_2); - } else fra.me.REG[3] = once_value_2; - fra.me.REG[3] = fra.me.REG[3]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]); - fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[6]); - /* syntax/typing.nit:1249 */ - goto label3; - } - } - /* syntax/typing.nit:1253 */ - REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1254 */ - fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); - /* syntax/typing.nit:1256 */ - fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); - /* syntax/typing.nit:1258 */ - REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[6], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/; - if (UNTAG_Bool(REGB0)) { - } else { - /* syntax/typing.nit:1261 */ - REGB0 = TAG_Int(3); - fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_4) { - fra.me.REG[7] = BOX_NativeString("Error: property "); - REGB0 = TAG_Int(16); - fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB0); - once_value_4 = fra.me.REG[7]; - register_static_object(&once_value_4); - } else fra.me.REG[7] = once_value_4; - fra.me.REG[7] = fra.me.REG[7]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]); - fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]); - if (!once_value_5) { - fra.me.REG[7] = BOX_NativeString(" is not a method."); - REGB0 = TAG_Int(17); - fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB0); - once_value_5 = fra.me.REG[7]; - register_static_object(&once_value_5); - } else fra.me.REG[7] = once_value_5; - fra.me.REG[7] = fra.me.REG[7]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]); - fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]); - /* syntax/typing.nit:1262 */ - goto label3; - } - } else { - /* syntax/typing.nit:1265 */ - REGB0 = TAG_Int(3); - fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_6) { - fra.me.REG[7] = BOX_NativeString("Error: property "); - REGB0 = TAG_Int(16); - fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB0); - once_value_6 = fra.me.REG[7]; - register_static_object(&once_value_6); - } else fra.me.REG[7] = once_value_6; - fra.me.REG[7] = fra.me.REG[7]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]); - fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - if (!once_value_7) { - fra.me.REG[4] = BOX_NativeString(" not found in target class."); - REGB0 = TAG_Int(27); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_7 = fra.me.REG[4]; - register_static_object(&once_value_7); - } else fra.me.REG[4] = once_value_7; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]); - /* syntax/typing.nit:1266 */ - goto label3; - } - /* syntax/typing.nit:1269 */ - fra.me.REG[6] = NEW_MMExplicitImport_metamodel___abstractmetamodel___MMExplicitImport___init(fra.me.REG[5], fra.me.REG[6]); - /* syntax/typing.nit:1270 */ - fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_syntax___syntax_base___MMSrcMethod, ID_syntax___syntax_base___MMSrcMethod)) /*cast MMSrcMethod*/; - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1270); - } - fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMMethod___explicit_imports(fra.me.REG[1])(fra.me.REG[1]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]); - label3: while(0); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___ALocalPropExternCall___target_class_name[] = "typing::ALocalPropExternCall::(typing::AExternCall::target_class_name)"; -val_t syntax___typing___ALocalPropExternCall___target_class_name(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1275; - fra.me.meth = LOCATE_syntax___typing___ALocalPropExternCall___target_class_name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1275 */ - fra.me.REG[0] = NIT_NULL; - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___ALocalPropExternCall___target_method_name[] = "typing::ALocalPropExternCall::(typing::AExternCall::target_method_name)"; -val_t syntax___typing___ALocalPropExternCall___target_method_name(val_t p0){ - 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_syntax___typing; - fra.me.line = 1276; - fra.me.meth = LOCATE_syntax___typing___ALocalPropExternCall___target_method_name; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1276 */ - fra.me.REG[1] = fra.me.REG[0]; - fra.me.REG[1] = CALL_parser___parser_nodes___ALocalPropExternCall___n_methid(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[1] = CALL_syntax___syntax_base___AMethid___name(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_symbol___Symbol, ID_symbol___Symbol)) /*cast Symbol*/; - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1276); - } - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[1]; -} -static const char LOCATE_syntax___typing___ASuperExternCall___after_typing[] = "typing::ASuperExternCall::(typing::ANode::after_typing)"; -void syntax___typing___ASuperExternCall___after_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[3];} 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_syntax___typing; - fra.me.line = 1280; - fra.me.meth = LOCATE_syntax___typing___ASuperExternCall___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 4; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:1282 */ - fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[2] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[2])(fra.me.REG[2]); - /* syntax/typing.nit:1283 */ - REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1284 */ - fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(1); - CALL_metamodel___abstractmetamodel___MMLocalProperty___need_super__eq(fra.me.REG[2])(fra.me.REG[2], REGB0); - } else { - /* syntax/typing.nit:1286 */ - REGB0 = TAG_Int(3); - fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_1) { - fra.me.REG[3] = BOX_NativeString("Error: No super method to call for "); - REGB0 = TAG_Int(35); - fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0); - once_value_1 = fra.me.REG[3]; - register_static_object(&once_value_1); - } else fra.me.REG[3] = once_value_1; - fra.me.REG[3] = fra.me.REG[3]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); - fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); - if (!once_value_2) { - fra.me.REG[3] = BOX_NativeString("."); - REGB0 = TAG_Int(1); - fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0); - once_value_2 = fra.me.REG[3]; - register_static_object(&once_value_2); - } else fra.me.REG[3] = once_value_2; - fra.me.REG[3] = fra.me.REG[3]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); - fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]); - /* syntax/typing.nit:1287 */ - goto label3; - } - label3: while(0); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AFullPropExternCall___target_class_name[] = "typing::AFullPropExternCall::(typing::AExternCall::target_class_name)"; -val_t syntax___typing___AFullPropExternCall___target_class_name(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1293; - fra.me.meth = LOCATE_syntax___typing___AFullPropExternCall___target_class_name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1293 */ - fra.me.REG[0] = CALL_parser___parser_nodes___AFullPropExternCall___n_classid(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AFullPropExternCall___target_method_name[] = "typing::AFullPropExternCall::(typing::AExternCall::target_method_name)"; -val_t syntax___typing___AFullPropExternCall___target_method_name(val_t p0){ - 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_syntax___typing; - fra.me.line = 1294; - fra.me.meth = LOCATE_syntax___typing___AFullPropExternCall___target_method_name; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1294 */ - fra.me.REG[1] = fra.me.REG[0]; - fra.me.REG[1] = CALL_parser___parser_nodes___AFullPropExternCall___n_methid(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[1] = CALL_syntax___syntax_base___AMethid___name(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_symbol___Symbol, ID_symbol___Symbol)) /*cast Symbol*/; - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1294); - } - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[1]; -} -static const char LOCATE_syntax___typing___AInitPropExternCall___target_class_name[] = "typing::AInitPropExternCall::(typing::AExternCall::target_class_name)"; -val_t syntax___typing___AInitPropExternCall___target_class_name(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1298; - fra.me.meth = LOCATE_syntax___typing___AInitPropExternCall___target_class_name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1298 */ - fra.me.REG[0] = CALL_parser___parser_nodes___AInitPropExternCall___n_classid(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AInitPropExternCall___target_method_name[] = "typing::AInitPropExternCall::(typing::AExternCall::target_method_name)"; -val_t syntax___typing___AInitPropExternCall___target_method_name(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t REGB0; - val_t tmp; - static val_t once_value_1; /* Once value */ - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1299; - fra.me.meth = LOCATE_syntax___typing___AInitPropExternCall___target_method_name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1299 */ - if (!once_value_1) { - fra.me.REG[0] = BOX_NativeString("init"); - REGB0 = TAG_Int(4); - fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0); - once_value_1 = fra.me.REG[0]; - register_static_object(&once_value_1); - } else fra.me.REG[0] = once_value_1; - fra.me.REG[0] = fra.me.REG[0]; - fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - goto label2; - label2: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___ACastExternCall___from_type[] = "typing::ACastExternCall::from_type"; -val_t syntax___typing___ACastExternCall___from_type(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1303; - fra.me.meth = LOCATE_syntax___typing___ACastExternCall___from_type; - fra.me.has_broke = 0; - fra.me.REG_size = 0; - fra.me.nitni_local_ref_head = NULL; - /* syntax/typing.nit:1303 */ - nit_abort("Deferred method called", NULL, LOCATE_syntax___typing, 1303); - stack_frame_head = fra.me.prev; - return NIT_NULL; -} -static const char LOCATE_syntax___typing___ACastExternCall___to_type[] = "typing::ACastExternCall::to_type"; -val_t syntax___typing___ACastExternCall___to_type(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1304; - fra.me.meth = LOCATE_syntax___typing___ACastExternCall___to_type; - fra.me.has_broke = 0; - fra.me.REG_size = 0; - fra.me.nitni_local_ref_head = NULL; - /* syntax/typing.nit:1304 */ - nit_abort("Deferred method called", NULL, LOCATE_syntax___typing, 1304); - stack_frame_head = fra.me.prev; - return NIT_NULL; -} -static const char LOCATE_syntax___typing___ACastExternCall___after_typing[] = "typing::ACastExternCall::(typing::ANode::after_typing)"; -void syntax___typing___ACastExternCall___after_typing(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; - static val_t once_value_1; /* Once value */ - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1306; - fra.me.meth = LOCATE_syntax___typing___ACastExternCall___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 4; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:1308 */ - fra.me.REG[2] = CALL_syntax___typing___ACastExternCall___from_type(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[3] = CALL_syntax___typing___ACastExternCall___to_type(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3])); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1310 */ - if (!once_value_1) { - fra.me.REG[3] = BOX_NativeString("Attepting to cast from and to the same type."); - REGB0 = TAG_Int(44); - fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0); - once_value_1 = fra.me.REG[3]; - register_static_object(&once_value_1); - } else fra.me.REG[3] = once_value_1; - fra.me.REG[3] = fra.me.REG[3]; - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]); - } - /* syntax/typing.nit:1313 */ - fra.me.REG[3] = CALL_syntax___typing___ACastExternCall___from_type(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[2] = CALL_syntax___typing___ACastExternCall___to_type(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[2] = NEW_MMImportedCast_metamodel___static_type___MMImportedCast___init(fra.me.REG[3], fra.me.REG[2]); - /* syntax/typing.nit:1314 */ - fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:1315 */ - REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/; - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Assert failed", NULL, LOCATE_syntax___typing, 1315); - } - /* syntax/typing.nit:1316 */ - fra.me.REG[1] = CALL_metamodel___static_type___MMMethod___explicit_casts(fra.me.REG[1])(fra.me.REG[1]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___ACastAsExternCall___from_type[] = "typing::ACastAsExternCall::(typing::ACastExternCall::from_type)"; -val_t syntax___typing___ACastAsExternCall___from_type(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1321; - fra.me.meth = LOCATE_syntax___typing___ACastAsExternCall___from_type; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1321 */ - fra.me.REG[0] = CALL_parser___parser_nodes___ACastAsExternCall___n_from_type(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_syntax___syntax_base___AType___stype(fra.me.REG[0])(fra.me.REG[0]); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___ACastAsExternCall___to_type[] = "typing::ACastAsExternCall::(typing::ACastExternCall::to_type)"; -val_t syntax___typing___ACastAsExternCall___to_type(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1322; - fra.me.meth = LOCATE_syntax___typing___ACastAsExternCall___to_type; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1322 */ - fra.me.REG[0] = CALL_parser___parser_nodes___ACastAsExternCall___n_to_type(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_syntax___syntax_base___AType___stype(fra.me.REG[0])(fra.me.REG[0]); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AAsNullableExternCall___from_type[] = "typing::AAsNullableExternCall::(typing::ACastExternCall::from_type)"; -val_t syntax___typing___AAsNullableExternCall___from_type(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1326; - fra.me.meth = LOCATE_syntax___typing___AAsNullableExternCall___from_type; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1326 */ - fra.me.REG[0] = CALL_parser___parser_nodes___AAsNullableExternCall___n_type(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_syntax___syntax_base___AType___stype(fra.me.REG[0])(fra.me.REG[0]); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AAsNullableExternCall___to_type[] = "typing::AAsNullableExternCall::(typing::ACastExternCall::to_type)"; -val_t syntax___typing___AAsNullableExternCall___to_type(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1327; - fra.me.meth = LOCATE_syntax___typing___AAsNullableExternCall___to_type; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1327 */ - fra.me.REG[0] = CALL_parser___parser_nodes___AAsNullableExternCall___n_type(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_syntax___syntax_base___AType___stype(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_metamodel___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]; -} -static const char LOCATE_syntax___typing___AAsNotNullableExternCall___from_type[] = "typing::AAsNotNullableExternCall::(typing::ACastExternCall::from_type)"; -val_t syntax___typing___AAsNotNullableExternCall___from_type(val_t p0){ - 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_syntax___typing; - fra.me.line = 1331; - fra.me.meth = LOCATE_syntax___typing___AAsNotNullableExternCall___from_type; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1333 */ - fra.me.REG[0] = CALL_parser___parser_nodes___AAsNotNullableExternCall___n_type(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_syntax___syntax_base___AType___stype(fra.me.REG[0])(fra.me.REG[0]); - /* syntax/typing.nit:1334 */ - REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1336 */ - fra.me.REG[1] = fra.me.REG[0]; - goto label1; - } else { - /* syntax/typing.nit:1338 */ - fra.me.REG[0] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[1] = fra.me.REG[0]; - goto label1; - } - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[1]; -} -static const char LOCATE_syntax___typing___AAsNotNullableExternCall___to_type[] = "typing::AAsNotNullableExternCall::(typing::ACastExternCall::to_type)"; -val_t syntax___typing___AAsNotNullableExternCall___to_type(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1341; - fra.me.meth = LOCATE_syntax___typing___AAsNotNullableExternCall___to_type; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1341 */ - fra.me.REG[0] = CALL_parser___parser_nodes___AAsNotNullableExternCall___n_type(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_syntax___syntax_base___AType___stype(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_metamodel___static_type___MMType___as_notnull(fra.me.REG[0])(fra.me.REG[0]); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AAttrFormExpr___prop[] = "typing::AAttrFormExpr::(syntax_base::AAttrFormExpr::prop)"; -val_t syntax___typing___AAttrFormExpr___prop(val_t p0){ - 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_syntax___typing; - fra.me.line = 1345; - fra.me.meth = LOCATE_syntax___typing___AAttrFormExpr___prop; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1345 */ - fra.me.REG[1] = fra.me.REG[0]; - fra.me.REG[1] = ATTR_syntax___typing___AAttrFormExpr____prop(fra.me.REG[1]); - REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1345); - } - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[1]; -} -static const char LOCATE_syntax___typing___AAttrFormExpr___attr_type[] = "typing::AAttrFormExpr::(syntax_base::AAttrFormExpr::attr_type)"; -val_t syntax___typing___AAttrFormExpr___attr_type(val_t p0){ - 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_syntax___typing; - fra.me.line = 1348; - fra.me.meth = LOCATE_syntax___typing___AAttrFormExpr___attr_type; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1348 */ - fra.me.REG[1] = fra.me.REG[0]; - fra.me.REG[1] = ATTR_syntax___typing___AAttrFormExpr____attr_type(fra.me.REG[1]); - REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1348); - } - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[1]; -} -static const char LOCATE_syntax___typing___AAttrFormExpr___do_typing[] = "typing::AAttrFormExpr::do_typing"; -void syntax___typing___AAttrFormExpr___do_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[6];} fra; - val_t REGB0; - val_t REGB1; - val_t REGB2; - val_t tmp; - static val_t once_value_2; /* Once value */ - static val_t once_value_3; /* Once value */ - static val_t once_value_4; /* Once value */ - static val_t once_value_5; /* Once value */ - static val_t once_value_6; /* Once value */ - static val_t once_value_7; /* Once value */ - static val_t once_value_8; /* Once value */ - static val_t once_value_9; /* Once value */ - static val_t once_value_10; /* Once value */ - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1351; - fra.me.meth = LOCATE_syntax___typing___AAttrFormExpr___do_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 7; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[5] = NIT_NULL; - fra.me.REG[6] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:1354 */ - fra.me.REG[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - goto label1; - } - /* syntax/typing.nit:1355 */ - fra.me.REG[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[2] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[2])(fra.me.REG[2]); - /* syntax/typing.nit:1356 */ - fra.me.REG[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_id(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[3] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[3])(fra.me.REG[3]); - /* syntax/typing.nit:1357 */ - REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/; - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1358 */ - REGB0 = TAG_Int(3); - fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_2) { - fra.me.REG[5] = BOX_NativeString("Error: Attribute '"); - REGB0 = TAG_Int(18); - fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0); - once_value_2 = fra.me.REG[5]; - register_static_object(&once_value_2); - } else fra.me.REG[5] = once_value_2; - fra.me.REG[5] = fra.me.REG[5]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); - fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); - if (!once_value_3) { - fra.me.REG[5] = BOX_NativeString("' access on 'null'."); - REGB0 = TAG_Int(19); - fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0); - once_value_3 = fra.me.REG[5]; - register_static_object(&once_value_3); - } else fra.me.REG[5] = once_value_3; - fra.me.REG[5] = fra.me.REG[5]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); - fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]); - /* syntax/typing.nit:1359 */ - goto label1; - } - /* syntax/typing.nit:1361 */ - fra.me.REG[4] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[2])(fra.me.REG[2]); - /* syntax/typing.nit:1362 */ - REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1363 */ - REGB0 = TAG_Int(5); - fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_4) { - fra.me.REG[6] = BOX_NativeString("Error: Attribute "); - REGB0 = TAG_Int(17); - fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0); - once_value_4 = fra.me.REG[6]; - register_static_object(&once_value_4); - } else fra.me.REG[6] = once_value_4; - fra.me.REG[6] = fra.me.REG[6]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); - fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); - if (!once_value_5) { - fra.me.REG[6] = BOX_NativeString(" doesn't exists in "); - REGB0 = TAG_Int(19); - fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0); - once_value_5 = fra.me.REG[6]; - register_static_object(&once_value_5); - } else fra.me.REG[6] = once_value_5; - fra.me.REG[6] = fra.me.REG[6]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); - fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); - if (!once_value_6) { - fra.me.REG[6] = BOX_NativeString("."); - REGB0 = TAG_Int(1); - fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0); - once_value_6 = fra.me.REG[6]; - register_static_object(&once_value_6); - } else fra.me.REG[6] = once_value_6; - fra.me.REG[6] = fra.me.REG[6]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); - fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]); - /* syntax/typing.nit:1364 */ - goto label1; - } - /* syntax/typing.nit:1366 */ - fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_attribute(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); - /* syntax/typing.nit:1367 */ - fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[4])(fra.me.REG[4]); - fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra.me.REG[6])(fra.me.REG[6]); - fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[6])(fra.me.REG[6]); - REGB0 = CALL_metamodel___abstractmetamodel___MMModule___visibility_for(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); - REGB1 = TAG_Int(3); - REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/; - if (UNTAG_Bool(REGB2)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:242 */ - REGB1 = TAG_Bool(UNTAG_Int(REGB0)UNTAG_Int(REGB2)); - /* syntax/typing.nit:1456 */ - if (UNTAG_Bool(REGB3)) { - REGB3 = TAG_Bool(1); - } else { - REGB4 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2)); - if (UNTAG_Bool(REGB4)) { - } else { - /* ../lib/standard/kernel.nit:237 */ - REGB5 = TAG_Bool((REGB1)==(REGB2)); - /* syntax/typing.nit:1456 */ - REGB4 = REGB5; - } - REGB4 = TAG_Bool(!UNTAG_Bool(REGB4)); - if (UNTAG_Bool(REGB4)) { - REGB4 = TAG_Int(1); - /* ../lib/standard/kernel.nit:246 */ - REGB4 = TAG_Int(-UNTAG_Int(REGB4)); - /* syntax/typing.nit:1456 */ - REGB5 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB4)); - if (UNTAG_Bool(REGB5)) { - } else { - /* ../lib/standard/kernel.nit:237 */ - REGB4 = TAG_Bool((REGB0)==(REGB4)); - /* syntax/typing.nit:1456 */ - REGB5 = REGB4; - } - } else { - REGB4 = TAG_Bool(0); - REGB5 = REGB4; - } - REGB3 = REGB5; - } - if (UNTAG_Bool(REGB3)) { - /* syntax/typing.nit:1457 */ - REGB3 = TAG_Int(5); - fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3); - if (!once_value_1) { - fra.me.REG[6] = BOX_NativeString("Error: arity mismatch; prototype is '"); - REGB3 = TAG_Int(37); - fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB3); - once_value_1 = fra.me.REG[6]; - register_static_object(&once_value_1); - } else fra.me.REG[6] = once_value_1; - fra.me.REG[6] = fra.me.REG[6]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); - fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]); - if (!once_value_2) { - fra.me.REG[3] = BOX_NativeString(""); - REGB3 = TAG_Int(0); - fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB3); - once_value_2 = fra.me.REG[3]; - register_static_object(&once_value_2); - } else fra.me.REG[3] = once_value_2; - fra.me.REG[3] = fra.me.REG[3]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]); - fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]); - if (!once_value_3) { - fra.me.REG[3] = BOX_NativeString("'."); - REGB3 = TAG_Int(2); - fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB3); - 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]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]); - fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]); - /* syntax/typing.nit:1458 */ - REGB3 = TAG_Bool(0); - goto label4; - } - /* syntax/typing.nit:1460 */ - REGB5 = TAG_Int(0); - /* syntax/typing.nit:1461 */ - REGB4 = TAG_Int(0); - /* ../lib/standard/kernel.nit:399 */ - REGB6 = REGB1; - /* ../lib/standard/kernel.nit:404 */ - while(1) { - REGB7 = TAG_Bool(VAL_ISA(REGB6, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/; - if (UNTAG_Bool(REGB7)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:242 */ - REGB7 = TAG_Bool(UNTAG_Int(REGB4)=UNTAG_Int(REGB10)); - /* ../lib/standard/collection/array.nit:281 */ - if (UNTAG_Bool(REGB10)) { - REGB10 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); - if (UNTAG_Bool(REGB10)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281); - } - REGB10 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]); - REGB11 = TAG_Bool(VAL_ISA(REGB10, VTCOLOR_standard___kernel___Comparable___OTHER(REGB9), VTID_standard___kernel___Comparable___OTHER(REGB9))) /*cast OTHER*/; - if (UNTAG_Bool(REGB11)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:242 */ - REGB10 = TAG_Bool(UNTAG_Int(REGB9)val[UNTAG_Int(REGB9)]; - /* ../lib/standard/collection/array.nit:282 */ - goto label5; - label5: while(0); - /* syntax/typing.nit:1467 */ - CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]); - /* syntax/typing.nit:1468 */ - REGB9 = TAG_Int(1); - /* ../lib/standard/kernel.nit:245 */ - REGB9 = TAG_Int(UNTAG_Int(REGB5)+UNTAG_Int(REGB9)); - /* syntax/typing.nit:1468 */ - REGB5 = REGB9; - /* ../lib/standard/kernel.nit:395 */ - REGB9 = TAG_Int(1); - /* ../lib/standard/kernel.nit:245 */ - REGB9 = TAG_Int(UNTAG_Int(REGB8)+UNTAG_Int(REGB9)); - /* ../lib/standard/kernel.nit:395 */ - REGB8 = REGB9; - } else { - /* ../lib/standard/kernel.nit:393 */ - goto label6; - } - } - label6: while(0); - } else { - /* syntax/typing.nit:1471 */ - REGB8 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB8)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1471); - } - /* ../lib/standard/collection/array.nit:279 */ - fra.me.REG[3] = fra.me.REG[4]; - REGB8 = REGB5; - /* ../lib/standard/collection/array.nit:281 */ - REGB7 = TAG_Int(0); - REGB9 = TAG_Bool(VAL_ISA(REGB7, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8), VTID_standard___kernel___Comparable___OTHER(REGB8))) /*cast OTHER*/; - if (UNTAG_Bool(REGB9)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:243 */ - REGB7 = TAG_Bool(UNTAG_Int(REGB8)>=UNTAG_Int(REGB7)); - /* ../lib/standard/collection/array.nit:281 */ - if (UNTAG_Bool(REGB7)) { - REGB7 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL); - if (UNTAG_Bool(REGB7)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281); - } - REGB7 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]); - REGB9 = TAG_Bool(VAL_ISA(REGB7, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8), VTID_standard___kernel___Comparable___OTHER(REGB8))) /*cast OTHER*/; - if (UNTAG_Bool(REGB9)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:242 */ - REGB7 = TAG_Bool(UNTAG_Int(REGB8)val[UNTAG_Int(REGB8)]; - /* ../lib/standard/collection/array.nit:282 */ - goto label7; - label7: while(0); - /* syntax/typing.nit:1471 */ - fra.me.REG[0] = fra.me.REG[3]; - /* syntax/typing.nit:1472 */ - CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]); - /* syntax/typing.nit:1473 */ - REGB8 = TAG_Int(1); - /* ../lib/standard/kernel.nit:245 */ - REGB8 = TAG_Int(UNTAG_Int(REGB5)+UNTAG_Int(REGB8)); - /* syntax/typing.nit:1473 */ - REGB5 = REGB8; - } - /* ../lib/standard/kernel.nit:406 */ - REGB8 = TAG_Int(1); - /* ../lib/standard/kernel.nit:245 */ - REGB8 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB8)); - /* ../lib/standard/kernel.nit:406 */ - REGB4 = REGB8; - } else { - /* ../lib/standard/kernel.nit:404 */ - goto label8; - } - } - label8: while(0); - /* syntax/typing.nit:1476 */ - REGB4 = TAG_Bool(1); - REGB3 = REGB4; - goto label4; - label4: while(0); - stack_frame_head = fra.me.prev; - return REGB3; -} -static const char LOCATE_syntax___typing___AAbsAbsSendExpr___process_closures[] = "typing::AAbsAbsSendExpr::process_closures"; -val_t syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){ - struct {struct stack_frame_t me; val_t MORE_REG[16];} fra; - val_t REGB0; - val_t REGB1; - val_t REGB2; - val_t REGB3; - val_t REGB4; - val_t REGB5; - val_t tmp; - static val_t once_value_2; /* Once value */ - static val_t once_value_3; /* Once value */ - static val_t once_value_4; /* Once value */ - static val_t once_value_5; /* Once value */ - static val_t once_value_6; /* Once value */ - static val_t once_value_7; /* Once value */ - static val_t once_value_8; /* Once value */ - static val_t once_value_11; /* Once value */ - static val_t once_value_12; /* Once value */ - static val_t once_value_13; /* Once value */ - static val_t once_value_14; /* Once value */ - static val_t once_value_15; /* Once value */ - static val_t once_value_16; /* Once value */ - static val_t once_value_18; /* Once value */ - static val_t once_value_19; /* Once value */ - static val_t once_value_20; /* Once value */ - static val_t once_value_21; /* Once value */ - static val_t once_value_22; /* Once value */ - static val_t once_value_24; /* Once value */ - static val_t once_value_25; /* Once value */ - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1479; - fra.me.meth = LOCATE_syntax___typing___AAbsAbsSendExpr___process_closures; - fra.me.has_broke = 0; - fra.me.REG_size = 17; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[5] = NIT_NULL; - fra.me.REG[6] = NIT_NULL; - fra.me.REG[7] = NIT_NULL; - fra.me.REG[8] = NIT_NULL; - fra.me.REG[9] = NIT_NULL; - fra.me.REG[10] = NIT_NULL; - fra.me.REG[11] = NIT_NULL; - fra.me.REG[12] = NIT_NULL; - fra.me.REG[13] = NIT_NULL; - fra.me.REG[14] = NIT_NULL; - fra.me.REG[15] = NIT_NULL; - fra.me.REG[16] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - fra.me.REG[2] = p2; - fra.me.REG[3] = p3; - fra.me.REG[4] = p4; - /* syntax/typing.nit:1482 */ - fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[2])(fra.me.REG[2]); - /* syntax/typing.nit:1483 */ - fra.me.REG[6] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[2])(fra.me.REG[2]); - /* syntax/typing.nit:1484 */ - REGB0 = TAG_Int(0); - /* ../lib/standard/collection/array.nit:267 */ - fra.me.REG[7] = fra.me.REG[6]; - /* ../lib/standard/collection/array.nit:270 */ - REGB1 = TAG_Int(0); - /* ../lib/standard/collection/array.nit:271 */ - REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); - if (UNTAG_Bool(REGB2)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271); - } - REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]); - /* ../lib/standard/collection/array.nit:272 */ - fra.me.REG[8] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]); - /* ../lib/standard/collection/array.nit:273 */ - while(1) { - /* ../lib/standard/collection/array.nit:24 */ - REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); - if (UNTAG_Bool(REGB2)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); - } - REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]); - REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/; - if (UNTAG_Bool(REGB3)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:242 */ - REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; - /* syntax/typing.nit:1486 */ - REGB2 = CALL_metamodel___static_type___MMClosure___is_optional(fra.me.REG[9])(fra.me.REG[9]); - REGB2 = TAG_Bool(!UNTAG_Bool(REGB2)); - if (UNTAG_Bool(REGB2)) { - REGB2 = TAG_Int(1); - /* ../lib/standard/kernel.nit:245 */ - REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2)); - /* syntax/typing.nit:1486 */ - REGB0 = REGB2; - } - /* ../lib/standard/collection/array.nit:275 */ - REGB2 = TAG_Int(1); - /* ../lib/standard/kernel.nit:245 */ - REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2)); - /* ../lib/standard/collection/array.nit:275 */ - REGB1 = REGB2; - } else { - /* ../lib/standard/collection/array.nit:273 */ - goto label1; - } - } - label1: while(0); - /* syntax/typing.nit:1488 */ - REGB1 = TAG_Int(0); - /* syntax/typing.nit:1489 */ - REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB2)) { - } else { - REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB3)) { - REGB3 = TAG_Bool(0); - REGB2 = REGB3; - } else { - REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL); - REGB2 = REGB3; - } - } - REGB2 = TAG_Bool(!UNTAG_Bool(REGB2)); - if (UNTAG_Bool(REGB2)) { - REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB2)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1489); - } - /* ../lib/standard/collection/array.nit:24 */ - REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL); - if (UNTAG_Bool(REGB2)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); - } - REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]); - /* syntax/typing.nit:1489 */ - REGB1 = REGB2; - } - /* ../lib/standard/collection/array.nit:24 */ - REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL); - if (UNTAG_Bool(REGB2)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); - } - REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]); - /* syntax/typing.nit:1490 */ - REGB3 = TAG_Int(0); - REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/; - if (UNTAG_Bool(REGB4)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:244 */ - REGB3 = TAG_Bool(UNTAG_Int(REGB2)>UNTAG_Int(REGB3)); - /* syntax/typing.nit:1490 */ - if (UNTAG_Bool(REGB3)) { - /* syntax/typing.nit:1491 */ - REGB3 = TAG_Int(0); - REGB2 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB3)); - if (UNTAG_Bool(REGB2)) { - } else { - /* ../lib/standard/kernel.nit:237 */ - REGB3 = TAG_Bool((REGB1)==(REGB3)); - /* syntax/typing.nit:1491 */ - REGB2 = REGB3; - } - if (UNTAG_Bool(REGB2)) { - REGB2 = TAG_Int(0); - REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/; - if (UNTAG_Bool(REGB3)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:244 */ - REGB2 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB2)); - } else { - /* syntax/typing.nit:1491 */ - REGB3 = TAG_Bool(0); - REGB2 = REGB3; - } - if (UNTAG_Bool(REGB2)) { - /* syntax/typing.nit:1492 */ - REGB2 = TAG_Int(5); - fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2); - if (!once_value_2) { - fra.me.REG[7] = BOX_NativeString("Error: "); - REGB2 = TAG_Int(7); - fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB2); - once_value_2 = fra.me.REG[7]; - register_static_object(&once_value_2); - } else fra.me.REG[7] = once_value_2; - fra.me.REG[7] = fra.me.REG[7]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]); - fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]); - if (!once_value_3) { - fra.me.REG[7] = BOX_NativeString(" requires "); - REGB2 = TAG_Int(10); - fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB2); - once_value_3 = fra.me.REG[7]; - register_static_object(&once_value_3); - } else fra.me.REG[7] = once_value_3; - fra.me.REG[7] = fra.me.REG[7]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]); - /* ../lib/standard/collection/array.nit:24 */ - REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL); - if (UNTAG_Bool(REGB2)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); - } - REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]); - /* syntax/typing.nit:1492 */ - fra.me.REG[7] = CALL_standard___string___Object___to_s(REGB2)(REGB2); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]); - if (!once_value_4) { - fra.me.REG[7] = BOX_NativeString(" blocks."); - REGB2 = TAG_Int(8); - fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB2); - once_value_4 = fra.me.REG[7]; - register_static_object(&once_value_4); - } else fra.me.REG[7] = once_value_4; - fra.me.REG[7] = fra.me.REG[7]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]); - fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[8]); - } else { - /* ../lib/standard/collection/array.nit:24 */ - REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL); - if (UNTAG_Bool(REGB2)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); - } - REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]); - REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/; - if (UNTAG_Bool(REGB3)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:244 */ - REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2)); - /* syntax/typing.nit:1493 */ - if (UNTAG_Bool(REGB2)) { - REGB2 = TAG_Bool(1); - } else { - REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/; - if (UNTAG_Bool(REGB3)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:242 */ - REGB0 = TAG_Bool(UNTAG_Int(REGB1)UNTAG_Int(REGB2)); - /* syntax/typing.nit:1501 */ - if (UNTAG_Bool(REGB2)) { - REGB2 = TAG_Int(1); - /* ../lib/standard/kernel.nit:247 */ - REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2)); - /* syntax/typing.nit:1501 */ - REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1501); - } - /* ../lib/standard/collection/array.nit:279 */ - fra.me.REG[7] = fra.me.REG[4]; - /* ../lib/standard/collection/array.nit:281 */ - REGB0 = TAG_Int(0); - REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/; - if (UNTAG_Bool(REGB3)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:243 */ - REGB0 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB0)); - /* ../lib/standard/collection/array.nit:281 */ - if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281); - } - REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]); - REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/; - if (UNTAG_Bool(REGB3)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:242 */ - REGB0 = TAG_Bool(UNTAG_Int(REGB2)val[UNTAG_Int(REGB2)]; - /* ../lib/standard/collection/array.nit:282 */ - goto label9; - label9: while(0); - /* syntax/typing.nit:1501 */ - REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL); - if (UNTAG_Bool(REGB2)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1501); - } - fra.me.REG[7] = CALL_parser___parser_nodes___ALabelable___n_label(fra.me.REG[7])(fra.me.REG[7]); - } else { - fra.me.REG[7] = NIT_NULL; - } - /* syntax/typing.nit:1504 */ - REGB2 = TAG_Int(0); - /* ../lib/standard/kernel.nit:399 */ - REGB0 = REGB1; - /* ../lib/standard/kernel.nit:404 */ - while(1) { - REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/; - if (UNTAG_Bool(REGB3)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:242 */ - REGB3 = TAG_Bool(UNTAG_Int(REGB2)=UNTAG_Int(REGB4)); - /* ../lib/standard/collection/array.nit:281 */ - if (UNTAG_Bool(REGB4)) { - REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[9])!=NIT_NULL); - if (UNTAG_Bool(REGB4)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281); - } - REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[9]); - REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/; - if (UNTAG_Bool(REGB5)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:242 */ - REGB4 = TAG_Bool(UNTAG_Int(REGB3)val[UNTAG_Int(REGB3)]; - /* ../lib/standard/collection/array.nit:282 */ - goto label10; - label10: while(0); - /* syntax/typing.nit:1506 */ - fra.me.REG[10] = CALL_parser___parser_nodes___AClosureDef___n_id(fra.me.REG[9])(fra.me.REG[9]); - fra.me.REG[10] = CALL_syntax___typing___AClosureId___to_symbol(fra.me.REG[10])(fra.me.REG[10]); - /* syntax/typing.nit:1507 */ - fra.me.REG[11] = CALL_metamodel___static_type___MMSignature___closure_named(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[10]); - /* syntax/typing.nit:1508 */ - REGB3 = TAG_Bool(fra.me.REG[11]==NIT_NULL); - if (UNTAG_Bool(REGB3)) { - } else { - REGB4 = TAG_Bool(fra.me.REG[11]==NIT_NULL); - if (UNTAG_Bool(REGB4)) { - REGB4 = TAG_Bool(0); - REGB3 = REGB4; - } else { - REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[11])(fra.me.REG[11], NIT_NULL); - REGB3 = REGB4; - } - } - REGB3 = TAG_Bool(!UNTAG_Bool(REGB3)); - if (UNTAG_Bool(REGB3)) { - /* syntax/typing.nit:1509 */ - fra.me.REG[11] = NEW_EscapableClosure_syntax___scope___EscapableClosure___init(fra.me.REG[9], fra.me.REG[11], fra.me.REG[8]); - /* syntax/typing.nit:1510 */ - fra.me.REG[12] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[1])(fra.me.REG[1]); - CALL_syntax___scope___ScopeContext___push_escapable(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11], fra.me.REG[7]); - /* syntax/typing.nit:1511 */ - CALL_syntax___typing___AClosureDef___accept_typing2(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[1], fra.me.REG[11]); - /* syntax/typing.nit:1512 */ - fra.me.REG[11] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[1])(fra.me.REG[1]); - CALL_syntax___scope___ScopeContext___pop(fra.me.REG[11])(fra.me.REG[11]); - } else { - /* ../lib/standard/collection/array.nit:24 */ - REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL); - if (UNTAG_Bool(REGB3)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); - } - REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]); - /* syntax/typing.nit:1513 */ - REGB4 = TAG_Int(1); - REGB5 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB4)); - if (UNTAG_Bool(REGB5)) { - } else { - /* ../lib/standard/kernel.nit:237 */ - REGB4 = TAG_Bool((REGB3)==(REGB4)); - /* syntax/typing.nit:1513 */ - REGB5 = REGB4; - } - if (UNTAG_Bool(REGB5)) { - /* syntax/typing.nit:1514 */ - fra.me.REG[11] = CALL_parser___parser_nodes___AClosureDef___n_id(fra.me.REG[9])(fra.me.REG[9]); - REGB5 = TAG_Int(7); - fra.me.REG[12] = NEW_Array_standard___collection___array___Array___with_capacity(REGB5); - if (!once_value_11) { - fra.me.REG[13] = BOX_NativeString("Error: no closure named '!"); - REGB5 = TAG_Int(26); - fra.me.REG[13] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[13])(fra.me.REG[13], REGB5); - once_value_11 = fra.me.REG[13]; - register_static_object(&once_value_11); - } else fra.me.REG[13] = once_value_11; - fra.me.REG[13] = fra.me.REG[13]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]); - fra.me.REG[13] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]); - if (!once_value_12) { - fra.me.REG[13] = BOX_NativeString("' in "); - REGB5 = TAG_Int(5); - fra.me.REG[13] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[13])(fra.me.REG[13], REGB5); - once_value_12 = fra.me.REG[13]; - register_static_object(&once_value_12); - } else fra.me.REG[13] = once_value_12; - fra.me.REG[13] = fra.me.REG[13]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]); - fra.me.REG[13] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]); - if (!once_value_13) { - fra.me.REG[13] = BOX_NativeString("; only closure is !"); - REGB5 = TAG_Int(19); - fra.me.REG[13] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[13])(fra.me.REG[13], REGB5); - once_value_13 = fra.me.REG[13]; - register_static_object(&once_value_13); - } else fra.me.REG[13] = once_value_13; - fra.me.REG[13] = fra.me.REG[13]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]); - fra.me.REG[13] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[6])(fra.me.REG[6]); - REGB5 = TAG_Bool(fra.me.REG[13]==NIT_NULL); - if (UNTAG_Bool(REGB5)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1514); - } - fra.me.REG[13] = CALL_metamodel___static_type___MMClosure___name(fra.me.REG[13])(fra.me.REG[13]); - fra.me.REG[13] = CALL_standard___string___Object___to_s(fra.me.REG[13])(fra.me.REG[13]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]); - if (!once_value_14) { - fra.me.REG[13] = BOX_NativeString("."); - REGB5 = TAG_Int(1); - fra.me.REG[13] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[13])(fra.me.REG[13], REGB5); - once_value_14 = fra.me.REG[13]; - register_static_object(&once_value_14); - } else fra.me.REG[13] = once_value_14; - fra.me.REG[13] = fra.me.REG[13]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]); - fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[11], fra.me.REG[12]); - } else { - /* syntax/typing.nit:1516 */ - fra.me.REG[12] = NEW_Array_standard___collection___array___Array___init(); - /* ../lib/standard/collection/array.nit:267 */ - fra.me.REG[11] = fra.me.REG[6]; - /* ../lib/standard/collection/array.nit:270 */ - REGB5 = TAG_Int(0); - /* ../lib/standard/collection/array.nit:271 */ - REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[11])!=NIT_NULL); - if (UNTAG_Bool(REGB4)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271); - } - REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[11]); - /* ../lib/standard/collection/array.nit:272 */ - fra.me.REG[13] = ATTR_standard___collection___array___Array____items(fra.me.REG[11]); - /* ../lib/standard/collection/array.nit:273 */ - while(1) { - /* ../lib/standard/collection/array.nit:24 */ - REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[11])!=NIT_NULL); - if (UNTAG_Bool(REGB4)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); - } - REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[11]); - REGB3 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/; - if (UNTAG_Bool(REGB3)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:242 */ - REGB4 = TAG_Bool(UNTAG_Int(REGB5)val[UNTAG_Int(REGB5)]; - /* syntax/typing.nit:1518 */ - REGB4 = TAG_Int(3); - fra.me.REG[15] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4); - if (!once_value_15) { - fra.me.REG[16] = BOX_NativeString("!"); - REGB4 = TAG_Int(1); - fra.me.REG[16] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[16])(fra.me.REG[16], REGB4); - once_value_15 = fra.me.REG[16]; - register_static_object(&once_value_15); - } else fra.me.REG[16] = once_value_15; - fra.me.REG[16] = fra.me.REG[16]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[15])(fra.me.REG[15], fra.me.REG[16]); - fra.me.REG[14] = CALL_metamodel___static_type___MMClosure___name(fra.me.REG[14])(fra.me.REG[14]); - fra.me.REG[14] = CALL_standard___string___Object___to_s(fra.me.REG[14])(fra.me.REG[14]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[15])(fra.me.REG[15], fra.me.REG[14]); - if (!once_value_16) { - fra.me.REG[14] = BOX_NativeString(""); - REGB4 = TAG_Int(0); - fra.me.REG[14] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[14])(fra.me.REG[14], REGB4); - once_value_16 = fra.me.REG[14]; - register_static_object(&once_value_16); - } else fra.me.REG[14] = once_value_16; - fra.me.REG[14] = fra.me.REG[14]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[15])(fra.me.REG[15], fra.me.REG[14]); - fra.me.REG[15] = CALL_standard___string___Object___to_s(fra.me.REG[15])(fra.me.REG[15]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[15]); - /* ../lib/standard/collection/array.nit:275 */ - REGB4 = TAG_Int(1); - /* ../lib/standard/kernel.nit:245 */ - REGB4 = TAG_Int(UNTAG_Int(REGB5)+UNTAG_Int(REGB4)); - /* ../lib/standard/collection/array.nit:275 */ - REGB5 = REGB4; - } else { - /* ../lib/standard/collection/array.nit:273 */ - goto label17; - } - } - label17: while(0); - /* syntax/typing.nit:1520 */ - fra.me.REG[9] = CALL_parser___parser_nodes___AClosureDef___n_id(fra.me.REG[9])(fra.me.REG[9]); - REGB5 = TAG_Int(7); - fra.me.REG[13] = NEW_Array_standard___collection___array___Array___with_capacity(REGB5); - if (!once_value_18) { - fra.me.REG[11] = BOX_NativeString("Error: no closure named '!"); - REGB5 = TAG_Int(26); - fra.me.REG[11] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[11])(fra.me.REG[11], REGB5); - once_value_18 = fra.me.REG[11]; - register_static_object(&once_value_18); - } else fra.me.REG[11] = once_value_18; - fra.me.REG[11] = fra.me.REG[11]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[13])(fra.me.REG[13], fra.me.REG[11]); - fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[13])(fra.me.REG[13], fra.me.REG[10]); - if (!once_value_19) { - fra.me.REG[10] = BOX_NativeString("' in "); - REGB5 = TAG_Int(5); - fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB5); - once_value_19 = fra.me.REG[10]; - register_static_object(&once_value_19); - } else fra.me.REG[10] = once_value_19; - fra.me.REG[10] = fra.me.REG[10]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[13])(fra.me.REG[13], fra.me.REG[10]); - fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[13])(fra.me.REG[13], fra.me.REG[10]); - if (!once_value_20) { - fra.me.REG[10] = BOX_NativeString("; only closures are "); - REGB5 = TAG_Int(20); - fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB5); - once_value_20 = fra.me.REG[10]; - register_static_object(&once_value_20); - } else fra.me.REG[10] = once_value_20; - fra.me.REG[10] = fra.me.REG[10]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[13])(fra.me.REG[13], fra.me.REG[10]); - if (!once_value_21) { - fra.me.REG[10] = BOX_NativeString(","); - REGB5 = TAG_Int(1); - fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB5); - once_value_21 = fra.me.REG[10]; - register_static_object(&once_value_21); - } else fra.me.REG[10] = once_value_21; - fra.me.REG[10] = fra.me.REG[10]; - fra.me.REG[10] = CALL_standard___string___Collection___join(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[10]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[13])(fra.me.REG[13], fra.me.REG[10]); - if (!once_value_22) { - fra.me.REG[10] = BOX_NativeString("."); - REGB5 = TAG_Int(1); - fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB5); - once_value_22 = fra.me.REG[10]; - register_static_object(&once_value_22); - } else fra.me.REG[10] = once_value_22; - fra.me.REG[10] = fra.me.REG[10]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[13])(fra.me.REG[13], fra.me.REG[10]); - fra.me.REG[13] = CALL_standard___string___Object___to_s(fra.me.REG[13])(fra.me.REG[13]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9], fra.me.REG[13]); - } - } - /* ../lib/standard/kernel.nit:406 */ - REGB5 = TAG_Int(1); - /* ../lib/standard/kernel.nit:245 */ - REGB5 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB5)); - /* ../lib/standard/kernel.nit:406 */ - REGB2 = REGB5; - } else { - /* ../lib/standard/kernel.nit:404 */ - goto label23; - } - } - label23: while(0); - /* syntax/typing.nit:1525 */ - REGB2 = TAG_Bool(fra.me.REG[8]==NIT_NULL); - if (UNTAG_Bool(REGB2)) { - } else { - REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(0); - REGB2 = REGB0; - } else { - REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL); - REGB2 = REGB0; - } - } - REGB2 = TAG_Bool(!UNTAG_Bool(REGB2)); - if (UNTAG_Bool(REGB2)) { - /* syntax/typing.nit:1526 */ - fra.me.REG[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5], fra.me.REG[8]); - fra.me.REG[5] = fra.me.REG[8]; - } - } - } - } else { - /* syntax/typing.nit:1529 */ - REGB2 = TAG_Int(0); - REGB0 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2)); - if (UNTAG_Bool(REGB0)) { - } else { - /* ../lib/standard/kernel.nit:237 */ - REGB2 = TAG_Bool((REGB1)==(REGB2)); - /* syntax/typing.nit:1529 */ - REGB0 = REGB2; - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1530 */ - REGB0 = TAG_Int(3); - fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_24) { - fra.me.REG[6] = BOX_NativeString("Error: "); - REGB0 = TAG_Int(7); - fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0); - once_value_24 = fra.me.REG[6]; - register_static_object(&once_value_24); - } else fra.me.REG[6] = once_value_24; - fra.me.REG[6] = fra.me.REG[6]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[6]); - fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]); - if (!once_value_25) { - fra.me.REG[3] = BOX_NativeString(" does not require blocks."); - REGB0 = TAG_Int(25); - fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0); - once_value_25 = fra.me.REG[3]; - register_static_object(&once_value_25); - } else fra.me.REG[3] = once_value_25; - fra.me.REG[3] = fra.me.REG[3]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]); - fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[8]); - } - } - /* syntax/typing.nit:1532 */ - goto label26; - label26: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[5]; -} -static const char LOCATE_syntax___typing___AAbsSendExpr___do_typing[] = "typing::AAbsSendExpr::do_typing"; -void syntax___typing___AAbsSendExpr___do_typing(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7){ - struct {struct stack_frame_t me; val_t MORE_REG[6];} fra; - val_t REGB0; - val_t REGB1; - val_t REGB2; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1537; - fra.me.meth = LOCATE_syntax___typing___AAbsSendExpr___do_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 7; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[5] = NIT_NULL; - fra.me.REG[6] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - fra.me.REG[2] = p2; - REGB0 = p3; - REGB1 = p4; - fra.me.REG[3] = p5; - fra.me.REG[4] = p6; - fra.me.REG[5] = p7; - /* syntax/typing.nit:1540 */ - fra.me.REG[3] = CALL_syntax___typing___AAbsSendExpr___get_property(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], REGB0, fra.me.REG[3]); - /* syntax/typing.nit:1541 */ - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB2)) { - REGB2 = TAG_Bool(0); - REGB0 = REGB2; - } else { - REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); - REGB0 = REGB2; - } - } - if (UNTAG_Bool(REGB0)) { - goto label1; - } - /* syntax/typing.nit:1542 */ - fra.me.REG[2] = CALL_syntax___typing___AAbsSendExpr___get_signature(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], REGB1); - /* syntax/typing.nit:1543 */ - REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1543); - } - fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[3])(fra.me.REG[3]); - REGB1 = CALL_syntax___typing___AAbsAbsSendExpr___process_signature(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[6], fra.me.REG[4]); - REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); - if (UNTAG_Bool(REGB1)) { - goto label1; - } - /* syntax/typing.nit:1544 */ - REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1544); - } - fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[5] = CALL_syntax___typing___AAbsAbsSendExpr___process_closures(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[4], fra.me.REG[5]); - /* syntax/typing.nit:1545 */ - REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(0); - REGB1 = REGB0; - } else { - REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL); - REGB1 = REGB0; - } - } - if (UNTAG_Bool(REGB1)) { - fra.me.REG[4] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[2])(fra.me.REG[2]); - REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(0); - REGB1 = REGB0; - } else { - REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL); - REGB1 = REGB0; - } - } - REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); - } else { - REGB0 = TAG_Bool(0); - REGB1 = REGB0; - } - if (UNTAG_Bool(REGB1)) { - goto label1; - } - /* syntax/typing.nit:1546 */ - ATTR_syntax___typing___AAbsSendExpr____prop(fra.me.REG[0]) = fra.me.REG[3]; - /* syntax/typing.nit:1547 */ - ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra.me.REG[0]) = fra.me.REG[2]; - /* syntax/typing.nit:1548 */ - ATTR_syntax___typing___AAbsSendExpr____return_type(fra.me.REG[0]) = fra.me.REG[5]; - label1: while(0); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AAbsSendExpr___get_property[] = "typing::AAbsSendExpr::get_property"; -val_t syntax___typing___AAbsSendExpr___get_property(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){ - struct {struct stack_frame_t me; val_t MORE_REG[9];} fra; - val_t REGB0; - val_t REGB1; - val_t REGB2; - val_t REGB3; - val_t tmp; - static val_t once_value_1; /* Once value */ - static val_t once_value_2; /* Once value */ - static val_t once_value_3; /* Once value */ - static val_t once_value_4; /* Once value */ - static val_t once_value_5; /* Once value */ - static val_t once_value_6; /* Once value */ - static val_t once_value_8; /* Once value */ - static val_t once_value_9; /* Once value */ - static val_t once_value_10; /* Once value */ - static val_t once_value_11; /* Once value */ - static val_t once_value_12; /* Once value */ - static val_t once_value_13; /* Once value */ - static val_t once_value_14; /* Once value */ - static val_t once_value_15; /* Once value */ - static val_t once_value_16; /* Once value */ - static val_t once_value_17; /* Once value */ - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1551; - fra.me.meth = LOCATE_syntax___typing___AAbsSendExpr___get_property; - fra.me.has_broke = 0; - fra.me.REG_size = 10; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[5] = NIT_NULL; - fra.me.REG[6] = NIT_NULL; - fra.me.REG[7] = NIT_NULL; - fra.me.REG[8] = NIT_NULL; - fra.me.REG[9] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - fra.me.REG[2] = p2; - REGB0 = p3; - fra.me.REG[3] = p4; - /* syntax/typing.nit:1553 */ - REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/; - if (UNTAG_Bool(REGB1)) { - /* syntax/typing.nit:1554 */ - if (!once_value_1) { - if (!once_value_2) { - fra.me.REG[4] = BOX_NativeString("=="); - REGB1 = TAG_Int(2); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB1); - once_value_2 = fra.me.REG[4]; - register_static_object(&once_value_2); - } else fra.me.REG[4] = once_value_2; - fra.me.REG[4] = fra.me.REG[4]; - fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]); - once_value_1 = fra.me.REG[4]; - register_static_object(&once_value_1); - } else fra.me.REG[4] = once_value_1; - fra.me.REG[4] = fra.me.REG[4]; - REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[4])); - if (UNTAG_Bool(REGB1)) { - } else { - REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - REGB1 = REGB2; - } - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(1); - } else { - if (!once_value_3) { - if (!once_value_4) { - fra.me.REG[4] = BOX_NativeString("!="); - REGB2 = TAG_Int(2); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2); - once_value_4 = fra.me.REG[4]; - register_static_object(&once_value_4); - } else fra.me.REG[4] = once_value_4; - fra.me.REG[4] = fra.me.REG[4]; - fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]); - once_value_3 = fra.me.REG[4]; - register_static_object(&once_value_3); - } else fra.me.REG[4] = once_value_3; - fra.me.REG[4] = fra.me.REG[4]; - REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[4])); - if (UNTAG_Bool(REGB2)) { - } else { - REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - REGB2 = REGB3; - } - REGB1 = REGB2; - } - if (UNTAG_Bool(REGB1)) { - /* syntax/typing.nit:1556 */ - fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[4] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[4])(fra.me.REG[4]); - fra.me.REG[2] = fra.me.REG[4]; - } else { - /* syntax/typing.nit:1558 */ - REGB1 = TAG_Int(3); - fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1); - if (!once_value_5) { - fra.me.REG[5] = BOX_NativeString("Error: Method '"); - REGB1 = TAG_Int(15); - fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB1); - once_value_5 = fra.me.REG[5]; - register_static_object(&once_value_5); - } else fra.me.REG[5] = once_value_5; - fra.me.REG[5] = fra.me.REG[5]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); - fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); - if (!once_value_6) { - fra.me.REG[5] = BOX_NativeString("' call on 'null'."); - REGB1 = TAG_Int(17); - fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB1); - once_value_6 = fra.me.REG[5]; - register_static_object(&once_value_6); - } else fra.me.REG[5] = once_value_6; - fra.me.REG[5] = fra.me.REG[5]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); - fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]); - /* syntax/typing.nit:1559 */ - fra.me.REG[4] = NIT_NULL; - goto label7; - } - } - /* syntax/typing.nit:1562 */ - fra.me.REG[5] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[2])(fra.me.REG[2]); - /* syntax/typing.nit:1563 */ - fra.me.REG[6] = NIT_NULL; - /* syntax/typing.nit:1564 */ - REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]); - if (UNTAG_Bool(REGB1)) { - fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]); - fra.me.REG[6] = fra.me.REG[7]; - } - /* syntax/typing.nit:1565 */ - REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL); - if (UNTAG_Bool(REGB2)) { - REGB2 = TAG_Bool(0); - REGB1 = REGB2; - } else { - REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL); - REGB1 = REGB2; - } - } - if (UNTAG_Bool(REGB1)) { - /* syntax/typing.nit:1566 */ - fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]); - /* ../lib/standard/collection/array.nit:24 */ - REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); - } - REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]); - /* syntax/typing.nit:1567 */ - REGB2 = TAG_Int(1); - REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/; - if (UNTAG_Bool(REGB3)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:244 */ - REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2)); - /* syntax/typing.nit:1567 */ - if (UNTAG_Bool(REGB2)) { - /* syntax/typing.nit:1568 */ - REGB2 = TAG_Int(5); - fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2); - if (!once_value_8) { - fra.me.REG[9] = BOX_NativeString("Error: Ambigous method name '"); - REGB2 = TAG_Int(29); - fra.me.REG[9] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[9])(fra.me.REG[9], REGB2); - once_value_8 = fra.me.REG[9]; - register_static_object(&once_value_8); - } else fra.me.REG[9] = once_value_8; - fra.me.REG[9] = fra.me.REG[9]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]); - fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]); - if (!once_value_9) { - fra.me.REG[9] = BOX_NativeString("' for "); - REGB2 = TAG_Int(6); - fra.me.REG[9] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[9])(fra.me.REG[9], REGB2); - once_value_9 = fra.me.REG[9]; - register_static_object(&once_value_9); - } else fra.me.REG[9] = once_value_9; - fra.me.REG[9] = fra.me.REG[9]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]); - if (!once_value_10) { - fra.me.REG[9] = BOX_NativeString(", "); - REGB2 = TAG_Int(2); - fra.me.REG[9] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[9])(fra.me.REG[9], REGB2); - once_value_10 = fra.me.REG[9]; - register_static_object(&once_value_10); - } else fra.me.REG[9] = once_value_10; - fra.me.REG[9] = fra.me.REG[9]; - fra.me.REG[9] = CALL_standard___string___Collection___join(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[9]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]); - if (!once_value_11) { - fra.me.REG[9] = BOX_NativeString(". Use explicit designation."); - REGB2 = TAG_Int(27); - fra.me.REG[9] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[9])(fra.me.REG[9], REGB2); - once_value_11 = fra.me.REG[9]; - register_static_object(&once_value_11); - } else fra.me.REG[9] = once_value_11; - fra.me.REG[9] = fra.me.REG[9]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]); - fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[8]); - /* syntax/typing.nit:1569 */ - fra.me.REG[4] = NIT_NULL; - goto label7; - } else { - /* ../lib/standard/collection/array.nit:24 */ - REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); - if (UNTAG_Bool(REGB2)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); - } - REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]); - /* syntax/typing.nit:1570 */ - REGB1 = TAG_Int(1); - REGB3 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1)); - if (UNTAG_Bool(REGB3)) { - } else { - /* ../lib/standard/kernel.nit:237 */ - REGB1 = TAG_Bool((REGB2)==(REGB1)); - /* syntax/typing.nit:1570 */ - REGB3 = REGB1; - } - if (UNTAG_Bool(REGB3)) { - /* syntax/typing.nit:1571 */ - fra.me.REG[7] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[7])(fra.me.REG[7]); - REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL); - if (UNTAG_Bool(REGB3)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1571); - } - fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[7])(fra.me.REG[7]); - fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]); - /* syntax/typing.nit:1572 */ - REGB3 = TAG_Bool(VAL_ISA(fra.me.REG[7], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/; - if (UNTAG_Bool(REGB3)) { - } else { - nit_abort("Assert failed", NULL, LOCATE_syntax___typing, 1572); - } - /* syntax/typing.nit:1573 */ - fra.me.REG[6] = fra.me.REG[7]; - } - } - } - /* syntax/typing.nit:1577 */ - REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL); - if (UNTAG_Bool(REGB3)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB3 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL); - REGB3 = REGB1; - } - } - if (UNTAG_Bool(REGB3)) { - /* syntax/typing.nit:1578 */ - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1579 */ - REGB0 = TAG_Int(5); - fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_12) { - fra.me.REG[5] = BOX_NativeString("Error: Method or variable '"); - REGB0 = TAG_Int(27); - fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0); - once_value_12 = fra.me.REG[5]; - register_static_object(&once_value_12); - } else fra.me.REG[5] = once_value_12; - fra.me.REG[5] = fra.me.REG[5]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]); - fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]); - if (!once_value_13) { - fra.me.REG[5] = BOX_NativeString("' unknown in "); - REGB0 = TAG_Int(13); - fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0); - once_value_13 = fra.me.REG[5]; - register_static_object(&once_value_13); - } else fra.me.REG[5] = once_value_13; - fra.me.REG[5] = fra.me.REG[5]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]); - fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]); - if (!once_value_14) { - fra.me.REG[5] = BOX_NativeString("."); - REGB0 = TAG_Int(1); - fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0); - once_value_14 = fra.me.REG[5]; - register_static_object(&once_value_14); - } else fra.me.REG[5] = once_value_14; - fra.me.REG[5] = fra.me.REG[5]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]); - fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[7]); - } else { - /* syntax/typing.nit:1581 */ - REGB0 = TAG_Int(5); - fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_15) { - fra.me.REG[5] = BOX_NativeString("Error: Method '"); - REGB0 = TAG_Int(15); - fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0); - once_value_15 = fra.me.REG[5]; - register_static_object(&once_value_15); - } else fra.me.REG[5] = once_value_15; - fra.me.REG[5] = fra.me.REG[5]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]); - fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]); - if (!once_value_16) { - fra.me.REG[3] = BOX_NativeString("' doesn't exists in "); - REGB0 = TAG_Int(20); - fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0); - once_value_16 = fra.me.REG[3]; - register_static_object(&once_value_16); - } else fra.me.REG[3] = once_value_16; - fra.me.REG[3] = fra.me.REG[3]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]); - fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]); - if (!once_value_17) { - fra.me.REG[2] = BOX_NativeString("."); - REGB0 = TAG_Int(1); - fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0); - once_value_17 = fra.me.REG[2]; - register_static_object(&once_value_17); - } else fra.me.REG[2] = once_value_17; - fra.me.REG[2] = fra.me.REG[2]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]); - fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[7]); - } - /* syntax/typing.nit:1583 */ - fra.me.REG[4] = NIT_NULL; - goto label7; - } - /* syntax/typing.nit:1585 */ - fra.me.REG[4] = fra.me.REG[6]; - goto label7; - label7: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[4]; -} -static const char LOCATE_syntax___typing___AAbsSendExpr___get_signature[] = "typing::AAbsSendExpr::get_signature"; -val_t syntax___typing___AAbsSendExpr___get_signature(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){ - struct {struct stack_frame_t me; val_t MORE_REG[5];} fra; - val_t REGB0; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1588; - fra.me.meth = LOCATE_syntax___typing___AAbsSendExpr___get_signature; - fra.me.has_broke = 0; - fra.me.REG_size = 6; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[5] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - fra.me.REG[2] = p2; - fra.me.REG[3] = p3; - REGB0 = p4; - /* syntax/typing.nit:1591 */ - fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]); - CALL_syntax___syntax_base___MMGlobalProperty___check_visibility(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1], fra.me.REG[0], fra.me.REG[5], REGB0); - /* syntax/typing.nit:1592 */ - fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); - /* syntax/typing.nit:1593 */ - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - fra.me.REG[3] = CALL_metamodel___static_type___MMSignature___not_for_self(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[2] = fra.me.REG[3]; - } - /* syntax/typing.nit:1594 */ - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[2]; -} -static const char LOCATE_syntax___typing___AAbsSendExpr___prop[] = "typing::AAbsSendExpr::(syntax_base::AAbsSendExpr::prop)"; -val_t syntax___typing___AAbsSendExpr___prop(val_t p0){ - 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_syntax___typing; - fra.me.line = 1597; - fra.me.meth = LOCATE_syntax___typing___AAbsSendExpr___prop; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1597 */ - fra.me.REG[1] = fra.me.REG[0]; - /* syntax/typing.nit:1598 */ - fra.me.REG[1] = ATTR_syntax___typing___AAbsSendExpr____prop(fra.me.REG[1]); - REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1598); - } - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[1]; -} -static const char LOCATE_syntax___typing___AAbsSendExpr___return_type[] = "typing::AAbsSendExpr::(syntax_base::AAbsSendExpr::return_type)"; -val_t syntax___typing___AAbsSendExpr___return_type(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1601; - fra.me.meth = LOCATE_syntax___typing___AAbsSendExpr___return_type; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1601 */ - fra.me.REG[0] = ATTR_syntax___typing___AAbsSendExpr____return_type(fra.me.REG[0]); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___ASuperInitCall___register_super_init_call[] = "typing::ASuperInitCall::register_super_init_call"; -void syntax___typing___ASuperInitCall___register_super_init_call(val_t p0, val_t p1, val_t p2){ - struct {struct stack_frame_t me; val_t MORE_REG[8];} fra; - val_t REGB0; - val_t REGB1; - val_t REGB2; - val_t tmp; - static val_t once_value_1; /* Once value */ - static val_t once_value_2; /* Once value */ - static val_t once_value_3; /* Once value */ - static val_t once_value_4; /* Once value */ - static val_t once_value_5; /* Once value */ - static val_t once_value_6; /* Once value */ - static val_t once_value_7; /* Once value */ - static val_t once_value_8; /* Once value */ - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1608; - fra.me.meth = LOCATE_syntax___typing___ASuperInitCall___register_super_init_call; - fra.me.has_broke = 0; - fra.me.REG_size = 9; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[5] = NIT_NULL; - fra.me.REG[6] = NIT_NULL; - fra.me.REG[7] = NIT_NULL; - fra.me.REG[8] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - fra.me.REG[2] = p2; - /* syntax/typing.nit:1608 */ - fra.me.REG[3] = fra.me.REG[0]; - /* syntax/typing.nit:1610 */ - fra.me.REG[4] = CALL_parser___parser_nodes___ANode___parent(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[5] = CALL_syntax___typing___TypingVisitor___top_block(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[4],fra.me.REG[5])); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - fra.me.REG[5] = CALL_syntax___typing___TypingVisitor___top_block(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[3],fra.me.REG[5])); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]); - REGB0 = REGB1; - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - } else { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1611 */ - REGB0 = TAG_Int(3); - fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_1) { - fra.me.REG[4] = BOX_NativeString("Error: Constructor invocation "); - REGB0 = TAG_Int(30); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_1 = fra.me.REG[4]; - register_static_object(&once_value_1); - } else fra.me.REG[4] = once_value_1; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); - fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); - if (!once_value_2) { - fra.me.REG[4] = BOX_NativeString(" must not be in nested block."); - REGB0 = TAG_Int(29); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_2 = fra.me.REG[4]; - register_static_object(&once_value_2); - } else fra.me.REG[4] = once_value_2; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); - fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[5]); - } - /* syntax/typing.nit:1613 */ - fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[4])(fra.me.REG[4]); - fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[4])(fra.me.REG[4]); - fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]); - fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMModule_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); - /* syntax/typing.nit:1614 */ - fra.me.REG[5] = NIT_NULL; - /* syntax/typing.nit:1615 */ - fra.me.REG[6] = CALL_syntax___typing___TypingVisitor___explicit_super_init_calls(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1615); - } - /* syntax/typing.nit:1616 */ - REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[6])(fra.me.REG[6]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1617 */ - fra.me.REG[0] = CALL_standard___collection___abstract_collection___SequenceRead___last(fra.me.REG[6])(fra.me.REG[6]); - REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1617); - } - fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[5] = fra.me.REG[0]; - } - /* syntax/typing.nit:1619 */ - fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_metamodel___partial_order___PartialOrderElement___reverse_linear_extension(fra.me.REG[0])(fra.me.REG[0]); - /* syntax/typing.nit:1620 */ - fra.me.REG[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[4],fra.me.REG[7])); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1621 */ - REGB0 = TAG_Bool(1); - CALL_syntax___typing___TypingVisitor___explicit_other_init_call__eq(fra.me.REG[1])(fra.me.REG[1], REGB0); - } else { - /* syntax/typing.nit:1622 */ - REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1623 */ - REGB0 = TAG_Int(5); - fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_3) { - fra.me.REG[8] = BOX_NativeString("Error: Constructor of class "); - REGB0 = TAG_Int(28); - fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0); - once_value_3 = fra.me.REG[8]; - register_static_object(&once_value_3); - } else fra.me.REG[8] = once_value_3; - fra.me.REG[8] = fra.me.REG[8]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); - fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); - if (!once_value_4) { - fra.me.REG[8] = BOX_NativeString(" must be one in "); - REGB0 = TAG_Int(16); - fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0); - once_value_4 = fra.me.REG[8]; - register_static_object(&once_value_4); - } else fra.me.REG[8] = once_value_4; - fra.me.REG[8] = fra.me.REG[8]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); - if (!once_value_5) { - fra.me.REG[8] = BOX_NativeString(", "); - REGB0 = TAG_Int(2); - fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0); - once_value_5 = fra.me.REG[8]; - register_static_object(&once_value_5); - } else fra.me.REG[8] = once_value_5; - fra.me.REG[8] = fra.me.REG[8]; - fra.me.REG[8] = CALL_standard___string___Collection___join(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); - if (!once_value_6) { - fra.me.REG[8] = BOX_NativeString("."); - REGB0 = TAG_Int(1); - fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0); - once_value_6 = fra.me.REG[8]; - register_static_object(&once_value_6); - } else fra.me.REG[8] = once_value_6; - fra.me.REG[8] = fra.me.REG[8]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); - fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[7]); - } else { - /* syntax/typing.nit:1624 */ - REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[4],fra.me.REG[5])); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1625 */ - REGB0 = TAG_Int(3); - fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_7) { - fra.me.REG[8] = BOX_NativeString("Error: Only one super constructor invocation of class "); - REGB0 = TAG_Int(54); - fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0); - once_value_7 = fra.me.REG[8]; - register_static_object(&once_value_7); - } else fra.me.REG[8] = once_value_7; - fra.me.REG[8] = fra.me.REG[8]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); - fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); - if (!once_value_8) { - fra.me.REG[8] = BOX_NativeString(" is allowed."); - REGB0 = TAG_Int(12); - fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0); - once_value_8 = fra.me.REG[8]; - register_static_object(&once_value_8); - } else fra.me.REG[8] = once_value_8; - fra.me.REG[8] = fra.me.REG[8]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); - fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[7]); - } else { - /* ../lib/standard/collection/array.nit:270 */ - REGB0 = TAG_Int(0); - /* ../lib/standard/collection/array.nit:271 */ - REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271); - } - REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]); - /* ../lib/standard/collection/array.nit:272 */ - fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]); - /* ../lib/standard/collection/array.nit:273 */ - while(1) { - /* ../lib/standard/collection/array.nit:24 */ - REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); - } - REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]); - REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/; - if (UNTAG_Bool(REGB2)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:242 */ - REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; - /* syntax/typing.nit:1628 */ - REGB1 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[3],fra.me.REG[5])); - if (UNTAG_Bool(REGB1)) { - } else { - REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]); - REGB1 = REGB2; - } - if (UNTAG_Bool(REGB1)) { - /* syntax/typing.nit:1629 */ - fra.me.REG[5] = NIT_NULL; - } else { - /* syntax/typing.nit:1630 */ - REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[4])); - if (UNTAG_Bool(REGB1)) { - } else { - REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - REGB1 = REGB2; - } - if (UNTAG_Bool(REGB1)) { - /* syntax/typing.nit:1631 */ - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); - /* syntax/typing.nit:1632 */ - goto label9; - } - } - /* ../lib/standard/collection/array.nit:275 */ - REGB1 = TAG_Int(1); - /* ../lib/standard/kernel.nit:245 */ - REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1)); - /* ../lib/standard/collection/array.nit:275 */ - REGB0 = REGB1; - } else { - /* ../lib/standard/collection/array.nit:273 */ - goto label10; - } - } - label10: while(0); - label9: while(0); - } - } - } - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___ANewExpr___compute_raw_arguments[] = "typing::ANewExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)"; -val_t syntax___typing___ANewExpr___compute_raw_arguments(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1641; - fra.me.meth = LOCATE_syntax___typing___ANewExpr___compute_raw_arguments; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1641 */ - fra.me.REG[0] = CALL_parser___parser_nodes___ANewExpr___n_args(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_syntax___syntax_base___AExprs___to_a(fra.me.REG[0])(fra.me.REG[0]); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___ANewExpr___after_typing[] = "typing::ANewExpr::(typing::ANode::after_typing)"; -void syntax___typing___ANewExpr___after_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[4];} fra; - val_t REGB0; - val_t REGB1; - val_t tmp; - static val_t once_value_2; /* Once value */ - static val_t once_value_3; /* Once value */ - static val_t once_value_4; /* Once value */ - static val_t once_value_5; /* Once value */ - static val_t once_value_6; /* Once value */ - static val_t once_value_7; /* Once value */ - static val_t once_value_8; /* Once value */ - static val_t once_value_9; /* Once value */ - static val_t once_value_10; /* Once value */ - static val_t once_value_11; /* Once value */ - static val_t once_value_12; /* Once value */ - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1642; - fra.me.meth = LOCATE_syntax___typing___ANewExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 5; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:1644 */ - fra.me.REG[2] = CALL_parser___parser_nodes___ANewExpr___n_type(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = CALL_syntax___syntax_base___AType___is_typed(fra.me.REG[2])(fra.me.REG[2]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - goto label1; - } - /* syntax/typing.nit:1645 */ - fra.me.REG[2] = CALL_parser___parser_nodes___ANewExpr___n_type(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[2] = CALL_syntax___syntax_base___AType___stype(fra.me.REG[2])(fra.me.REG[2]); - /* syntax/typing.nit:1646 */ - fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]); - REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra.me.REG[3])(fra.me.REG[3]); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1647 */ - REGB0 = TAG_Int(3); - fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_2) { - fra.me.REG[4] = BOX_NativeString("Error: try to instantiate abstract class "); - REGB0 = TAG_Int(41); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_2 = fra.me.REG[4]; - register_static_object(&once_value_2); - } else fra.me.REG[4] = once_value_2; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - fra.me.REG[4] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - if (!once_value_3) { - fra.me.REG[4] = BOX_NativeString("."); - REGB0 = TAG_Int(1); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_3 = fra.me.REG[4]; - register_static_object(&once_value_3); - } else fra.me.REG[4] = once_value_3; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]); - /* syntax/typing.nit:1648 */ - goto label1; - } - /* syntax/typing.nit:1650 */ - REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[2])(fra.me.REG[2]); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1651 */ - REGB0 = TAG_Int(3); - fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_4) { - fra.me.REG[4] = BOX_NativeString("Type error: cannot instantiate the nullable type "); - REGB0 = TAG_Int(49); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_4 = fra.me.REG[4]; - register_static_object(&once_value_4); - } else fra.me.REG[4] = once_value_4; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - if (!once_value_5) { - fra.me.REG[4] = BOX_NativeString("."); - REGB0 = TAG_Int(1); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_5 = fra.me.REG[4]; - register_static_object(&once_value_5); - } else fra.me.REG[4] = once_value_5; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]); - } - /* syntax/typing.nit:1654 */ - fra.me.REG[3] = CALL_parser___parser_nodes___ANewExpr___n_id(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); - REGB0 = REGB1; - } - } - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1655 */ - if (!once_value_6) { - if (!once_value_7) { - fra.me.REG[3] = BOX_NativeString("init"); - REGB0 = TAG_Int(4); - fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0); - once_value_7 = fra.me.REG[3]; - register_static_object(&once_value_7); - } else fra.me.REG[3] = once_value_7; - 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_6 = fra.me.REG[3]; - register_static_object(&once_value_6); - } else fra.me.REG[3] = once_value_6; - fra.me.REG[3] = fra.me.REG[3]; - } else { - /* syntax/typing.nit:1657 */ - fra.me.REG[4] = CALL_parser___parser_nodes___ANewExpr___n_id(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1657); - } - fra.me.REG[4] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]); - fra.me.REG[3] = fra.me.REG[4]; - } - /* syntax/typing.nit:1660 */ - REGB0 = TAG_Bool(0); - REGB1 = TAG_Bool(0); - fra.me.REG[4] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___typing___AAbsSendExpr___do_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], REGB0, REGB1, fra.me.REG[3], fra.me.REG[4], NIT_NULL); - /* syntax/typing.nit:1661 */ - fra.me.REG[4] = ATTR_syntax___typing___AAbsSendExpr____prop(fra.me.REG[0]); - REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(0); - REGB1 = REGB0; - } else { - REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL); - REGB1 = REGB0; - } - } - if (UNTAG_Bool(REGB1)) { - goto label1; - } - /* syntax/typing.nit:1663 */ - fra.me.REG[4] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[4])(fra.me.REG[4]); - REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[4])(fra.me.REG[4]); - REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); - if (UNTAG_Bool(REGB1)) { - /* syntax/typing.nit:1664 */ - REGB1 = TAG_Int(3); - fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1); - if (!once_value_8) { - fra.me.REG[3] = BOX_NativeString("Error: "); - REGB1 = TAG_Int(7); - fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB1); - once_value_8 = fra.me.REG[3]; - register_static_object(&once_value_8); - } else fra.me.REG[3] = once_value_8; - fra.me.REG[3] = fra.me.REG[3]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); - fra.me.REG[3] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); - if (!once_value_9) { - fra.me.REG[3] = BOX_NativeString(" is not a constructor."); - REGB1 = TAG_Int(22); - fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB1); - once_value_9 = fra.me.REG[3]; - register_static_object(&once_value_9); - } else fra.me.REG[3] = once_value_9; - fra.me.REG[3] = fra.me.REG[3]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); - fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]); - /* syntax/typing.nit:1665 */ - goto label1; - } - /* syntax/typing.nit:1667 */ - fra.me.REG[4] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[4])(fra.me.REG[4]); - fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[2])(fra.me.REG[2]); - REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init_for(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); - REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); - if (UNTAG_Bool(REGB1)) { - /* syntax/typing.nit:1668 */ - REGB1 = TAG_Int(5); - fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1); - if (!once_value_10) { - fra.me.REG[4] = BOX_NativeString("Error: "); - REGB1 = TAG_Int(7); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB1); - once_value_10 = fra.me.REG[4]; - register_static_object(&once_value_10); - } else fra.me.REG[4] = once_value_10; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - fra.me.REG[4] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - if (!once_value_11) { - fra.me.REG[4] = BOX_NativeString(" is not a constructor in "); - REGB1 = TAG_Int(25); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB1); - once_value_11 = fra.me.REG[4]; - register_static_object(&once_value_11); - } else fra.me.REG[4] = once_value_11; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - fra.me.REG[4] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - if (!once_value_12) { - fra.me.REG[4] = BOX_NativeString("."); - REGB1 = TAG_Int(1); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB1); - once_value_12 = fra.me.REG[4]; - register_static_object(&once_value_12); - } else fra.me.REG[4] = once_value_12; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]); - /* syntax/typing.nit:1669 */ - goto label1; - } - /* syntax/typing.nit:1671 */ - ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[2]; - /* syntax/typing.nit:1672 */ - REGB1 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB1; - label1: while(0); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___ASendExpr___name[] = "typing::ASendExpr::name"; -val_t syntax___typing___ASendExpr___name(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1678; - fra.me.meth = LOCATE_syntax___typing___ASendExpr___name; - fra.me.has_broke = 0; - fra.me.REG_size = 0; - fra.me.nitni_local_ref_head = NULL; - /* syntax/typing.nit:1678 */ - nit_abort("Deferred method called", NULL, LOCATE_syntax___typing, 1678); - stack_frame_head = fra.me.prev; - return NIT_NULL; -} -static const char LOCATE_syntax___typing___ASendExpr___closure_defs[] = "typing::ASendExpr::(syntax_base::ASendExpr::closure_defs)"; -val_t syntax___typing___ASendExpr___closure_defs(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1681; - fra.me.meth = LOCATE_syntax___typing___ASendExpr___closure_defs; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1682 */ - fra.me.REG[0] = NIT_NULL; - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___ASendExpr___after_typing[] = "typing::ASendExpr::(typing::ANode::after_typing)"; -void syntax___typing___ASendExpr___after_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1684; - fra.me.meth = LOCATE_syntax___typing___ASendExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:1686 */ - CALL_syntax___typing___ASendExpr___do_all_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___ASendExpr___do_all_typing[] = "typing::ASendExpr::do_all_typing"; -void syntax___typing___ASendExpr___do_all_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[6];} fra; - val_t REGB0; - val_t REGB1; - val_t tmp; - static val_t once_value_2; /* Once value */ - static val_t once_value_3; /* Once value */ - static val_t once_value_4; /* Once value */ - static val_t once_value_5; /* Once value */ - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1689; - fra.me.meth = LOCATE_syntax___typing___ASendExpr___do_all_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 7; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[5] = NIT_NULL; - fra.me.REG[6] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:1689 */ - fra.me.REG[2] = fra.me.REG[0]; - /* syntax/typing.nit:1691 */ - fra.me.REG[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]); - REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - goto label1; - } - /* syntax/typing.nit:1692 */ - fra.me.REG[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[3] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]); - REGB0 = CALL_syntax___typing___AExpr___is_implicit_self(fra.me.REG[4])(fra.me.REG[4]); - fra.me.REG[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]); - REGB1 = CALL_syntax___typing___AExpr___is_self(fra.me.REG[4])(fra.me.REG[4]); - fra.me.REG[4] = CALL_syntax___typing___ASendExpr___name(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[5] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[6] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra.me.REG[2])(fra.me.REG[2]); - CALL_syntax___typing___AAbsSendExpr___do_typing(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[3], REGB0, REGB1, fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]); - /* syntax/typing.nit:1693 */ - fra.me.REG[6] = ATTR_syntax___typing___AAbsSendExpr____prop(fra.me.REG[2]); - REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(0); - REGB1 = REGB0; - } else { - REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL); - REGB1 = REGB0; - } - } - if (UNTAG_Bool(REGB1)) { - goto label1; - } - /* syntax/typing.nit:1694 */ - fra.me.REG[6] = ATTR_syntax___typing___AAbsSendExpr____prop(fra.me.REG[2]); - REGB1 = TAG_Bool(fra.me.REG[6]!=NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1694); - } - /* syntax/typing.nit:1696 */ - fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[6])(fra.me.REG[6]); - REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]); - if (UNTAG_Bool(REGB1)) { - /* syntax/typing.nit:1697 */ - fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]); - REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]); - REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); - if (UNTAG_Bool(REGB1)) { - /* syntax/typing.nit:1698 */ - REGB1 = TAG_Int(3); - fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1); - if (!once_value_2) { - fra.me.REG[5] = BOX_NativeString("Error: try to invoke constructor "); - REGB1 = TAG_Int(33); - fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB1); - once_value_2 = fra.me.REG[5]; - register_static_object(&once_value_2); - } else fra.me.REG[5] = once_value_2; - fra.me.REG[5] = fra.me.REG[5]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]); - fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]); - if (!once_value_3) { - fra.me.REG[5] = BOX_NativeString(" in a method."); - REGB1 = TAG_Int(13); - fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB1); - once_value_3 = fra.me.REG[5]; - register_static_object(&once_value_3); - } else fra.me.REG[5] = once_value_3; - fra.me.REG[5] = fra.me.REG[5]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]); - fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]); - } else { - /* syntax/typing.nit:1699 */ - fra.me.REG[0] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]); - REGB1 = CALL_syntax___typing___AExpr___is_self(fra.me.REG[0])(fra.me.REG[0]); - REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); - if (UNTAG_Bool(REGB1)) { - /* syntax/typing.nit:1700 */ - REGB1 = TAG_Int(3); - fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1); - if (!once_value_4) { - fra.me.REG[5] = BOX_NativeString("Error: constructor "); - REGB1 = TAG_Int(19); - fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB1); - once_value_4 = fra.me.REG[5]; - register_static_object(&once_value_4); - } else fra.me.REG[5] = once_value_4; - fra.me.REG[5] = fra.me.REG[5]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]); - fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]); - if (!once_value_5) { - fra.me.REG[5] = BOX_NativeString(" is not invoken on 'self'."); - REGB1 = TAG_Int(26); - fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB1); - once_value_5 = fra.me.REG[5]; - register_static_object(&once_value_5); - } else fra.me.REG[5] = once_value_5; - fra.me.REG[5] = fra.me.REG[5]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]); - fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]); - } else { - /* syntax/typing.nit:1702 */ - CALL_syntax___typing___ASuperInitCall___register_super_init_call(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[6]); - } - } - } - /* syntax/typing.nit:1706 */ - fra.me.REG[6] = CALL_syntax___syntax_base___AAbsSendExpr___return_type(fra.me.REG[2])(fra.me.REG[2]); - ATTR_syntax___typing___AExpr____stype(fra.me.REG[2]) = fra.me.REG[6]; - /* syntax/typing.nit:1707 */ - REGB1 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[2]) = REGB1; - label1: while(0); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___ASendReassignExpr___read_prop[] = "typing::ASendReassignExpr::(syntax_base::ASendReassignExpr::read_prop)"; -val_t syntax___typing___ASendReassignExpr___read_prop(val_t p0){ - 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_syntax___typing; - fra.me.line = 1712; - fra.me.meth = LOCATE_syntax___typing___ASendReassignExpr___read_prop; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1712 */ - fra.me.REG[1] = fra.me.REG[0]; - fra.me.REG[1] = ATTR_syntax___typing___ASendReassignExpr____read_prop(fra.me.REG[1]); - REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1712); - } - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[1]; -} -static const char LOCATE_syntax___typing___ASendReassignExpr___do_all_typing[] = "typing::ASendReassignExpr::(typing::ASendExpr::do_all_typing)"; -void syntax___typing___ASendReassignExpr___do_all_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[6];} fra; - val_t REGB0; - val_t REGB1; - val_t REGB2; - val_t tmp; - static val_t once_value_2; /* Once value */ - static val_t once_value_3; /* Once value */ - static val_t once_value_4; /* Once value */ - static val_t once_value_5; /* Once value */ - static val_t once_value_6; /* Once value */ - static val_t once_value_7; /* Once value */ - static val_t once_value_8; /* Once value */ - static val_t once_value_9; /* Once value */ - static val_t once_value_10; /* Once value */ - static val_t once_value_11; /* Once value */ - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1714; - fra.me.meth = LOCATE_syntax___typing___ASendReassignExpr___do_all_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 7; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[5] = NIT_NULL; - fra.me.REG[6] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:1714 */ - fra.me.REG[2] = fra.me.REG[0]; - /* syntax/typing.nit:1716 */ - fra.me.REG[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]); - REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - goto label1; - } - /* syntax/typing.nit:1717 */ - fra.me.REG[3] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra.me.REG[2])(fra.me.REG[2]); - /* syntax/typing.nit:1718 */ - fra.me.REG[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[4] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[4])(fra.me.REG[4]); - fra.me.REG[5] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]); - REGB0 = CALL_syntax___typing___AExpr___is_implicit_self(fra.me.REG[5])(fra.me.REG[5]); - fra.me.REG[5] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]); - REGB1 = CALL_syntax___typing___AExpr___is_self(fra.me.REG[5])(fra.me.REG[5]); - fra.me.REG[5] = CALL_syntax___typing___ASendExpr___name(fra.me.REG[2])(fra.me.REG[2]); - CALL_syntax___typing___AAbsSendExpr___do_typing(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[4], REGB0, REGB1, fra.me.REG[5], fra.me.REG[3], NIT_NULL); - /* syntax/typing.nit:1719 */ - fra.me.REG[5] = ATTR_syntax___typing___AAbsSendExpr____prop(fra.me.REG[2]); - /* syntax/typing.nit:1720 */ - REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(0); - REGB1 = REGB0; - } else { - REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL); - REGB1 = REGB0; - } - } - if (UNTAG_Bool(REGB1)) { - goto label1; - } - /* syntax/typing.nit:1721 */ - REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1721); - } - fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[5])(fra.me.REG[5]); - REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[4])(fra.me.REG[4]); - if (UNTAG_Bool(REGB1)) { - /* syntax/typing.nit:1722 */ - fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[4])(fra.me.REG[4]); - REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[4])(fra.me.REG[4]); - REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); - if (UNTAG_Bool(REGB1)) { - /* syntax/typing.nit:1723 */ - REGB1 = TAG_Int(3); - fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1); - if (!once_value_2) { - fra.me.REG[6] = BOX_NativeString("Error: try to invoke constructor "); - REGB1 = TAG_Int(33); - fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB1); - once_value_2 = fra.me.REG[6]; - register_static_object(&once_value_2); - } else fra.me.REG[6] = once_value_2; - fra.me.REG[6] = fra.me.REG[6]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]); - fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]); - if (!once_value_3) { - fra.me.REG[6] = BOX_NativeString(" in a method."); - REGB1 = TAG_Int(13); - fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB1); - once_value_3 = fra.me.REG[6]; - register_static_object(&once_value_3); - } else fra.me.REG[6] = once_value_3; - fra.me.REG[6] = fra.me.REG[6]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]); - fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[4]); - } else { - /* syntax/typing.nit:1724 */ - fra.me.REG[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]); - REGB1 = CALL_syntax___typing___AExpr___is_self(fra.me.REG[4])(fra.me.REG[4]); - REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); - if (UNTAG_Bool(REGB1)) { - /* syntax/typing.nit:1725 */ - REGB1 = TAG_Int(3); - fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1); - if (!once_value_4) { - fra.me.REG[6] = BOX_NativeString("Error: constructor "); - REGB1 = TAG_Int(19); - fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB1); - once_value_4 = fra.me.REG[6]; - register_static_object(&once_value_4); - } else fra.me.REG[6] = once_value_4; - fra.me.REG[6] = fra.me.REG[6]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]); - fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]); - if (!once_value_5) { - fra.me.REG[6] = BOX_NativeString(" is not invoken on 'self'."); - REGB1 = TAG_Int(26); - fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB1); - once_value_5 = fra.me.REG[6]; - register_static_object(&once_value_5); - } else fra.me.REG[6] = once_value_5; - fra.me.REG[6] = fra.me.REG[6]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]); - fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[4]); - } - } - } - /* syntax/typing.nit:1728 */ - fra.me.REG[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[4] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[4])(fra.me.REG[4]); - REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1728); - } - fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); - fra.me.REG[4] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[4])(fra.me.REG[4]); - REGB1 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_metamodel___static_type___MMType, ID_metamodel___static_type___MMType)) /*cast MMType*/; - if (UNTAG_Bool(REGB1)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1728); - } - /* syntax/typing.nit:1729 */ - fra.me.REG[0] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]); - REGB1 = CALL_syntax___typing___AExpr___is_self(fra.me.REG[0])(fra.me.REG[0]); - REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); - if (UNTAG_Bool(REGB1)) { - fra.me.REG[0] = CALL_metamodel___static_type___MMType___not_for_self(fra.me.REG[4])(fra.me.REG[4]); - fra.me.REG[4] = fra.me.REG[0]; - } - /* syntax/typing.nit:1731 */ - fra.me.REG[4] = CALL_syntax___typing___AReassignFormExpr___do_rvalue_typing(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[4]); - /* syntax/typing.nit:1732 */ - REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(0); - REGB1 = REGB0; - } else { - REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL); - REGB1 = REGB0; - } - } - if (UNTAG_Bool(REGB1)) { - goto label1; - } - /* syntax/typing.nit:1733 */ - fra.me.REG[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[0] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[4], fra.me.REG[0]); - /* syntax/typing.nit:1735 */ - ATTR_syntax___typing___ASendReassignExpr____read_prop(fra.me.REG[2]) = fra.me.REG[5]; - /* syntax/typing.nit:1736 */ - fra.me.REG[0] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[3] = fra.me.REG[0]; - /* syntax/typing.nit:1737 */ - fra.me.REG[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra.me.REG[2])(fra.me.REG[2]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]); - /* syntax/typing.nit:1739 */ - fra.me.REG[0] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[0] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]); - REGB1 = CALL_syntax___typing___AExpr___is_implicit_self(fra.me.REG[4])(fra.me.REG[4]); - fra.me.REG[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]); - REGB0 = CALL_syntax___typing___AExpr___is_self(fra.me.REG[4])(fra.me.REG[4]); - REGB2 = TAG_Int(3); - fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2); - if (!once_value_6) { - fra.me.REG[6] = BOX_NativeString(""); - REGB2 = TAG_Int(0); - fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2); - once_value_6 = fra.me.REG[6]; - register_static_object(&once_value_6); - } else fra.me.REG[6] = once_value_6; - fra.me.REG[6] = fra.me.REG[6]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]); - fra.me.REG[6] = CALL_syntax___typing___ASendExpr___name(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]); - if (!once_value_7) { - fra.me.REG[6] = BOX_NativeString("="); - REGB2 = TAG_Int(1); - fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2); - once_value_7 = fra.me.REG[6]; - register_static_object(&once_value_7); - } else fra.me.REG[6] = once_value_7; - fra.me.REG[6] = fra.me.REG[6]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]); - fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]); - CALL_syntax___typing___AAbsSendExpr___do_typing(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[0], REGB1, REGB0, fra.me.REG[4], fra.me.REG[3], NIT_NULL); - /* syntax/typing.nit:1740 */ - REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1740); - } - fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[5])(fra.me.REG[5]); - REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1741 */ - fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]); - REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1742 */ - REGB0 = TAG_Int(3); - fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_8) { - fra.me.REG[4] = BOX_NativeString("Error: try to invoke constructor "); - REGB0 = TAG_Int(33); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_8 = fra.me.REG[4]; - register_static_object(&once_value_8); - } else fra.me.REG[4] = once_value_8; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - if (!once_value_9) { - fra.me.REG[4] = BOX_NativeString(" in a method."); - REGB0 = TAG_Int(13); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_9 = fra.me.REG[4]; - register_static_object(&once_value_9); - } else fra.me.REG[4] = once_value_9; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]); - } else { - /* syntax/typing.nit:1743 */ - fra.me.REG[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]); - REGB0 = CALL_syntax___typing___AExpr___is_self(fra.me.REG[3])(fra.me.REG[3]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1744 */ - REGB0 = TAG_Int(3); - fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_10) { - fra.me.REG[4] = BOX_NativeString("Error: constructor "); - REGB0 = TAG_Int(19); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_10 = fra.me.REG[4]; - register_static_object(&once_value_10); - } else fra.me.REG[4] = once_value_10; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]); - if (!once_value_11) { - fra.me.REG[5] = BOX_NativeString(" is not invoken on 'self'."); - REGB0 = TAG_Int(26); - fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0); - once_value_11 = fra.me.REG[5]; - register_static_object(&once_value_11); - } else fra.me.REG[5] = once_value_11; - fra.me.REG[5] = fra.me.REG[5]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]); - fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]); - } - } - } - /* syntax/typing.nit:1748 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[2]) = REGB0; - label1: while(0); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___ABinopExpr___compute_raw_arguments[] = "typing::ABinopExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)"; -val_t syntax___typing___ABinopExpr___compute_raw_arguments(val_t p0){ - 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_syntax___typing; - fra.me.line = 1753; - fra.me.meth = LOCATE_syntax___typing___ABinopExpr___compute_raw_arguments; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1753 */ - REGB0 = TAG_Int(1); - fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - fra.me.REG[0] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[1]; -} -static const char LOCATE_syntax___typing___AEqExpr___name[] = "typing::AEqExpr::(typing::ASendExpr::name)"; -val_t syntax___typing___AEqExpr___name(val_t p0){ - struct {struct stack_frame_t me;} 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_syntax___typing; - fra.me.line = 1756; - fra.me.meth = LOCATE_syntax___typing___AEqExpr___name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1756 */ - if (!once_value_1) { - if (!once_value_2) { - fra.me.REG[0] = BOX_NativeString("=="); - REGB0 = TAG_Int(2); - fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(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]; - fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - once_value_1 = fra.me.REG[0]; - register_static_object(&once_value_1); - } else fra.me.REG[0] = once_value_1; - fra.me.REG[0] = fra.me.REG[0]; - goto label3; - label3: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AEqExpr___after_typing[] = "typing::AEqExpr::(typing::ANode::after_typing)"; -void syntax___typing___AEqExpr___after_typing(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; - static val_t once_value_2; /* Once value */ - static val_t once_value_3; /* Once value */ - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1757; - fra.me.meth = LOCATE_syntax___typing___AEqExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 4; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:1757 */ - fra.me.REG[2] = fra.me.REG[0]; - fra.me.REG[3] = fra.me.REG[1]; - /* syntax/typing.nit:1759 */ - CALL_SUPER_syntax___typing___AEqExpr___after_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - /* syntax/typing.nit:1760 */ - fra.me.REG[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]); - REGB0 = CALL_syntax___syntax_base___AExpr___is_typed(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(1); - } else { - fra.me.REG[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra.me.REG[2])(fra.me.REG[2]); - REGB1 = CALL_syntax___syntax_base___AExpr___is_typed(fra.me.REG[1])(fra.me.REG[1]); - REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - goto label1; - } - /* syntax/typing.nit:1761 */ - fra.me.REG[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/; - if (UNTAG_Bool(REGB0)) { - fra.me.REG[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - } else { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(1); - } else { - /* syntax/typing.nit:1762 */ - fra.me.REG[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]); - REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/; - /* syntax/typing.nit:1761 */ - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1762 */ - fra.me.REG[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - } else { - /* syntax/typing.nit:1761 */ - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1763 */ - if (!once_value_2) { - fra.me.REG[1] = BOX_NativeString("Warning: comparaison between null and a non nullable value."); - REGB0 = TAG_Int(59); - fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0); - once_value_2 = fra.me.REG[1]; - register_static_object(&once_value_2); - } else fra.me.REG[1] = once_value_2; - fra.me.REG[1] = fra.me.REG[1]; - CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[1]); - } - /* syntax/typing.nit:1766 */ - fra.me.REG[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/; - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1767 */ - fra.me.REG[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/; - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1768 */ - if (!once_value_3) { - fra.me.REG[1] = BOX_NativeString("Warning: comparaison between two null values."); - REGB0 = TAG_Int(45); - fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0); - once_value_3 = fra.me.REG[1]; - register_static_object(&once_value_3); - } else fra.me.REG[1] = once_value_3; - fra.me.REG[1] = fra.me.REG[1]; - CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[1]); - } else { - /* syntax/typing.nit:1770 */ - fra.me.REG[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra.me.REG[2])(fra.me.REG[2]); - CALL_syntax___typing___AEqExpr___try_to_isa(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[1]); - } - } else { - /* syntax/typing.nit:1772 */ - fra.me.REG[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/; - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1773 */ - fra.me.REG[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]); - CALL_syntax___typing___AEqExpr___try_to_isa(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[1]); - } - } - label1: while(0); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AEqExpr___try_to_isa[] = "typing::AEqExpr::try_to_isa"; -void syntax___typing___AEqExpr___try_to_isa(val_t p0, val_t p1, val_t p2){ - struct {struct stack_frame_t me; val_t MORE_REG[4];} 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_syntax___typing; - fra.me.line = 1777; - fra.me.meth = LOCATE_syntax___typing___AEqExpr___try_to_isa; - fra.me.has_broke = 0; - fra.me.REG_size = 5; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - fra.me.REG[2] = p2; - /* syntax/typing.nit:1779 */ - fra.me.REG[3] = CALL_syntax___typing___AExpr___its_variable(fra.me.REG[2])(fra.me.REG[2]); - /* syntax/typing.nit:1780 */ - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - fra.me.REG[4] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[2])(fra.me.REG[2]); - REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_metamodel___static_type___MMNullableType, ID_metamodel___static_type___MMNullableType)) /*cast MMNullableType*/; - } else { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1781 */ - fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[2] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[2] = CALL_metamodel___static_type___MMType___as_notnull(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[2] = CALL_syntax___flow___FlowContext___sub_with(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]); - ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra.me.REG[0]) = fra.me.REG[2]; - /* syntax/typing.nit:1782 */ - fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[1] = CALL_syntax___flow___FlowContext___sub_with(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], fra.me.REG[3], fra.me.REG[1]); - ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra.me.REG[0]) = fra.me.REG[1]; - } - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___ANeExpr___name[] = "typing::ANeExpr::(typing::ASendExpr::name)"; -val_t syntax___typing___ANeExpr___name(val_t p0){ - struct {struct stack_frame_t me;} 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_syntax___typing; - fra.me.line = 1787; - fra.me.meth = LOCATE_syntax___typing___ANeExpr___name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1787 */ - if (!once_value_1) { - if (!once_value_2) { - fra.me.REG[0] = BOX_NativeString("!="); - REGB0 = TAG_Int(2); - fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(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]; - fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - once_value_1 = fra.me.REG[0]; - register_static_object(&once_value_1); - } else fra.me.REG[0] = once_value_1; - fra.me.REG[0] = fra.me.REG[0]; - goto label3; - label3: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___ANeExpr___after_typing[] = "typing::ANeExpr::(typing::ANode::after_typing)"; -void syntax___typing___ANeExpr___after_typing(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; - static val_t once_value_2; /* Once value */ - static val_t once_value_3; /* Once value */ - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1788; - fra.me.meth = LOCATE_syntax___typing___ANeExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 4; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:1788 */ - fra.me.REG[2] = fra.me.REG[0]; - fra.me.REG[3] = fra.me.REG[1]; - /* syntax/typing.nit:1790 */ - CALL_SUPER_syntax___typing___ANeExpr___after_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - /* syntax/typing.nit:1791 */ - fra.me.REG[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]); - REGB0 = CALL_syntax___syntax_base___AExpr___is_typed(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(1); - } else { - fra.me.REG[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra.me.REG[2])(fra.me.REG[2]); - REGB1 = CALL_syntax___syntax_base___AExpr___is_typed(fra.me.REG[1])(fra.me.REG[1]); - REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - goto label1; - } - /* syntax/typing.nit:1792 */ - fra.me.REG[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/; - if (UNTAG_Bool(REGB0)) { - fra.me.REG[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - } else { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(1); - } else { - /* syntax/typing.nit:1793 */ - fra.me.REG[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]); - REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/; - /* syntax/typing.nit:1792 */ - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1793 */ - fra.me.REG[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - } else { - /* syntax/typing.nit:1792 */ - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1794 */ - if (!once_value_2) { - fra.me.REG[1] = BOX_NativeString("Warning: comparaison between null and a non nullable value."); - REGB0 = TAG_Int(59); - fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0); - once_value_2 = fra.me.REG[1]; - register_static_object(&once_value_2); - } else fra.me.REG[1] = once_value_2; - fra.me.REG[1] = fra.me.REG[1]; - CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[1]); - } - /* syntax/typing.nit:1797 */ - fra.me.REG[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/; - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1798 */ - fra.me.REG[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/; - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1799 */ - if (!once_value_3) { - fra.me.REG[1] = BOX_NativeString("Warning: comparaison between two null values."); - REGB0 = TAG_Int(45); - fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0); - once_value_3 = fra.me.REG[1]; - register_static_object(&once_value_3); - } else fra.me.REG[1] = once_value_3; - fra.me.REG[1] = fra.me.REG[1]; - CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[1]); - } else { - /* syntax/typing.nit:1801 */ - fra.me.REG[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra.me.REG[2])(fra.me.REG[2]); - CALL_syntax___typing___ANeExpr___try_to_isa(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[1]); - } - } else { - /* syntax/typing.nit:1803 */ - fra.me.REG[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/; - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1804 */ - fra.me.REG[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]); - CALL_syntax___typing___ANeExpr___try_to_isa(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[1]); - } - } - label1: while(0); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___ANeExpr___try_to_isa[] = "typing::ANeExpr::try_to_isa"; -void syntax___typing___ANeExpr___try_to_isa(val_t p0, val_t p1, val_t p2){ - struct {struct stack_frame_t me; val_t MORE_REG[4];} 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_syntax___typing; - fra.me.line = 1808; - fra.me.meth = LOCATE_syntax___typing___ANeExpr___try_to_isa; - fra.me.has_broke = 0; - fra.me.REG_size = 5; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - fra.me.REG[2] = p2; - /* syntax/typing.nit:1810 */ - fra.me.REG[3] = CALL_syntax___typing___AExpr___its_variable(fra.me.REG[2])(fra.me.REG[2]); - /* syntax/typing.nit:1811 */ - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - fra.me.REG[4] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[2])(fra.me.REG[2]); - REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_metamodel___static_type___MMNullableType, ID_metamodel___static_type___MMNullableType)) /*cast MMNullableType*/; - } else { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1812 */ - fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[2] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[2] = CALL_metamodel___static_type___MMType___as_notnull(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[2] = CALL_syntax___flow___FlowContext___sub_with(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]); - ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra.me.REG[0]) = fra.me.REG[2]; - /* syntax/typing.nit:1813 */ - fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[1] = CALL_syntax___flow___FlowContext___sub_with(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], fra.me.REG[3], fra.me.REG[1]); - ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra.me.REG[0]) = fra.me.REG[1]; - } - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___ALtExpr___name[] = "typing::ALtExpr::(typing::ASendExpr::name)"; -val_t syntax___typing___ALtExpr___name(val_t p0){ - struct {struct stack_frame_t me;} 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_syntax___typing; - fra.me.line = 1818; - fra.me.meth = LOCATE_syntax___typing___ALtExpr___name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1818 */ - if (!once_value_1) { - if (!once_value_2) { - fra.me.REG[0] = BOX_NativeString("<"); - REGB0 = TAG_Int(1); - fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(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]; - fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - once_value_1 = fra.me.REG[0]; - register_static_object(&once_value_1); - } else fra.me.REG[0] = once_value_1; - fra.me.REG[0] = fra.me.REG[0]; - goto label3; - label3: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___ALeExpr___name[] = "typing::ALeExpr::(typing::ASendExpr::name)"; -val_t syntax___typing___ALeExpr___name(val_t p0){ - struct {struct stack_frame_t me;} 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_syntax___typing; - fra.me.line = 1821; - fra.me.meth = LOCATE_syntax___typing___ALeExpr___name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1821 */ - if (!once_value_1) { - if (!once_value_2) { - fra.me.REG[0] = BOX_NativeString("<="); - REGB0 = TAG_Int(2); - fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(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]; - fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - once_value_1 = fra.me.REG[0]; - register_static_object(&once_value_1); - } else fra.me.REG[0] = once_value_1; - fra.me.REG[0] = fra.me.REG[0]; - goto label3; - label3: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___ALlExpr___name[] = "typing::ALlExpr::(typing::ASendExpr::name)"; -val_t syntax___typing___ALlExpr___name(val_t p0){ - struct {struct stack_frame_t me;} 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_syntax___typing; - fra.me.line = 1824; - fra.me.meth = LOCATE_syntax___typing___ALlExpr___name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1824 */ - if (!once_value_1) { - if (!once_value_2) { - fra.me.REG[0] = BOX_NativeString("<<"); - REGB0 = TAG_Int(2); - fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(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]; - fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - once_value_1 = fra.me.REG[0]; - register_static_object(&once_value_1); - } else fra.me.REG[0] = once_value_1; - fra.me.REG[0] = fra.me.REG[0]; - goto label3; - label3: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AGtExpr___name[] = "typing::AGtExpr::(typing::ASendExpr::name)"; -val_t syntax___typing___AGtExpr___name(val_t p0){ - struct {struct stack_frame_t me;} 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_syntax___typing; - fra.me.line = 1827; - fra.me.meth = LOCATE_syntax___typing___AGtExpr___name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1827 */ - if (!once_value_1) { - if (!once_value_2) { - fra.me.REG[0] = BOX_NativeString(">"); - REGB0 = TAG_Int(1); - fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(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]; - fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - once_value_1 = fra.me.REG[0]; - register_static_object(&once_value_1); - } else fra.me.REG[0] = once_value_1; - fra.me.REG[0] = fra.me.REG[0]; - goto label3; - label3: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AGeExpr___name[] = "typing::AGeExpr::(typing::ASendExpr::name)"; -val_t syntax___typing___AGeExpr___name(val_t p0){ - struct {struct stack_frame_t me;} 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_syntax___typing; - fra.me.line = 1830; - fra.me.meth = LOCATE_syntax___typing___AGeExpr___name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1830 */ - if (!once_value_1) { - if (!once_value_2) { - fra.me.REG[0] = BOX_NativeString(">="); - REGB0 = TAG_Int(2); - fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(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]; - fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - once_value_1 = fra.me.REG[0]; - register_static_object(&once_value_1); - } else fra.me.REG[0] = once_value_1; - fra.me.REG[0] = fra.me.REG[0]; - goto label3; - label3: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AGgExpr___name[] = "typing::AGgExpr::(typing::ASendExpr::name)"; -val_t syntax___typing___AGgExpr___name(val_t p0){ - struct {struct stack_frame_t me;} 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_syntax___typing; - fra.me.line = 1833; - fra.me.meth = LOCATE_syntax___typing___AGgExpr___name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1833 */ - if (!once_value_1) { - if (!once_value_2) { - fra.me.REG[0] = BOX_NativeString(">>"); - REGB0 = TAG_Int(2); - fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(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]; - fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - once_value_1 = fra.me.REG[0]; - register_static_object(&once_value_1); - } else fra.me.REG[0] = once_value_1; - fra.me.REG[0] = fra.me.REG[0]; - goto label3; - label3: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___APlusExpr___name[] = "typing::APlusExpr::(typing::ASendExpr::name)"; -val_t syntax___typing___APlusExpr___name(val_t p0){ - struct {struct stack_frame_t me;} 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_syntax___typing; - fra.me.line = 1836; - fra.me.meth = LOCATE_syntax___typing___APlusExpr___name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1836 */ - if (!once_value_1) { - if (!once_value_2) { - fra.me.REG[0] = BOX_NativeString("+"); - REGB0 = TAG_Int(1); - fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(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]; - fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - once_value_1 = fra.me.REG[0]; - register_static_object(&once_value_1); - } else fra.me.REG[0] = once_value_1; - fra.me.REG[0] = fra.me.REG[0]; - goto label3; - label3: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AMinusExpr___name[] = "typing::AMinusExpr::(typing::ASendExpr::name)"; -val_t syntax___typing___AMinusExpr___name(val_t p0){ - struct {struct stack_frame_t me;} 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_syntax___typing; - fra.me.line = 1839; - fra.me.meth = LOCATE_syntax___typing___AMinusExpr___name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1839 */ - if (!once_value_1) { - if (!once_value_2) { - fra.me.REG[0] = BOX_NativeString("-"); - REGB0 = TAG_Int(1); - fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(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]; - fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - once_value_1 = fra.me.REG[0]; - register_static_object(&once_value_1); - } else fra.me.REG[0] = once_value_1; - fra.me.REG[0] = fra.me.REG[0]; - goto label3; - label3: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AStarshipExpr___name[] = "typing::AStarshipExpr::(typing::ASendExpr::name)"; -val_t syntax___typing___AStarshipExpr___name(val_t p0){ - struct {struct stack_frame_t me;} 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_syntax___typing; - fra.me.line = 1842; - fra.me.meth = LOCATE_syntax___typing___AStarshipExpr___name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1842 */ - if (!once_value_1) { - if (!once_value_2) { - fra.me.REG[0] = BOX_NativeString("<=>"); - REGB0 = TAG_Int(3); - fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(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]; - fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - once_value_1 = fra.me.REG[0]; - register_static_object(&once_value_1); - } else fra.me.REG[0] = once_value_1; - fra.me.REG[0] = fra.me.REG[0]; - goto label3; - label3: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AStarExpr___name[] = "typing::AStarExpr::(typing::ASendExpr::name)"; -val_t syntax___typing___AStarExpr___name(val_t p0){ - struct {struct stack_frame_t me;} 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_syntax___typing; - fra.me.line = 1845; - fra.me.meth = LOCATE_syntax___typing___AStarExpr___name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1845 */ - if (!once_value_1) { - if (!once_value_2) { - fra.me.REG[0] = BOX_NativeString("*"); - REGB0 = TAG_Int(1); - fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(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]; - fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - once_value_1 = fra.me.REG[0]; - register_static_object(&once_value_1); - } else fra.me.REG[0] = once_value_1; - fra.me.REG[0] = fra.me.REG[0]; - goto label3; - label3: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___ASlashExpr___name[] = "typing::ASlashExpr::(typing::ASendExpr::name)"; -val_t syntax___typing___ASlashExpr___name(val_t p0){ - struct {struct stack_frame_t me;} 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_syntax___typing; - fra.me.line = 1848; - fra.me.meth = LOCATE_syntax___typing___ASlashExpr___name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1848 */ - if (!once_value_1) { - if (!once_value_2) { - fra.me.REG[0] = BOX_NativeString("/"); - REGB0 = TAG_Int(1); - fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(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]; - fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - once_value_1 = fra.me.REG[0]; - register_static_object(&once_value_1); - } else fra.me.REG[0] = once_value_1; - fra.me.REG[0] = fra.me.REG[0]; - goto label3; - label3: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___APercentExpr___name[] = "typing::APercentExpr::(typing::ASendExpr::name)"; -val_t syntax___typing___APercentExpr___name(val_t p0){ - struct {struct stack_frame_t me;} 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_syntax___typing; - fra.me.line = 1851; - fra.me.meth = LOCATE_syntax___typing___APercentExpr___name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1851 */ - if (!once_value_1) { - if (!once_value_2) { - fra.me.REG[0] = BOX_NativeString("%"); - REGB0 = TAG_Int(1); - fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(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]; - fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - once_value_1 = fra.me.REG[0]; - register_static_object(&once_value_1); - } else fra.me.REG[0] = once_value_1; - fra.me.REG[0] = fra.me.REG[0]; - goto label3; - label3: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AUminusExpr___name[] = "typing::AUminusExpr::(typing::ASendExpr::name)"; -val_t syntax___typing___AUminusExpr___name(val_t p0){ - struct {struct stack_frame_t me;} 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_syntax___typing; - fra.me.line = 1855; - fra.me.meth = LOCATE_syntax___typing___AUminusExpr___name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1855 */ - if (!once_value_1) { - if (!once_value_2) { - fra.me.REG[0] = BOX_NativeString("unary -"); - REGB0 = TAG_Int(7); - fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(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]; - fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - once_value_1 = fra.me.REG[0]; - register_static_object(&once_value_1); - } else fra.me.REG[0] = once_value_1; - fra.me.REG[0] = fra.me.REG[0]; - goto label3; - label3: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AUminusExpr___compute_raw_arguments[] = "typing::AUminusExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)"; -val_t syntax___typing___AUminusExpr___compute_raw_arguments(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1856; - fra.me.meth = LOCATE_syntax___typing___AUminusExpr___compute_raw_arguments; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1856 */ - fra.me.REG[0] = NIT_NULL; - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___ACallFormExpr___after_typing[] = "typing::ACallFormExpr::(typing::ANode::after_typing)"; -void syntax___typing___ACallFormExpr___after_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[8];} fra; - val_t REGB0; - val_t REGB1; - 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_syntax___typing; - fra.me.line = 1860; - fra.me.meth = LOCATE_syntax___typing___ACallFormExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 9; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[5] = NIT_NULL; - fra.me.REG[6] = NIT_NULL; - fra.me.REG[7] = NIT_NULL; - fra.me.REG[8] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:1860 */ - fra.me.REG[2] = fra.me.REG[0]; - fra.me.REG[3] = fra.me.REG[1]; - /* syntax/typing.nit:1862 */ - fra.me.REG[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]); - REGB0 = CALL_syntax___typing___AExpr___is_implicit_self(fra.me.REG[4])(fra.me.REG[4]); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1863 */ - fra.me.REG[4] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[4] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]); - /* syntax/typing.nit:1864 */ - fra.me.REG[5] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[5] = CALL_syntax___scope___ScopeContext_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); - /* syntax/typing.nit:1865 */ - REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(0); - REGB0 = REGB1; - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL); - REGB0 = REGB1; - } - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1867 */ - REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_syntax___syntax_base___ClosureVariable, ID_syntax___syntax_base___ClosureVariable)) /*cast ClosureVariable*/; - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1868 */ - fra.me.REG[6] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[7] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[8] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[8] = NEW_AClosureCallExpr_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr(fra.me.REG[6], fra.me.REG[7], fra.me.REG[8]); - /* syntax/typing.nit:1869 */ - ATTR_syntax___typing___AClosureCallExpr____variable(fra.me.REG[8]) = fra.me.REG[5]; - } else { - /* syntax/typing.nit:1871 */ - fra.me.REG[7] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[7] = CALL_parser___parser_nodes___AExprs___n_exprs(fra.me.REG[7])(fra.me.REG[7]); - REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[7])(fra.me.REG[7]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(1); - } else { - fra.me.REG[7] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra.me.REG[2])(fra.me.REG[2]); - REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AParExprs, ID_parser___parser_nodes___AParExprs)) /*cast AParExprs*/; - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1872 */ - REGB0 = TAG_Int(3); - fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_1) { - fra.me.REG[6] = BOX_NativeString("Error: "); - REGB0 = TAG_Int(7); - fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0); - once_value_1 = fra.me.REG[6]; - register_static_object(&once_value_1); - } else fra.me.REG[6] = once_value_1; - fra.me.REG[6] = fra.me.REG[6]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]); - fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]); - if (!once_value_2) { - fra.me.REG[4] = BOX_NativeString(" is variable, not a function."); - REGB0 = TAG_Int(29); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0); - once_value_2 = fra.me.REG[4]; - register_static_object(&once_value_2); - } else fra.me.REG[4] = once_value_2; - fra.me.REG[4] = fra.me.REG[4]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]); - fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]); - /* syntax/typing.nit:1873 */ - goto label3; - } - /* syntax/typing.nit:1875 */ - fra.me.REG[7] = CALL_syntax___typing___ACallFormExpr___variable_create(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]); - fra.me.REG[8] = fra.me.REG[7]; - /* syntax/typing.nit:1876 */ - ATTR_syntax___typing___AVarFormExpr____variable(fra.me.REG[8]) = fra.me.REG[5]; - } - /* syntax/typing.nit:1878 */ - CALL_parser___parser_nodes___ANode___replace_with(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]); - /* syntax/typing.nit:1879 */ - CALL_syntax___typing___ANode___after_typing(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]); - /* syntax/typing.nit:1880 */ - goto label3; - } - } - /* syntax/typing.nit:1884 */ - CALL_SUPER_syntax___typing___ACallFormExpr___after_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - label3: while(0); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___ACallFormExpr___closure_defs[] = "typing::ACallFormExpr::(syntax_base::ASendExpr::closure_defs)"; -val_t syntax___typing___ACallFormExpr___closure_defs(val_t p0){ - 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_syntax___typing; - fra.me.line = 1887; - fra.me.meth = LOCATE_syntax___typing___ACallFormExpr___closure_defs; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1889 */ - fra.me.REG[1] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1890 */ - fra.me.REG[1] = NIT_NULL; - goto label1; - } else { - /* syntax/typing.nit:1892 */ - fra.me.REG[0] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[1] = fra.me.REG[0]; - goto label1; - } - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[1]; -} -static const char LOCATE_syntax___typing___ACallFormExpr___variable_create[] = "typing::ACallFormExpr::variable_create"; -val_t syntax___typing___ACallFormExpr___variable_create(val_t p0, val_t p1){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1896; - fra.me.meth = LOCATE_syntax___typing___ACallFormExpr___variable_create; - fra.me.has_broke = 0; - fra.me.REG_size = 0; - fra.me.nitni_local_ref_head = NULL; - /* syntax/typing.nit:1896 */ - nit_abort("Deferred method called", NULL, LOCATE_syntax___typing, 1896); - stack_frame_head = fra.me.prev; - return NIT_NULL; -} -static const char LOCATE_syntax___typing___ACallExpr___variable_create[] = "typing::ACallExpr::(typing::ACallFormExpr::variable_create)"; -val_t syntax___typing___ACallExpr___variable_create(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1901; - fra.me.meth = LOCATE_syntax___typing___ACallExpr___variable_create; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:1903 */ - fra.me.REG[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = NEW_AVarExpr_parser___parser_prod___AVarExpr___init_avarexpr(fra.me.REG[0]); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___ACallExpr___name[] = "typing::ACallExpr::(typing::ASendExpr::name)"; -val_t syntax___typing___ACallExpr___name(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1906; - fra.me.meth = LOCATE_syntax___typing___ACallExpr___name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1906 */ - fra.me.REG[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___ACallExpr___compute_raw_arguments[] = "typing::ACallExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)"; -val_t syntax___typing___ACallExpr___compute_raw_arguments(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1907; - fra.me.meth = LOCATE_syntax___typing___ACallExpr___compute_raw_arguments; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1907 */ - fra.me.REG[0] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_syntax___syntax_base___AExprs___to_a(fra.me.REG[0])(fra.me.REG[0]); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___ACallAssignExpr___variable_create[] = "typing::ACallAssignExpr::(typing::ACallFormExpr::variable_create)"; -val_t syntax___typing___ACallAssignExpr___variable_create(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1911; - fra.me.meth = LOCATE_syntax___typing___ACallAssignExpr___variable_create; - fra.me.has_broke = 0; - fra.me.REG_size = 3; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:1913 */ - fra.me.REG[1] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_assign(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = NEW_AVarAssignExpr_parser___parser_prod___AVarAssignExpr___init_avarassignexpr(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___ACallAssignExpr___name[] = "typing::ACallAssignExpr::(typing::ASendExpr::name)"; -val_t syntax___typing___ACallAssignExpr___name(val_t p0){ - struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; - val_t REGB0; - val_t tmp; - static val_t once_value_1; /* Once value */ - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1916; - fra.me.meth = LOCATE_syntax___typing___ACallAssignExpr___name; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1916 */ - fra.me.REG[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]); - if (!once_value_1) { - fra.me.REG[1] = BOX_NativeString("="); - REGB0 = TAG_Int(1); - fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0); - once_value_1 = fra.me.REG[1]; - register_static_object(&once_value_1); - } else fra.me.REG[1] = once_value_1; - fra.me.REG[1] = fra.me.REG[1]; - fra.me.REG[1] = CALL_standard___string___String_____plus(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]); - goto label2; - label2: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[1]; -} -static const char LOCATE_syntax___typing___ACallAssignExpr___compute_raw_arguments[] = "typing::ACallAssignExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)"; -val_t syntax___typing___ACallAssignExpr___compute_raw_arguments(val_t p0){ - struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1917; - fra.me.meth = LOCATE_syntax___typing___ACallAssignExpr___compute_raw_arguments; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1918 */ - fra.me.REG[1] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[1] = CALL_syntax___syntax_base___AExprs___to_a(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:1919 */ - fra.me.REG[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra.me.REG[0])(fra.me.REG[0]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - /* syntax/typing.nit:1920 */ - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[1]; -} -static const char LOCATE_syntax___typing___ACallReassignExpr___variable_create[] = "typing::ACallReassignExpr::(typing::ACallFormExpr::variable_create)"; -val_t syntax___typing___ACallReassignExpr___variable_create(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1925; - fra.me.meth = LOCATE_syntax___typing___ACallReassignExpr___variable_create; - fra.me.has_broke = 0; - fra.me.REG_size = 3; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:1927 */ - fra.me.REG[1] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[2] = CALL_parser___parser_nodes___AReassignFormExpr___n_assign_op(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = NEW_AVarReassignExpr_parser___parser_prod___AVarReassignExpr___init_avarreassignexpr(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___ACallReassignExpr___name[] = "typing::ACallReassignExpr::(typing::ASendExpr::name)"; -val_t syntax___typing___ACallReassignExpr___name(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1930; - fra.me.meth = LOCATE_syntax___typing___ACallReassignExpr___name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1930 */ - fra.me.REG[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___ACallReassignExpr___compute_raw_arguments[] = "typing::ACallReassignExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)"; -val_t syntax___typing___ACallReassignExpr___compute_raw_arguments(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1931; - fra.me.meth = LOCATE_syntax___typing___ACallReassignExpr___compute_raw_arguments; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1931 */ - fra.me.REG[0] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_syntax___syntax_base___AExprs___to_a(fra.me.REG[0])(fra.me.REG[0]); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___ABraExpr___name[] = "typing::ABraExpr::(typing::ASendExpr::name)"; -val_t syntax___typing___ABraExpr___name(val_t p0){ - struct {struct stack_frame_t me;} 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_syntax___typing; - fra.me.line = 1935; - fra.me.meth = LOCATE_syntax___typing___ABraExpr___name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1935 */ - if (!once_value_1) { - if (!once_value_2) { - fra.me.REG[0] = BOX_NativeString("[]"); - REGB0 = TAG_Int(2); - fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(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]; - fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - once_value_1 = fra.me.REG[0]; - register_static_object(&once_value_1); - } else fra.me.REG[0] = once_value_1; - fra.me.REG[0] = fra.me.REG[0]; - goto label3; - label3: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___ABraExpr___compute_raw_arguments[] = "typing::ABraExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)"; -val_t syntax___typing___ABraExpr___compute_raw_arguments(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1936; - fra.me.meth = LOCATE_syntax___typing___ABraExpr___compute_raw_arguments; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1936 */ - fra.me.REG[0] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_syntax___syntax_base___AExprs___to_a(fra.me.REG[0])(fra.me.REG[0]); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___ABraExpr___closure_defs[] = "typing::ABraExpr::(syntax_base::ASendExpr::closure_defs)"; -val_t syntax___typing___ABraExpr___closure_defs(val_t p0){ - 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_syntax___typing; - fra.me.line = 1937; - fra.me.meth = LOCATE_syntax___typing___ABraExpr___closure_defs; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1939 */ - fra.me.REG[1] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:1940 */ - fra.me.REG[1] = NIT_NULL; - goto label1; - } else { - /* syntax/typing.nit:1942 */ - fra.me.REG[0] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[1] = fra.me.REG[0]; - goto label1; - } - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[1]; -} -static const char LOCATE_syntax___typing___ABraAssignExpr___name[] = "typing::ABraAssignExpr::(typing::ASendExpr::name)"; -val_t syntax___typing___ABraAssignExpr___name(val_t p0){ - struct {struct stack_frame_t me;} 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_syntax___typing; - fra.me.line = 1948; - fra.me.meth = LOCATE_syntax___typing___ABraAssignExpr___name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1948 */ - if (!once_value_1) { - if (!once_value_2) { - fra.me.REG[0] = BOX_NativeString("[]="); - REGB0 = TAG_Int(3); - fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(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]; - fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - once_value_1 = fra.me.REG[0]; - register_static_object(&once_value_1); - } else fra.me.REG[0] = once_value_1; - fra.me.REG[0] = fra.me.REG[0]; - goto label3; - label3: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___ABraAssignExpr___compute_raw_arguments[] = "typing::ABraAssignExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)"; -val_t syntax___typing___ABraAssignExpr___compute_raw_arguments(val_t p0){ - struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1949; - fra.me.meth = LOCATE_syntax___typing___ABraAssignExpr___compute_raw_arguments; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1950 */ - fra.me.REG[1] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[1] = CALL_syntax___syntax_base___AExprs___to_a(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:1951 */ - fra.me.REG[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra.me.REG[0])(fra.me.REG[0]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - /* syntax/typing.nit:1952 */ - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[1]; -} -static const char LOCATE_syntax___typing___ABraReassignExpr___name[] = "typing::ABraReassignExpr::(typing::ASendExpr::name)"; -val_t syntax___typing___ABraReassignExpr___name(val_t p0){ - struct {struct stack_frame_t me;} 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_syntax___typing; - fra.me.line = 1957; - fra.me.meth = LOCATE_syntax___typing___ABraReassignExpr___name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1957 */ - if (!once_value_1) { - if (!once_value_2) { - fra.me.REG[0] = BOX_NativeString("[]"); - REGB0 = TAG_Int(2); - fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(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]; - fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - once_value_1 = fra.me.REG[0]; - register_static_object(&once_value_1); - } else fra.me.REG[0] = once_value_1; - fra.me.REG[0] = fra.me.REG[0]; - goto label3; - label3: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___ABraReassignExpr___compute_raw_arguments[] = "typing::ABraReassignExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)"; -val_t syntax___typing___ABraReassignExpr___compute_raw_arguments(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1958; - fra.me.meth = LOCATE_syntax___typing___ABraReassignExpr___compute_raw_arguments; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1958 */ - fra.me.REG[0] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_syntax___syntax_base___AExprs___to_a(fra.me.REG[0])(fra.me.REG[0]); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AInitExpr___name[] = "typing::AInitExpr::(typing::ASendExpr::name)"; -val_t syntax___typing___AInitExpr___name(val_t p0){ - struct {struct stack_frame_t me;} 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_syntax___typing; - fra.me.line = 1962; - fra.me.meth = LOCATE_syntax___typing___AInitExpr___name; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1962 */ - if (!once_value_1) { - if (!once_value_2) { - fra.me.REG[0] = BOX_NativeString("init"); - REGB0 = TAG_Int(4); - fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(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]; - fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - once_value_1 = fra.me.REG[0]; - register_static_object(&once_value_1); - } else fra.me.REG[0] = once_value_1; - fra.me.REG[0] = fra.me.REG[0]; - goto label3; - label3: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AInitExpr___compute_raw_arguments[] = "typing::AInitExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)"; -val_t syntax___typing___AInitExpr___compute_raw_arguments(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1963; - fra.me.meth = LOCATE_syntax___typing___AInitExpr___compute_raw_arguments; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1963 */ - fra.me.REG[0] = CALL_parser___parser_nodes___AInitExpr___n_args(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_syntax___syntax_base___AExprs___to_a(fra.me.REG[0])(fra.me.REG[0]); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AClosureCallExpr___variable[] = "typing::AClosureCallExpr::(syntax_base::AClosureCallExpr::variable)"; -val_t syntax___typing___AClosureCallExpr___variable(val_t p0){ - 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_syntax___typing; - fra.me.line = 1968; - fra.me.meth = LOCATE_syntax___typing___AClosureCallExpr___variable; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1968 */ - fra.me.REG[1] = fra.me.REG[0]; - fra.me.REG[1] = ATTR_syntax___typing___AClosureCallExpr____variable(fra.me.REG[1]); - REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1968); - } - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[1]; -} -static const char LOCATE_syntax___typing___AClosureCallExpr___compute_raw_arguments[] = "typing::AClosureCallExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)"; -val_t syntax___typing___AClosureCallExpr___compute_raw_arguments(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1969; - fra.me.meth = LOCATE_syntax___typing___AClosureCallExpr___compute_raw_arguments; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1969 */ - fra.me.REG[0] = CALL_parser___parser_nodes___AClosureCallExpr___n_args(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_syntax___syntax_base___AExprs___to_a(fra.me.REG[0])(fra.me.REG[0]); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AClosureCallExpr___after_typing[] = "typing::AClosureCallExpr::(typing::ANode::after_typing)"; -void syntax___typing___AClosureCallExpr___after_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[4];} 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_syntax___typing; - fra.me.line = 1971; - fra.me.meth = LOCATE_syntax___typing___AClosureCallExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 5; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:1973 */ - fra.me.REG[2] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra.me.REG[0])(fra.me.REG[0]); - /* syntax/typing.nit:1974 */ - fra.me.REG[3] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[2])(fra.me.REG[2]); - REGB0 = CALL_metamodel___static_type___MMClosure___is_break(fra.me.REG[3])(fra.me.REG[3]); - if (UNTAG_Bool(REGB0)) { - CALL_syntax___typing___TypingVisitor___mark_unreash(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - } - /* syntax/typing.nit:1975 */ - fra.me.REG[2] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[2] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[2])(fra.me.REG[2]); - /* syntax/typing.nit:1976 */ - fra.me.REG[3] = CALL_parser___parser_nodes___AClosureCallExpr___n_id(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[3] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[4] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = CALL_syntax___typing___AAbsAbsSendExpr___process_signature(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]); - /* syntax/typing.nit:1977 */ - fra.me.REG[4] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra.me.REG[0])(fra.me.REG[0]); - REGB1 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[4])(fra.me.REG[4]); - REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); - if (UNTAG_Bool(REGB1)) { - /* syntax/typing.nit:1978 */ - fra.me.REG[4] = CALL_parser___parser_nodes___AClosureCallExpr___n_id(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[4] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]); - fra.me.REG[3] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[3] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[3])(fra.me.REG[3]); - CALL_syntax___typing___AAbsAbsSendExpr___process_closures(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[4], fra.me.REG[3]); - } - /* syntax/typing.nit:1980 */ - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - goto label1; - } - /* syntax/typing.nit:1981 */ - ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra.me.REG[0]) = fra.me.REG[2]; - /* syntax/typing.nit:1982 */ - fra.me.REG[2] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[2])(fra.me.REG[2]); - ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[2]; - /* syntax/typing.nit:1983 */ - REGB0 = TAG_Bool(1); - ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0; - label1: while(0); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AClosureId___to_symbol[] = "typing::AClosureId::to_symbol"; -val_t syntax___typing___AClosureId___to_symbol(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1988; - fra.me.meth = LOCATE_syntax___typing___AClosureId___to_symbol; - fra.me.has_broke = 0; - fra.me.REG_size = 0; - fra.me.nitni_local_ref_head = NULL; - /* syntax/typing.nit:1988 */ - nit_abort("Deferred method called", NULL, LOCATE_syntax___typing, 1988); - stack_frame_head = fra.me.prev; - return NIT_NULL; -} -static const char LOCATE_syntax___typing___ASimpleClosureId___to_symbol[] = "typing::ASimpleClosureId::(typing::AClosureId::to_symbol)"; -val_t syntax___typing___ASimpleClosureId___to_symbol(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1991; - fra.me.meth = LOCATE_syntax___typing___ASimpleClosureId___to_symbol; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1991 */ - fra.me.REG[0] = CALL_parser___parser_nodes___ASimpleClosureId___n_id(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___ABreakClosureId___to_symbol[] = "typing::ABreakClosureId::(typing::AClosureId::to_symbol)"; -val_t syntax___typing___ABreakClosureId___to_symbol(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 1994; - fra.me.meth = LOCATE_syntax___typing___ABreakClosureId___to_symbol; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1994 */ - fra.me.REG[0] = CALL_parser___parser_nodes___ABreakClosureId___n_kwbreak(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]); - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AClosureDef___closure[] = "typing::AClosureDef::(syntax_base::AClosureDef::closure)"; -val_t syntax___typing___AClosureDef___closure(val_t p0){ - 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_syntax___typing; - fra.me.line = 1999; - fra.me.meth = LOCATE_syntax___typing___AClosureDef___closure; - fra.me.has_broke = 0; - fra.me.REG_size = 2; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[1] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:1999 */ - fra.me.REG[1] = fra.me.REG[0]; - fra.me.REG[1] = ATTR_syntax___typing___AClosureDef____closure(fra.me.REG[1]); - REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1999); - } - goto label1; - label1: while(0); - stack_frame_head = fra.me.prev; - return fra.me.REG[1]; -} -static const char LOCATE_syntax___typing___AClosureDef___escapable[] = "typing::AClosureDef::escapable"; -val_t syntax___typing___AClosureDef___escapable(val_t p0){ - struct {struct stack_frame_t me;} fra; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 2001; - fra.me.meth = LOCATE_syntax___typing___AClosureDef___escapable; - fra.me.has_broke = 0; - fra.me.REG_size = 1; - fra.me.nitni_local_ref_head = NULL; - fra.me.REG[0] = NIT_NULL; - fra.me.REG[0] = p0; - /* syntax/typing.nit:2001 */ - fra.me.REG[0] = ATTR_syntax___typing___AClosureDef____escapable(fra.me.REG[0]); - stack_frame_head = fra.me.prev; - return fra.me.REG[0]; -} -static const char LOCATE_syntax___typing___AClosureDef___accept_typing[] = "typing::AClosureDef::(typing::ANode::accept_typing)"; -void syntax___typing___AClosureDef___accept_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; - val_t REGB0; - val_t tmp; - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 2005; - fra.me.meth = LOCATE_syntax___typing___AClosureDef___accept_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 3; - fra.me.nitni_local_ref_head = NULL; - 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; - /* syntax/typing.nit:2005 */ - fra.me.REG[2] = fra.me.REG[0]; - /* syntax/typing.nit:2008 */ - REGB0 = TAG_Bool(ATTR_syntax___typing___AClosureDef____accept_typing2(fra.me.REG[2])!=NIT_NULL); - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Uninitialized attribute %s", "_accept_typing2", LOCATE_syntax___typing, 2008); - } - REGB0 = ATTR_syntax___typing___AClosureDef____accept_typing2(fra.me.REG[2]); - if (UNTAG_Bool(REGB0)) { - CALL_SUPER_syntax___typing___AClosureDef___accept_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - } - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___AClosureDef___accept_typing2[] = "typing::AClosureDef::accept_typing2"; -void syntax___typing___AClosureDef___accept_typing2(val_t p0, val_t p1, val_t p2){ - struct {struct stack_frame_t me; val_t MORE_REG[7];} fra; - val_t REGB0; - val_t REGB1; - val_t REGB2; - val_t REGB3; - val_t tmp; - static val_t once_value_1; /* Once value */ - static val_t once_value_2; /* Once value */ - static val_t once_value_3; /* Once value */ - static val_t once_value_6; /* Once value */ - static val_t once_value_7; /* Once value */ - fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; - fra.me.file = LOCATE_syntax___typing; - fra.me.line = 2011; - fra.me.meth = LOCATE_syntax___typing___AClosureDef___accept_typing2; - fra.me.has_broke = 0; - fra.me.REG_size = 8; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[5] = NIT_NULL; - fra.me.REG[6] = NIT_NULL; - fra.me.REG[7] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - fra.me.REG[2] = p2; - /* syntax/typing.nit:2013 */ - ATTR_syntax___typing___AClosureDef____escapable(fra.me.REG[0]) = fra.me.REG[2]; - /* syntax/typing.nit:2015 */ - fra.me.REG[3] = CALL_syntax___scope___EscapableClosure___closure(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[3] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[3])(fra.me.REG[3]); - /* syntax/typing.nit:2016 */ - REGB0 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[4] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra.me.REG[0])(fra.me.REG[0]); - REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[4])(fra.me.REG[4]); - REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1)); - if (UNTAG_Bool(REGB2)) { - } else { - /* ../lib/standard/kernel.nit:237 */ - REGB1 = TAG_Bool((REGB0)==(REGB1)); - /* syntax/typing.nit:2016 */ - REGB2 = REGB1; - } - REGB2 = TAG_Bool(!UNTAG_Bool(REGB2)); - if (UNTAG_Bool(REGB2)) { - /* syntax/typing.nit:2017 */ - REGB2 = TAG_Int(5); - fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2); - if (!once_value_1) { - fra.me.REG[5] = BOX_NativeString("Error: "); - REGB2 = TAG_Int(7); - fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2); - once_value_1 = fra.me.REG[5]; - register_static_object(&once_value_1); - } else fra.me.REG[5] = once_value_1; - fra.me.REG[5] = fra.me.REG[5]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); - REGB2 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[5] = CALL_standard___string___Object___to_s(REGB2)(REGB2); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); - if (!once_value_2) { - fra.me.REG[5] = BOX_NativeString(" automatic variable names expected, "); - REGB2 = TAG_Int(36); - fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2); - once_value_2 = fra.me.REG[5]; - register_static_object(&once_value_2); - } else fra.me.REG[5] = once_value_2; - fra.me.REG[5] = fra.me.REG[5]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); - fra.me.REG[5] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra.me.REG[0])(fra.me.REG[0]); - REGB2 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[5])(fra.me.REG[5]); - fra.me.REG[5] = CALL_standard___string___Object___to_s(REGB2)(REGB2); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); - if (!once_value_3) { - fra.me.REG[5] = BOX_NativeString(" found."); - REGB2 = TAG_Int(7); - fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2); - once_value_3 = fra.me.REG[5]; - register_static_object(&once_value_3); - } else fra.me.REG[5] = once_value_3; - fra.me.REG[5] = fra.me.REG[5]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); - fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]); - /* syntax/typing.nit:2018 */ - goto label4; - } - /* syntax/typing.nit:2021 */ - fra.me.REG[4] = CALL_syntax___scope___EscapableClosure___closure(fra.me.REG[2])(fra.me.REG[2]); - ATTR_syntax___typing___AClosureDef____closure(fra.me.REG[0]) = fra.me.REG[4]; - /* syntax/typing.nit:2023 */ - fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[1])(fra.me.REG[1]); - CALL_syntax___scope___ScopeContext___push(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]); - /* syntax/typing.nit:2024 */ - fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:2025 */ - fra.me.REG[5] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - /* syntax/typing.nit:2026 */ - fra.me.REG[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]); - CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]); - /* syntax/typing.nit:2027 */ - fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init(); - CALL_syntax___syntax_base___AClosureDef___variables__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]); - /* syntax/typing.nit:2028 */ - REGB2 = TAG_Int(0); - fra.me.REG[6] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra.me.REG[0])(fra.me.REG[0]); - REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[6])(fra.me.REG[6]); - /* ../lib/standard/kernel.nit:404 */ - while(1) { - REGB0 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/; - if (UNTAG_Bool(REGB0)) { - } else { - nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); - } - /* ../lib/standard/kernel.nit:242 */ - REGB0 = TAG_Bool(UNTAG_Int(REGB2)UNTAG_Int(REGB1)); - /* syntax/typing.nit:2146 */ - if (UNTAG_Bool(REGB1)) { - /* syntax/typing.nit:2147 */ - if (!once_value_1) { - fra.me.REG[4] = BOX_NativeString("Useless once in a once expression."); - REGB1 = TAG_Int(34); - fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB1); - once_value_1 = fra.me.REG[4]; - register_static_object(&once_value_1); - } else fra.me.REG[4] = once_value_1; - fra.me.REG[4] = fra.me.REG[4]; - CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]); - } - /* syntax/typing.nit:2149 */ - REGB1 = CALL_syntax___typing___TypingVisitor___once_count(fra.me.REG[3])(fra.me.REG[3]); - REGB0 = TAG_Int(1); - /* ../lib/standard/kernel.nit:245 */ - REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0)); - /* syntax/typing.nit:2149 */ - CALL_syntax___typing___TypingVisitor___once_count__eq(fra.me.REG[3])(fra.me.REG[3], REGB0); - /* syntax/typing.nit:2151 */ - CALL_SUPER_syntax___typing___AOnceExpr___accept_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - /* syntax/typing.nit:2153 */ - REGB0 = CALL_syntax___typing___TypingVisitor___once_count(fra.me.REG[3])(fra.me.REG[3]); - REGB1 = TAG_Int(1); - /* ../lib/standard/kernel.nit:247 */ - REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1)); - /* syntax/typing.nit:2153 */ - CALL_syntax___typing___TypingVisitor___once_count__eq(fra.me.REG[3])(fra.me.REG[3], REGB1); - stack_frame_head = fra.me.prev; - return; -} -static const char LOCATE_syntax___typing___ADebugTypeExpr___after_typing[] = "typing::ADebugTypeExpr::(typing::ANode::after_typing)"; -void syntax___typing___ADebugTypeExpr___after_typing(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[5];} fra; - val_t REGB0; - val_t REGB1; - val_t tmp; - static val_t once_value_2; /* Once value */ - 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_syntax___typing; - fra.me.line = 2158; - fra.me.meth = LOCATE_syntax___typing___ADebugTypeExpr___after_typing; - fra.me.has_broke = 0; - fra.me.REG_size = 6; - fra.me.nitni_local_ref_head = NULL; - 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[4] = NIT_NULL; - fra.me.REG[5] = NIT_NULL; - fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - /* syntax/typing.nit:2160 */ - fra.me.REG[2] = CALL_parser___parser_nodes___ADebugTypeExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - goto label1; - } - /* syntax/typing.nit:2161 */ - fra.me.REG[2] = CALL_parser___parser_nodes___ADebugTypeExpr___n_type(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = CALL_syntax___syntax_base___AType___is_typed(fra.me.REG[2])(fra.me.REG[2]); - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - goto label1; - } - /* syntax/typing.nit:2162 */ - fra.me.REG[2] = CALL_parser___parser_nodes___ADebugTypeExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[2] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[2])(fra.me.REG[2]); - /* syntax/typing.nit:2163 */ - fra.me.REG[3] = CALL_parser___parser_nodes___ADebugTypeExpr___n_type(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[3] = CALL_syntax___syntax_base___AType___stype(fra.me.REG[3])(fra.me.REG[3]); - /* syntax/typing.nit:2164 */ - REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3])); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); - REGB0 = REGB1; - } - REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - if (UNTAG_Bool(REGB0)) { - /* syntax/typing.nit:2165 */ - REGB0 = TAG_Int(5); - fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - if (!once_value_2) { - fra.me.REG[5] = BOX_NativeString("Warning: Expression is a "); - REGB0 = TAG_Int(25); - fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0); - once_value_2 = fra.me.REG[5]; - register_static_object(&once_value_2); - } else fra.me.REG[5] = once_value_2; - fra.me.REG[5] = fra.me.REG[5]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); - fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]); - if (!once_value_3) { - fra.me.REG[2] = BOX_NativeString(", expected "); - REGB0 = TAG_Int(11); - fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0); - once_value_3 = fra.me.REG[2]; - register_static_object(&once_value_3); - } else fra.me.REG[2] = once_value_3; - fra.me.REG[2] = fra.me.REG[2]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]); - fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); - if (!once_value_4) { - fra.me.REG[3] = BOX_NativeString("."); - REGB0 = TAG_Int(1); - fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0); - 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]; - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); - fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]); - } - label1: while(0); - stack_frame_head = fra.me.prev; - return; -}