MMethodDef
# Adapt the arguments of a method according to targetted `MMethodDef`
fun adapt_signature(m: MMethodDef, args: Array[RuntimeVariable]) is abstract
src/compiler/abstract_compiler.nit:1482,2--1483,77
redef fun adapt_signature(m, args)
do
var msignature = m.msignature.resolve_for(m.mclassdef.bound_mtype, m.mclassdef.bound_mtype, m.mclassdef.mmodule, true)
var recv = args.first
if recv.mtype.ctype != m.mclassdef.mclass.mclass_type.ctype then
args.first = self.autobox(args.first, m.mclassdef.mclass.mclass_type)
end
for i in [0..msignature.arity[ do
var mp = msignature.mparameters[i]
var t = mp.mtype
if mp.is_vararg then
t = args[i+1].mtype
end
args[i+1] = self.autobox(args[i+1], t)
end
end
src/compiler/separate_compiler.nit:1260,2--1275,4
redef fun adapt_signature(m, args)
do
var recv = args.first
for i in [0..m.msignature.arity[ do
var mp = m.msignature.mparameters[i]
var t = mp.mtype
if mp.is_vararg then
t = args[i+1].mtype
end
t = self.resolve_for(t, recv)
args[i+1] = self.autobox(args[i+1], t)
end
end
src/compiler/global_compiler.nit:693,2--705,4