1 /* This C file is generated by NIT to compile module type_formal. */
2 #include "type_formal._sep.h"
3 val_t
type_formal___MMType___direct_type(val_t self
) {
4 struct trace_t trace
= {NULL
, LOCATE_type_formal
, 24, LOCATE_type_formal___MMType___direct_type
};
6 trace
.prev
= tracehead
; tracehead
= &trace
;
9 return_label0
: while(false);
10 tracehead
= trace
.prev
;
13 val_t
type_formal___MMTypeFormal___name(val_t self
) {
14 struct trace_t trace
= {NULL
, LOCATE_type_formal
, 31, LOCATE_type_formal___MMTypeFormal___name
};
15 trace
.prev
= tracehead
; tracehead
= &trace
;
16 tracehead
= trace
.prev
;
17 return ATTR_type_formal___MMTypeFormal____name( self
) /*MMTypeFormal::_name*/;
19 val_t
type_formal___MMTypeFormal___bound(val_t self
) {
20 struct trace_t trace
= {NULL
, LOCATE_type_formal
, 34, LOCATE_type_formal___MMTypeFormal___bound
};
21 trace
.prev
= tracehead
; tracehead
= &trace
;
22 tracehead
= trace
.prev
;
23 return ATTR_type_formal___MMTypeFormal____bound( self
) /*MMTypeFormal::_bound*/;
25 val_t
type_formal___MMTypeFormal_____l(val_t self
, val_t param0
) {
26 struct trace_t trace
= {NULL
, LOCATE_type_formal
, 37, LOCATE_type_formal___MMTypeFormal_____l
};
31 trace
.prev
= tracehead
; tracehead
= &trace
;
33 variable1
= TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0
/*t*/ == NIT_NULL
/*null*/) || (( variable0
/*t*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable0
/*t*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable0
/*t*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable0
/*t*/,COLOR_kernel___Object_____eqeq
))( variable0
/*t*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
34 variable2
= variable1
;
35 if (UNTAG_Bool(variable2
)) { /* and */
36 variable2
= TAG_Bool(( variable0
/*t*/ == self
) || (( variable0
/*t*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable0
/*t*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable0
/*t*/, self
)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable0
/*t*/,COLOR_kernel___Object_____eqeq
))( variable0
/*t*/, self
) /*Object::==*/)))));
37 variable3
= variable2
;
38 if (!UNTAG_Bool(variable3
)) { /* or */
39 variable3
= ATTR_type_formal___MMTypeFormal____bound( self
) /*MMTypeFormal::_bound*/;
40 variable3
= ((static_type___MMType___is_supertype_t
)CALL( variable0
/*t*/,COLOR_static_type___MMType___is_supertype
))( variable0
/*t*/, variable3
) /*MMType::is_supertype*/;
42 variable2
= variable3
;
44 variable1
= variable2
;
46 return_label1
: while(false);
47 tracehead
= trace
.prev
;
50 val_t
type_formal___MMTypeFormal___is_supertype(val_t self
, val_t param0
) {
51 struct trace_t trace
= {NULL
, LOCATE_type_formal
, 38, LOCATE_type_formal___MMTypeFormal___is_supertype
};
54 trace
.prev
= tracehead
; tracehead
= &trace
;
56 variable1
= ATTR_type_formal___MMTypeFormal____bound( self
) /*MMTypeFormal::_bound*/;
57 variable1
= ((static_type___MMType___is_supertype_t
)CALL(variable1
,COLOR_static_type___MMType___is_supertype
))(variable1
, variable0
/*t*/) /*MMType::is_supertype*/;
59 return_label2
: while(false);
60 tracehead
= trace
.prev
;
63 val_t
type_formal___MMTypeFormal___direct_type(val_t self
) {
64 struct trace_t trace
= {NULL
, LOCATE_type_formal
, 39, LOCATE_type_formal___MMTypeFormal___direct_type
};
66 trace
.prev
= tracehead
; tracehead
= &trace
;
67 variable0
= ATTR_type_formal___MMTypeFormal____bound( self
) /*MMTypeFormal::_bound*/;
68 variable0
= ((type_formal___MMType___direct_type_t
)CALL(variable0
,COLOR_type_formal___MMType___direct_type
))(variable0
) /*MMType::direct_type*/;
70 return_label3
: while(false);
71 tracehead
= trace
.prev
;
74 val_t
type_formal___MMTypeFormal___local_class(val_t self
) {
75 struct trace_t trace
= {NULL
, LOCATE_type_formal
, 40, LOCATE_type_formal___MMTypeFormal___local_class
};
77 trace
.prev
= tracehead
; tracehead
= &trace
;
78 variable0
= ATTR_type_formal___MMTypeFormal____bound( self
) /*MMTypeFormal::_bound*/;
79 variable0
= TAG_Bool((variable0
== NIT_NULL
/*null*/) || ((variable0
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable0
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable0
, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable0
,COLOR_kernel___Object_____eqeq
))(variable0
, NIT_NULL
/*null*/) /*Object::==*/)))));
80 if (UNTAG_Bool(variable0
)) { /*if*/
81 variable0
= NIT_NULL
/*null*/;
84 variable0
= ATTR_type_formal___MMTypeFormal____bound( self
) /*MMTypeFormal::_bound*/;
85 variable0
= ((static_type___MMType___local_class_t
)CALL(variable0
,COLOR_static_type___MMType___local_class
))(variable0
) /*MMType::local_class*/;
87 return_label4
: while(false);
88 tracehead
= trace
.prev
;
91 val_t
type_formal___MMTypeFormal___to_s(val_t self
) {
92 struct trace_t trace
= {NULL
, LOCATE_type_formal
, 46, LOCATE_type_formal___MMTypeFormal___to_s
};
94 trace
.prev
= tracehead
; tracehead
= &trace
;
95 variable0
= ATTR_type_formal___MMTypeFormal____name( self
) /*MMTypeFormal::_name*/;
96 variable0
= ((symbol___Symbol___to_s_t
)CALL(variable0
,COLOR_string___Object___to_s
))(variable0
) /*Symbol::to_s*/;
98 return_label5
: while(false);
99 tracehead
= trace
.prev
;
102 void type_formal___MMTypeFormal___init(val_t self
, val_t param0
, val_t param1
, int* init_table
) {
103 struct trace_t trace
= {NULL
, LOCATE_type_formal
, 48, LOCATE_type_formal___MMTypeFormal___init
};
106 trace
.prev
= tracehead
; tracehead
= &trace
;
109 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_MMTypeFormal
].i
]) return;
110 ATTR_type_formal___MMTypeFormal____name( self
) /*MMTypeFormal::_name*/ = variable0
/*name*/;
111 ATTR_type_formal___MMTypeFormal____bound( self
) /*MMTypeFormal::_bound*/ = variable1
/*bound*/;
112 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_MMTypeFormal
].i
] = 1;
113 tracehead
= trace
.prev
;