# Generate the code
fun compile_to_c(compiler: COMPILER)
do
var v = compiler.new_visitor
var selfvar = resolve_receiver(v)
var arguments = [selfvar]
var frame = build_frame(v, arguments)
v.frame = frame
resolve_return_mtype(v)
fill_parameters(v)
# WARNING: the signature must be declared before creating
# any returnlabel and returnvar (`StaticFrame`). Otherwise,
# you could end up with variable outside the function.
var sig = signature_to_c(v)
declare_signature(v, sig)
frame.returnlabel = v.get_name("RET_LABEL")
if has_return then
var ret_mtype = return_mtype
assert ret_mtype != null
frame.returnvar = v.new_var(ret_mtype)
end
body_to_c(v)
v.add("{frame.returnlabel.as(not null)}:;")
if has_return then
v.add("return {frame.returnvar.as(not null)};")
end
v.add "\}"
end_compile_to_c(v)
end
src/compiler/abstract_compiler.nit:2232,2--2264,4