for i in [0..mysignature.arity[ do
var myt = mysignature.mparameters[i].mtype
var prt = msignature.mparameters[i].mtype
- if not myt.is_subtype(mmodule, nclassdef.mclassdef.bound_mtype, prt) and
+ if not myt.is_subtype(mmodule, nclassdef.mclassdef.bound_mtype, prt) or
not prt.is_subtype(mmodule, nclassdef.mclassdef.bound_mtype, myt) then
- modelbuilder.error(nsig.n_params[i], "Redef Error: Wrong type for parameter `{mysignature.mparameters[i].name}'. found {myt}, expected {prt}.")
+ modelbuilder.error(nsig.n_params[i], "Redef Error: Wrong type for parameter `{mysignature.mparameters[i].name}'. found {myt}, expected {prt} as in {mpropdef.mproperty.intro}.")
end
end
end
# Inherit the return type
ret_type = precursor_ret_type
else if not ret_type.is_subtype(mmodule, nclassdef.mclassdef.bound_mtype, precursor_ret_type) then
- modelbuilder.error(nsig.n_type.as(not null), "Redef Error: Wrong return type. found {ret_type}, expected {precursor_ret_type}.")
+ modelbuilder.error(nsig.n_type.as(not null), "Redef Error: Wrong return type. found {ret_type}, expected {precursor_ret_type} as in {mpropdef.mproperty.intro}.")
end
end
end
-error_ref_param.nit:20,14--17: Redef error: Expected B, as in C::r.
+error_ref_param.nit:20,14--17: Redef Error: Wrong type for parameter `x'. found C, expected B as in module_simple#C#r.
-error_ref_ret.nit:20,15--17: Redef Error: Wrong return type. found Int, expected B.
+error_ref_ret.nit:20,15--17: Redef Error: Wrong return type. found Int, expected B as in module_simple#C#s.
-error_spe_param.nit:24,16--24: Redef error: Expected Int, as in A::toto.
+error_spe_param.nit:24,16--24: Redef Error: Wrong type for parameter `c'. found Object, expected Int as in error_spe_param#A#toto.
-error_spe_param2.nit:24,16--22: Redef Error: Wrong type for parameter `c'. found Char, expected Int.
+error_spe_param2.nit:24,16--22: Redef Error: Wrong type for parameter `c'. found Char, expected Int as in error_spe_param2#A#toto.
-error_spe_ret.nit:23,17--20: Redef Error: Wrong return type. found Char, expected Int.
+error_spe_ret.nit:23,17--20: Redef Error: Wrong return type. found Char, expected Int as in error_spe_ret#A#toto.
-test_multiconstraint_inh.nit:39,18--21: Redef error: Expected I[A], as in G::baz.
+test_multiconstraint_inh.nit:39,18--21: Redef Error: Wrong type for parameter `e'. found J, expected I[G#0] as in test_multiconstraint_inh#G#baz.