redef fun finalize_ffi_for_module(nmodule)
do
+ var old_module = self.mainmodule
self.mainmodule = nmodule.mmodule.as(not null)
super
+ self.mainmodule = old_module
end
end
private fun table_send(mmethod: MMethod, arguments: Array[RuntimeVariable], const_color: String): nullable RuntimeVariable
do
+ assert arguments.length == mmethod.intro.msignature.arity + 1 else debug("Invalid arity for {mmethod}. {arguments.length} arguments given.")
+
var res: nullable RuntimeVariable
var msignature = mmethod.intro.msignature.resolve_for(mmethod.intro.mclassdef.bound_mtype, mmethod.intro.mclassdef.bound_mtype, mmethod.intro.mclassdef.mmodule, true)
var ret = msignature.return_mtype
self.add("{res} = 1; /* {arg.inspect} cannot be null */")
end
else
- self.add_abort("Reciever is null")
+ self.add_abort("Receiver is null")
end
self.add("\} else \{")
end
redef fun call(mmethoddef, recvtype, arguments)
do
+ assert arguments.length == mmethoddef.msignature.arity + 1 else debug("Invalid arity for {mmethoddef}. {arguments.length} arguments given.")
+
var res: nullable RuntimeVariable
var ret = mmethoddef.msignature.return_mtype
if mmethoddef.mproperty.is_new then