Adapt the arguments of a method according to targetted MMethodDef

Property definitions

nitc $ AbstractCompilerVisitor :: adapt_signature
	# 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

nitc $ SeparateCompilerVisitor :: adapt_signature
	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

nitc $ GlobalCompilerVisitor :: adapt_signature
	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