+ # Check there is at least enough parameters
+ if mpropdef.msignature.arity < msignature.arity then
+ v.error(self, "Error: Not enough implicit arguments to pass. Got {mpropdef.msignature.arity}, expected at least {msignature.arity}. Signature is {msignature}")
+ return
+ end
+ # Check that each needed parameter is conform
+ var i = 0
+ for sp in msignature.mparameters do
+ var p = mpropdef.msignature.mparameters[i]
+ if not v.is_subtype(p.mtype, sp.mtype) then
+ v.error(self, "Type error: expected argument #{i} of type {sp.mtype}, got implicit argument {p.name} of type {p.mtype}. Signature is {msignature}")
+ return
+ end
+ i += 1
+ end