X-Git-Url: http://nitlanguage.org diff --git a/c_src/hash._sep.c b/c_src/hash._sep.c index 20a5953..53950ad 100644 --- a/c_src/hash._sep.c +++ b/c_src/hash._sep.c @@ -1,1219 +1,89 @@ /* This C file is generated by NIT to compile module hash. */ #include "hash._sep.h" -val_t hash___Object___hash(val_t self) { - struct trace_t trace = {NULL, NULL, 21, LOCATE_hash___Object___hash}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = TAG_Int((bigint)variable[2]); - variable[2] = TAG_Int(UNTAG_Int(variable[2])/UNTAG_Int( TAG_Int(8))); - variable[1] = variable[2]; - goto return_label0; - return_label0: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t hash___String___hash(val_t self) { - struct trace_t trace = {NULL, NULL, 29, LOCATE_hash___String___hash}; - val_t variable[7]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[2] = TAG_Int(5381); - variable[4] = variable[0]; - variable[4] = ATTR_array___AbstractArray____length(variable[4]) /*AbstractArray::_length*/; - variable[4] = TAG_Int(UNTAG_Int(variable[4])-UNTAG_Int( TAG_Int(1))); - variable[3] = variable[4]; - variable[5] = variable[0]; - variable[5] = ATTR_string___String____items(variable[5]) /*String::_items*/; - variable[4] = variable[5]; - while (true) { /*while*/ - variable[5] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0))); - if (!UNTAG_Bool(variable[5])) break; /* while*/ - variable[5] = TAG_Int(UNTAG_Int( variable[2] /*h*/)*UNTAG_Int( TAG_Int(32))); - variable[5] = TAG_Int(UNTAG_Int(variable[5])+UNTAG_Int( variable[2] /*h*/)); - variable[6] = TAG_Char(UNBOX_NativeString( variable[4] /*it*/)[UNTAG_Int( variable[3] /*i*/)]); - variable[6] = TAG_Int((unsigned char)UNTAG_Char(variable[6])); - variable[5] = TAG_Int(UNTAG_Int(variable[5])+UNTAG_Int(variable[6])); - variable[2] = variable[5] /*h=*/; - variable[3] = TAG_Int(UNTAG_Int(variable[3])-UNTAG_Int( TAG_Int(1))) /*i*/; - continue_2: while(0); - } - break_2: while(0); - variable[1] = variable[2] /*h*/; - goto return_label1; - return_label1: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t hash___Int___hash(val_t self) { - struct trace_t trace = {NULL, NULL, 45, LOCATE_hash___Int___hash}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[2] = variable[0]; - variable[1] = variable[2]; - goto return_label3; - return_label3: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t hash___Char___hash(val_t self) { - struct trace_t trace = {NULL, NULL, 49, LOCATE_hash___Char___hash}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = TAG_Int((unsigned char)UNTAG_Char(variable[2])); - variable[1] = variable[2]; - goto return_label4; - return_label4: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t hash___Bool___hash(val_t self) { - struct trace_t trace = {NULL, NULL, 53, LOCATE_hash___Bool___hash}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[2] = variable[0]; - if (UNTAG_Bool(variable[2])) { /*if*/ - variable[1] = TAG_Int(1); - goto return_label5; - } else { /*if*/ - variable[1] = TAG_Int(0); - goto return_label5; - } - return_label5: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t hash___HashCollection___length(val_t self) { - struct trace_t trace = {NULL, NULL, 69, LOCATE_hash___HashCollection___length}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - tracehead = trace.prev; - return ATTR_hash___HashCollection____length( self) /*HashCollection::_length*/; -} -val_t hash___HashCollection___first_item(val_t self) { - struct trace_t trace = {NULL, NULL, 71, LOCATE_hash___HashCollection___first_item}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - tracehead = trace.prev; - return ATTR_hash___HashCollection____first_item( self) /*HashCollection::_first_item*/; -} -val_t hash___HashCollection___index_at(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 80, LOCATE_hash___HashCollection___index_at}; - val_t variable[9]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[1] = param0; - variable[4] = variable[0]; - variable[4] = ATTR_hash___HashCollection____array(variable[4]) /*HashCollection::_array*/; - variable[3] = variable[4]; - variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*k*/ == NIT_NULL /*null*/) || (( variable[1] /*k*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*k*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*k*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*k*/,COLOR_kernel___Object_____eqeq))( variable[1] /*k*/, NIT_NULL /*null*/) /*Object::==*/))))))); - if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashCollection___index_at, LOCATE_hash, 84); nit_exit(1);} - variable[4] = variable[0]; - variable[4] = ATTR_hash___HashCollection____last_accessed_key(variable[4]) /*HashCollection::_last_accessed_key*/; - variable[4] = TAG_Bool(( variable[1] /*k*/ == variable[4]) || (( variable[1] /*k*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*k*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*k*/,variable[4])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*k*/,COLOR_kernel___Object_____eqeq))( variable[1] /*k*/, variable[4]) /*Object::==*/))))); - if (UNTAG_Bool(variable[4])) { /*if*/ - variable[4] = variable[0]; - variable[4] = ATTR_hash___HashCollection____last_accessed_index(variable[4]) /*HashCollection::_last_accessed_index*/; - variable[2] = variable[4]; - goto return_label6; - } - variable[5] = ((hash___Object___hash_t)CALL( variable[1] /*k*/,COLOR_hash___Object___hash))( variable[1] /*k*/) /*Object::hash*/; - variable[6] = variable[0]; - variable[6] = ATTR_hash___HashCollection____capacity(variable[6]) /*HashCollection::_capacity*/; - variable[5] = TAG_Int(UNTAG_Int(variable[5])%UNTAG_Int(variable[6])); - variable[4] = variable[5]; - variable[5] = TAG_Bool(UNTAG_Int( variable[4] /*base*/)=UNTAG_Int(variable[5])); - if (UNTAG_Bool(variable[5])) { /*if*/ - variable[5] = variable[0]; - variable[6] = TAG_Int(UNTAG_Int( variable[4] /*l*/)*UNTAG_Int( TAG_Int(2))); - ((hash___HashCollection___enlarge_t)CALL(variable[5],COLOR_hash___HashCollection___enlarge))(variable[5], variable[6]) /*HashCollection::enlarge*/; - } - return_label8: while(false); - tracehead = trace.prev; - return; -} -void hash___HashCollection___remove_index(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 132, LOCATE_hash___HashCollection___remove_index}; - val_t variable[10]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[1] = param0; - variable[3] = TAG_Bool(UNTAG_Int( variable[1] /*i*/)>=UNTAG_Int( TAG_Int(0))); - variable[4] = variable[3]; - if (UNTAG_Bool(variable[4])) { /* and */ - variable[4] = variable[0]; - variable[4] = ATTR_hash___HashCollection____capacity(variable[4]) /*HashCollection::_capacity*/; - variable[4] = TAG_Bool(UNTAG_Int( variable[1] /*i*/)=UNTAG_Int( TAG_Int(0))); - if (!UNTAG_Bool(variable[3])) break; /* while*/ - variable[3] = variable[0]; - variable[3] = ATTR_hash___HashCollection____array(variable[3]) /*HashCollection::_array*/; - UNBOX_NativeArray(variable[3])[UNTAG_Int( variable[2] /*i*/)]= NIT_NULL /*null*/; - variable[2] = TAG_Int(UNTAG_Int(variable[2])-UNTAG_Int( TAG_Int(1))) /*i*/; - continue_12: while(0); - } - break_12: while(0); - variable[3] = variable[0]; - ATTR_hash___HashCollection____length(variable[3]) /*HashCollection::_length*/ = TAG_Int(0); - variable[3] = variable[0]; - ATTR_hash___HashCollection____first_item(variable[3]) /*HashCollection::_first_item*/ = NIT_NULL /*null*/; - variable[3] = variable[0]; - ATTR_hash___HashCollection____last_item(variable[3]) /*HashCollection::_last_item*/ = NIT_NULL /*null*/; - variable[3] = variable[0]; - ATTR_hash___HashCollection____last_accessed_key(variable[3]) /*HashCollection::_last_accessed_key*/ = NIT_NULL /*null*/; - return_label11: while(false); - tracehead = trace.prev; - return; -} -void hash___HashCollection___enlarge(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 185, LOCATE_hash___HashCollection___enlarge}; - val_t variable[11]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[1] = param0; - variable[4] = variable[0]; - variable[4] = ATTR_hash___HashCollection____capacity(variable[4]) /*HashCollection::_capacity*/; - variable[3] = variable[4]; - variable[4] = variable[0]; - variable[4] = ATTR_hash___HashCollection____length(variable[4]) /*HashCollection::_length*/; - variable[4] = TAG_Int(UNTAG_Int(variable[4])+UNTAG_Int( TAG_Int(1))); - variable[4] = TAG_Bool(UNTAG_Int( variable[1] /*cap*/)=UNTAG_Int( TAG_Int(0))); - if (!UNTAG_Bool(variable[6])) break; /* while*/ - UNBOX_NativeArray( variable[4] /*new_array*/)[UNTAG_Int( variable[5] /*i*/)]= NIT_NULL /*null*/; - variable[5] = TAG_Int(UNTAG_Int(variable[5])-UNTAG_Int( TAG_Int(1))) /*i*/; - continue_14: while(0); - } - break_14: while(0); - variable[6] = variable[0]; - variable[6] = ATTR_hash___HashCollection____capacity(variable[6]) /*HashCollection::_capacity*/; - variable[6] = TAG_Bool(UNTAG_Int(variable[6])<=UNTAG_Int( variable[3] /*old_cap*/)); - if (UNTAG_Bool(variable[6])) { /*if*/ - goto return_label13; - } - variable[7] = variable[0]; - variable[7] = ATTR_hash___HashCollection____array(variable[7]) /*HashCollection::_array*/; - variable[6] = variable[7]; - variable[8] = variable[0]; - variable[8] = ATTR_hash___HashCollection____first_item(variable[8]) /*HashCollection::_first_item*/; - variable[7] = variable[8]; - while (true) { /*while*/ - variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*node*/ == NIT_NULL /*null*/) || (( variable[7] /*node*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*node*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*node*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*node*/,COLOR_kernel___Object_____eqeq))( variable[7] /*node*/, NIT_NULL /*null*/) /*Object::==*/))))))); - if (!UNTAG_Bool(variable[8])) break; /* while*/ - variable[9] = variable[0]; - variable[10] = ((hash___HashNode___key_t)CALL( variable[7] /*node*/,COLOR_hash___HashNode___key))( variable[7] /*node*/) /*HashNode::key*/; - variable[9] = ((hash___HashCollection___index_at_t)CALL(variable[9],COLOR_hash___HashCollection___index_at))(variable[9], variable[10]) /*HashCollection::index_at*/; - variable[8] = variable[9]; - variable[9] = UNBOX_NativeArray( variable[6] /*new_array*/)[UNTAG_Int( variable[8] /*ind*/)]; - variable[9] = TAG_Bool((variable[9] == NIT_NULL /*null*/) || ((variable[9] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[9],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[9], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[9],COLOR_kernel___Object_____eqeq))(variable[9], NIT_NULL /*null*/) /*Object::==*/))))); - if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashCollection___enlarge, LOCATE_hash, 213); nit_exit(1);} - UNBOX_NativeArray( variable[6] /*new_array*/)[UNTAG_Int( variable[8] /*ind*/)]= variable[7] /*node*/; - variable[9] = ((hash___HashNode___next_item_t)CALL( variable[7] /*node*/,COLOR_hash___HashNode___next_item))( variable[7] /*node*/) /*HashNode::next_item*/; - variable[7] = variable[9] /*node=*/; - continue_15: while(0); - } - break_15: while(0); - variable[8] = variable[0]; - ATTR_hash___HashCollection____last_accessed_key(variable[8]) /*HashCollection::_last_accessed_key*/ = NIT_NULL /*null*/; - return_label13: while(false); - tracehead = trace.prev; - return; -} -void hash___HashCollection___init(val_t self, int* init_table) { - struct trace_t trace = {NULL, NULL, 0, LOCATE_hash___HashCollection___init}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - tracehead = trace.prev; - return; -} -val_t hash___HashNode___key(val_t self) { - struct trace_t trace = {NULL, NULL, 222, LOCATE_hash___HashNode___key}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - fprintf(stderr, "Deferred method called"); - fprintf(stderr, " (%s:%d)\n", LOCATE_hash, 222); - nit_exit(1); - tracehead = trace.prev; - return NIT_NULL; -} -val_t hash___HashNode___next_item(val_t self) { - struct trace_t trace = {NULL, NULL, 224, LOCATE_hash___HashNode___next_item}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - tracehead = trace.prev; - return ATTR_hash___HashNode____next_item( self) /*HashNode::_next_item*/; -} -void hash___HashNode___next_item__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 224, LOCATE_hash___HashNode___next_item__eq}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - ATTR_hash___HashNode____next_item( self) /*HashNode::_next_item*/ = param0; - tracehead = trace.prev; - return; -} -val_t hash___HashNode___prev_item(val_t self) { - struct trace_t trace = {NULL, NULL, 225, LOCATE_hash___HashNode___prev_item}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - tracehead = trace.prev; - return ATTR_hash___HashNode____prev_item( self) /*HashNode::_prev_item*/; -} -void hash___HashNode___prev_item__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 225, LOCATE_hash___HashNode___prev_item__eq}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - ATTR_hash___HashNode____prev_item( self) /*HashNode::_prev_item*/ = param0; - tracehead = trace.prev; - return; -} -void hash___HashNode___init(val_t self, int* init_table) { - struct trace_t trace = {NULL, NULL, 0, LOCATE_hash___HashNode___init}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - tracehead = trace.prev; - return; -} -val_t hash___HashMap___iterator(val_t self) { - struct trace_t trace = {NULL, NULL, 232, LOCATE_hash___HashMap___iterator}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[2] = variable[0]; - variable[3] = NEW_HashMapIterator_hash___HashMapIterator___init(variable[2]); /*new HashMapIterator[K, V]*/ - variable[2] = variable[3]; - variable[1] = variable[2]; - goto return_label16; - return_label16: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t hash___HashMap___is_empty(val_t self) { - struct trace_t trace = {NULL, NULL, 240, LOCATE_hash___HashMap___is_empty}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = ATTR_hash___HashCollection____length(variable[2]) /*HashCollection::_length*/; - variable[2] = TAG_Bool((variable[2])==( TAG_Int(0))); - variable[1] = variable[2]; - goto return_label17; - return_label17: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t hash___HashMap___has(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 254, LOCATE_hash___HashMap___has}; - val_t variable[7]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[1] = param0; - variable[3] = TAG_Int(0); - while (true) { /*while*/ - variable[4] = variable[0]; - variable[4] = ATTR_hash___HashCollection____capacity(variable[4]) /*HashCollection::_capacity*/; - variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)UNTAG_Int( TAG_Int(0))); - if (!UNTAG_Bool(variable[2])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashMap___first, LOCATE_hash, 236); nit_exit(1);} - variable[2] = variable[0]; - variable[2] = ATTR_hash___HashCollection____first_item(variable[2]) /*HashCollection::_first_item*/; - variable[2] = ((abstract_collection___Couple___second_t)CALL(variable[2],COLOR_abstract_collection___Couple___second))(variable[2]) /*Couple::second*/; - variable[1] = variable[2]; - goto return_label24; - return_label24: while(false); - tracehead = trace.prev; - return variable[1]; -} -void hash___HashMap___clear(val_t self) { - struct trace_t trace = {NULL, NULL, 304, LOCATE_hash___HashMap___clear}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[2] = variable[0]; - ((hash___HashCollection___raz_t)CALL(variable[2],COLOR_hash___HashCollection___raz))(variable[2]) /*HashCollection::raz*/; - return_label25: while(false); - tracehead = trace.prev; - return; -} -void hash___HashMap___remove(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 289, LOCATE_hash___HashMap___remove}; - val_t variable[7]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[1] = param0; - variable[3] = TAG_Int(0); - while (true) { /*while*/ - variable[4] = variable[0]; - variable[4] = ATTR_hash___HashCollection____capacity(variable[4]) /*HashCollection::_capacity*/; - variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)vft[INIT_TABLE_POS_HashMap].i]) return; - variable[2] = variable[0]; - ATTR_hash___HashCollection____capacity(variable[2]) /*HashCollection::_capacity*/ = TAG_Int(0); - variable[2] = variable[0]; - ATTR_hash___HashCollection____length(variable[2]) /*HashCollection::_length*/ = TAG_Int(0); - variable[2] = variable[0]; - ((hash___HashCollection___enlarge_t)CALL(variable[2],COLOR_hash___HashCollection___enlarge))(variable[2], TAG_Int(0)) /*HashCollection::enlarge*/; - return_label31: while(false); - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashMap].i] = 1; - tracehead = trace.prev; - return; -} -val_t hash___HashMapNode___key(val_t self) { - struct trace_t trace = {NULL, NULL, 319, LOCATE_hash___HashMapNode___key}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = ((abstract_collection___Couple___first_t)CALL(variable[2],COLOR_abstract_collection___Couple___first))(variable[2]) /*Couple::first*/; - variable[1] = variable[2]; - goto return_label32; - return_label32: while(false); - tracehead = trace.prev; - return variable[1]; -} -void hash___HashMapNode___init(val_t self, val_t param0, val_t param1, int* init_table) { - struct trace_t trace = {NULL, NULL, 322, LOCATE_hash___HashMapNode___init}; - val_t variable[5]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashMapNode].i]) return; - ((abstract_collection___Couple___init_t)CALL(variable[0],COLOR_abstract_collection___Couple___init))(variable[0], variable[1], variable[2], init_table /*YYY*/) /*Couple::init*/; - variable[4] = variable[0]; - ((abstract_collection___Couple___first__eq_t)CALL(variable[4],COLOR_abstract_collection___Couple___first__eq))(variable[4], variable[1] /*k*/) /*Couple::first=*/; - variable[4] = variable[0]; - ((abstract_collection___Couple___second__eq_t)CALL(variable[4],COLOR_abstract_collection___Couple___second__eq))(variable[4], variable[2] /*v*/) /*Couple::second=*/; - return_label33: while(false); - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashMapNode].i] = 1; - tracehead = trace.prev; - return; -} -val_t hash___HashMapIterator___item(val_t self) { - struct trace_t trace = {NULL, NULL, 333, LOCATE_hash___HashMapIterator___item}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = ((hash___HashMapIterator___is_ok_t)CALL(variable[2],COLOR_abstract_collection___Iterator___is_ok))(variable[2]) /*HashMapIterator::is_ok*/; - if (!UNTAG_Bool(variable[2])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashMapIterator___item, LOCATE_hash, 335); nit_exit(1);} - variable[2] = variable[0]; - variable[2] = ATTR_hash___HashMapIterator____node(variable[2]) /*HashMapIterator::_node*/; - variable[2] = ((abstract_collection___Couple___second_t)CALL(variable[2],COLOR_abstract_collection___Couple___second))(variable[2]) /*Couple::second*/; - variable[1] = variable[2]; - goto return_label34; - return_label34: while(false); - tracehead = trace.prev; - return variable[1]; -} -void hash___HashMapIterator___next(val_t self) { - struct trace_t trace = {NULL, NULL, 351, LOCATE_hash___HashMapIterator___next}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = ((hash___HashMapIterator___is_ok_t)CALL(variable[2],COLOR_abstract_collection___Iterator___is_ok))(variable[2]) /*HashMapIterator::is_ok*/; - if (!UNTAG_Bool(variable[2])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashMapIterator___next, LOCATE_hash, 353); nit_exit(1);} - variable[2] = variable[0]; - variable[3] = variable[0]; - variable[3] = ATTR_hash___HashMapIterator____node(variable[3]) /*HashMapIterator::_node*/; - variable[3] = ((hash___HashNode___next_item_t)CALL(variable[3],COLOR_hash___HashNode___next_item))(variable[3]) /*HashNode::next_item*/; - ATTR_hash___HashMapIterator____node(variable[2]) /*HashMapIterator::_node*/ = variable[3]; - return_label35: while(false); - tracehead = trace.prev; - return; -} -val_t hash___HashMapIterator___is_ok(val_t self) { - struct trace_t trace = {NULL, NULL, 331, LOCATE_hash___HashMapIterator___is_ok}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = ATTR_hash___HashMapIterator____node(variable[2]) /*HashMapIterator::_node*/; - variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] == NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2], NIT_NULL /*null*/) /*Object::==*/))))))); - variable[1] = variable[2]; - goto return_label36; - return_label36: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t hash___HashMapIterator___key(val_t self) { - struct trace_t trace = {NULL, NULL, 345, LOCATE_hash___HashMapIterator___key}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = ((hash___HashMapIterator___is_ok_t)CALL(variable[2],COLOR_abstract_collection___Iterator___is_ok))(variable[2]) /*HashMapIterator::is_ok*/; - if (!UNTAG_Bool(variable[2])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashMapIterator___key, LOCATE_hash, 347); nit_exit(1);} - variable[2] = variable[0]; - variable[2] = ATTR_hash___HashMapIterator____node(variable[2]) /*HashMapIterator::_node*/; - variable[2] = ((abstract_collection___Couple___first_t)CALL(variable[2],COLOR_abstract_collection___Couple___first))(variable[2]) /*Couple::first*/; - variable[1] = variable[2]; - goto return_label37; - return_label37: while(false); - tracehead = trace.prev; - return variable[1]; -} -void hash___HashMapIterator___item__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 339, LOCATE_hash___HashMapIterator___item__eq}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - variable[3] = ((hash___HashMapIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*HashMapIterator::is_ok*/; - if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashMapIterator___item__eq, LOCATE_hash, 341); nit_exit(1);} - variable[3] = variable[0]; - variable[3] = ATTR_hash___HashMapIterator____node(variable[3]) /*HashMapIterator::_node*/; - ((abstract_collection___Couple___second__eq_t)CALL(variable[3],COLOR_abstract_collection___Couple___second__eq))(variable[3], variable[1] /*value*/) /*Couple::second=*/; - return_label38: while(false); - tracehead = trace.prev; - return; -} -void hash___HashMapIterator___init(val_t self, val_t param0, int* init_table) { - struct trace_t trace = {NULL, NULL, 363, LOCATE_hash___HashMapIterator___init}; - val_t variable[5]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[1] = param0; - if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashMapIterator].i]) return; - variable[3] = variable[0]; - ATTR_hash___HashMapIterator____map(variable[3]) /*HashMapIterator::_map*/ = variable[1] /*map*/; - variable[3] = variable[0]; - variable[4] = ((hash___HashCollection___first_item_t)CALL( variable[1] /*map*/,COLOR_hash___HashCollection___first_item))( variable[1] /*map*/) /*HashCollection::first_item*/; - ATTR_hash___HashMapIterator____node(variable[3]) /*HashMapIterator::_node*/ = variable[4]; - return_label39: while(false); - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashMapIterator].i] = 1; - tracehead = trace.prev; - return; -} -val_t hash___HashSet___iterator(val_t self) { - struct trace_t trace = {NULL, NULL, 402, LOCATE_hash___HashSet___iterator}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[2] = variable[0]; - variable[3] = NEW_HashSetIterator_hash___HashSetIterator___init(variable[2]); /*new HashSetIterator[E]*/ - variable[2] = variable[3]; - variable[1] = variable[2]; - goto return_label40; - return_label40: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t hash___HashSet___is_empty(val_t self) { - struct trace_t trace = {NULL, NULL, 374, LOCATE_hash___HashSet___is_empty}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = ATTR_hash___HashCollection____length(variable[2]) /*HashCollection::_length*/; - variable[2] = TAG_Bool((variable[2])==( TAG_Int(0))); - variable[1] = variable[2]; - goto return_label41; - return_label41: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t hash___HashSet___has(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 382, LOCATE_hash___HashSet___has}; - val_t variable[5]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - variable[3] = ATTR_hash___HashCollection____array(variable[3]) /*HashCollection::_array*/; - variable[4] = variable[0]; - variable[4] = ((hash___HashCollection___index_at_t)CALL(variable[4],COLOR_hash___HashCollection___index_at))(variable[4], variable[1] /*item*/) /*HashCollection::index_at*/; - variable[3] = UNBOX_NativeArray(variable[3])[UNTAG_Int(variable[4])]; - variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3], NIT_NULL /*null*/) /*Object::==*/))))))); - variable[2] = variable[3]; - goto return_label42; - return_label42: while(false); - tracehead = trace.prev; - return variable[2]; -} -val_t hash___HashSet___first(val_t self) { - struct trace_t trace = {NULL, NULL, 376, LOCATE_hash___HashSet___first}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = ATTR_hash___HashCollection____length(variable[2]) /*HashCollection::_length*/; - variable[2] = TAG_Bool(UNTAG_Int(variable[2])>UNTAG_Int( TAG_Int(0))); - if (!UNTAG_Bool(variable[2])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashSet___first, LOCATE_hash, 378); nit_exit(1);} - variable[2] = variable[0]; - variable[2] = ATTR_hash___HashCollection____first_item(variable[2]) /*HashCollection::_first_item*/; - variable[2] = ((hash___HashSetNode___key_t)CALL(variable[2],COLOR_hash___HashNode___key))(variable[2]) /*HashSetNode::key*/; - variable[1] = variable[2]; - goto return_label43; - return_label43: while(false); - tracehead = trace.prev; - return variable[1]; -} -void hash___HashSet___clear(val_t self) { - struct trace_t trace = {NULL, NULL, 400, LOCATE_hash___HashSet___clear}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[2] = variable[0]; - ((hash___HashCollection___raz_t)CALL(variable[2],COLOR_hash___HashCollection___raz))(variable[2]) /*HashCollection::raz*/; - return_label44: while(false); - tracehead = trace.prev; - return; -} -void hash___HashSet___remove(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 398, LOCATE_hash___HashSet___remove}; - val_t variable[5]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - variable[4] = variable[0]; - variable[4] = ((hash___HashCollection___index_at_t)CALL(variable[4],COLOR_hash___HashCollection___index_at))(variable[4], variable[1] /*item*/) /*HashCollection::index_at*/; - ((hash___HashCollection___remove_index_t)CALL(variable[3],COLOR_hash___HashCollection___remove_index))(variable[3], variable[4]) /*HashCollection::remove_index*/; - return_label45: while(false); - tracehead = trace.prev; - return; -} -void hash___HashSet___add(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 387, LOCATE_hash___HashSet___add}; - val_t variable[7]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[1] = param0; - variable[4] = variable[0]; - variable[4] = ((hash___HashCollection___index_at_t)CALL(variable[4],COLOR_hash___HashCollection___index_at))(variable[4], variable[1] /*item*/) /*HashCollection::index_at*/; - variable[3] = variable[4]; - variable[5] = variable[0]; - variable[5] = ATTR_hash___HashCollection____array(variable[5]) /*HashCollection::_array*/; - variable[5] = UNBOX_NativeArray(variable[5])[UNTAG_Int( variable[3] /*i*/)]; - variable[4] = variable[5]; - variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*c*/ == NIT_NULL /*null*/) || (( variable[4] /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*c*/,COLOR_kernel___Object_____eqeq))( variable[4] /*c*/, NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable[5])) { /*if*/ - ((hash___HashSetNode___key__eq_t)CALL( variable[4] /*c*/,COLOR_hash___HashSetNode___key__eq))( variable[4] /*c*/, variable[1] /*item*/) /*HashSetNode::key=*/; - } else { /*if*/ - variable[5] = variable[0]; - variable[6] = NEW_HashSetNode_hash___HashSetNode___init( variable[1] /*item*/); /*new HashSetNode[E]*/ - ((hash___HashCollection___store_t)CALL(variable[5],COLOR_hash___HashCollection___store))(variable[5], variable[3] /*i*/, variable[6]) /*HashCollection::store*/; - } - return_label46: while(false); - tracehead = trace.prev; - return; -} -void hash___HashSet___init(val_t self, int* init_table) { - struct trace_t trace = {NULL, NULL, 404, LOCATE_hash___HashSet___init}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashSet].i]) return; - variable[2] = variable[0]; - ATTR_hash___HashCollection____capacity(variable[2]) /*HashCollection::_capacity*/ = TAG_Int(0); - variable[2] = variable[0]; - ATTR_hash___HashCollection____length(variable[2]) /*HashCollection::_length*/ = TAG_Int(0); - variable[2] = variable[0]; - ((hash___HashCollection___enlarge_t)CALL(variable[2],COLOR_hash___HashCollection___enlarge))(variable[2], TAG_Int(0)) /*HashCollection::enlarge*/; - return_label47: while(false); - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashSet].i] = 1; - tracehead = trace.prev; - return; -} -val_t hash___HashSetNode___key(val_t self) { - struct trace_t trace = {NULL, NULL, 416, LOCATE_hash___HashSetNode___key}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - tracehead = trace.prev; - return ATTR_hash___HashSetNode____key( self) /*HashSetNode::_key*/; -} -void hash___HashSetNode___key__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 416, LOCATE_hash___HashSetNode___key__eq}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - ATTR_hash___HashSetNode____key( self) /*HashSetNode::_key*/ = param0; - tracehead = trace.prev; - return; -} -void hash___HashSetNode___init(val_t self, val_t param0, int* init_table) { - struct trace_t trace = {NULL, NULL, 418, LOCATE_hash___HashSetNode___init}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[1] = param0; - if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashSetNode].i]) return; - variable[3] = variable[0]; - ATTR_hash___HashSetNode____key(variable[3]) /*HashSetNode::_key*/ = variable[1] /*e*/; - return_label48: while(false); - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashSetNode].i] = 1; - tracehead = trace.prev; - return; -} -val_t hash___HashSetIterator___item(val_t self) { - struct trace_t trace = {NULL, NULL, 428, LOCATE_hash___HashSetIterator___item}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = ((hash___HashSetIterator___is_ok_t)CALL(variable[2],COLOR_abstract_collection___Iterator___is_ok))(variable[2]) /*HashSetIterator::is_ok*/; - if (!UNTAG_Bool(variable[2])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashSetIterator___item, LOCATE_hash, 430); nit_exit(1);} - variable[2] = variable[0]; - variable[2] = ATTR_hash___HashSetIterator____node(variable[2]) /*HashSetIterator::_node*/; - variable[2] = ((hash___HashSetNode___key_t)CALL(variable[2],COLOR_hash___HashNode___key))(variable[2]) /*HashSetNode::key*/; - variable[1] = variable[2]; - goto return_label49; - return_label49: while(false); - tracehead = trace.prev; - return variable[1]; -} -void hash___HashSetIterator___next(val_t self) { - struct trace_t trace = {NULL, NULL, 434, LOCATE_hash___HashSetIterator___next}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = ((hash___HashSetIterator___is_ok_t)CALL(variable[2],COLOR_abstract_collection___Iterator___is_ok))(variable[2]) /*HashSetIterator::is_ok*/; - if (!UNTAG_Bool(variable[2])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashSetIterator___next, LOCATE_hash, 436); nit_exit(1);} - variable[2] = variable[0]; - variable[3] = variable[0]; - variable[3] = ATTR_hash___HashSetIterator____node(variable[3]) /*HashSetIterator::_node*/; - variable[3] = ((hash___HashNode___next_item_t)CALL(variable[3],COLOR_hash___HashNode___next_item))(variable[3]) /*HashNode::next_item*/; - ATTR_hash___HashSetIterator____node(variable[2]) /*HashSetIterator::_node*/ = variable[3]; - return_label50: while(false); - tracehead = trace.prev; - return; -} -val_t hash___HashSetIterator___is_ok(val_t self) { - struct trace_t trace = {NULL, NULL, 426, LOCATE_hash___HashSetIterator___is_ok}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = ATTR_hash___HashSetIterator____node(variable[2]) /*HashSetIterator::_node*/; - variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] == NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2], NIT_NULL /*null*/) /*Object::==*/))))))); - variable[1] = variable[2]; - goto return_label51; - return_label51: while(false); - tracehead = trace.prev; - return variable[1]; -} -void hash___HashSetIterator___init(val_t self, val_t param0, int* init_table) { - struct trace_t trace = {NULL, NULL, 446, LOCATE_hash___HashSetIterator___init}; - val_t variable[5]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_hash; - variable[0] = self; - variable[1] = param0; - if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashSetIterator].i]) return; - variable[3] = variable[0]; - ATTR_hash___HashSetIterator____set(variable[3]) /*HashSetIterator::_set*/ = variable[1] /*set*/; - variable[3] = variable[0]; - variable[4] = ((hash___HashCollection___first_item_t)CALL( variable[1] /*set*/,COLOR_hash___HashCollection___first_item))( variable[1] /*set*/) /*HashCollection::first_item*/; - ATTR_hash___HashSetIterator____node(variable[3]) /*HashSetIterator::_node*/ = variable[4]; - return_label52: while(false); - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashSetIterator].i] = 1; - tracehead = trace.prev; - return; +val_t hash___Object___hash(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_hash; + fra.me.line = 20; + fra.me.meth = LOCATE_hash___Object___hash; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./../lib/standard//hash.nit:24 */ + REGB0 = CALL_kernel___Object___object_id(fra.me.REG[0])(fra.me.REG[0]); + REGB1 = TAG_Int(8); + /* ./../lib/standard//kernel.nit:219 */ + REGB1 = TAG_Int(UNTAG_Int(REGB0)/UNTAG_Int(REGB1)); + /* ./../lib/standard//hash.nit:24 */ + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB1; +} +val_t hash___Int___hash(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_hash; + fra.me.line = 28; + fra.me.meth = LOCATE_hash___Int___hash; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + REGB0 = p0; + /* ./../lib/standard//hash.nit:28 */ + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; +} +val_t hash___Char___hash(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_hash; + fra.me.line = 32; + fra.me.meth = LOCATE_hash___Char___hash; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + REGB0 = p0; + /* ./../lib/standard//kernel.nit:382 */ + REGB0 = TAG_Int((unsigned char)UNTAG_Char(REGB0)); + /* ./../lib/standard//hash.nit:32 */ + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; +} +val_t hash___Bool___hash(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_hash; + fra.me.line = 36; + fra.me.meth = LOCATE_hash___Bool___hash; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + REGB0 = p0; + /* ./../lib/standard//hash.nit:38 */ + if (UNTAG_Bool(REGB0)) { + /* ./../lib/standard//hash.nit:39 */ + REGB0 = TAG_Int(1); + goto label1; + } else { + /* ./../lib/standard//hash.nit:41 */ + REGB1 = TAG_Int(0); + REGB0 = REGB1; + goto label1; + } + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; }