# Inline the body in another visitor
fun compile_inside_to_c(v: VISITOR, arguments: Array[RuntimeVariable]): nullable RuntimeVariable
do
var modelbuilder = v.compiler.modelbuilder
var val = constant_value
var node = modelbuilder.mpropdef2node(self)
if is_abstract then
v.add_raw_throw
var cn = v.class_name_string(arguments.first)
v.current_node = node
v.add("PRINT_ERROR(\"Runtime error: Abstract method `%s` called on `%s`\", \"{mproperty.name.escape_to_c}\", {cn});")
v.add_raw_abort
return null
end
if node isa APropdef then
var oldnode = v.current_node
v.current_node = node
self.compile_parameter_check(v, arguments)
node.compile_to_c(v, self, arguments)
v.current_node = oldnode
else if node isa AClassdef then
var oldnode = v.current_node
v.current_node = node
self.compile_parameter_check(v, arguments)
node.compile_to_c(v, self, arguments)
v.current_node = oldnode
else if val != null then
v.ret(v.value_instance(val))
else
abort
end
return null
end
src/compiler/abstract_compiler.nit:2549,2--2583,4