Merge branch 'fix_param_check'
authorJean Privat <jean@pryen.org>
Fri, 21 Feb 2014 19:12:13 +0000 (14:12 -0500)
committerJean Privat <jean@pryen.org>
Fri, 21 Feb 2014 19:12:13 +0000 (14:12 -0500)
src/modelize_property.nit
tests/sav/error_ref_param.res
tests/sav/error_ref_ret.res
tests/sav/error_spe_param.res
tests/sav/error_spe_param2.res
tests/sav/error_spe_ret.res
tests/sav/fixme/error_ref_param.res [deleted file]
tests/sav/fixme/error_spe_param.res [deleted file]
tests/sav/fixme/test_multiconstraint_inh.res [deleted file]
tests/sav/test_multiconstraint_inh.res

index 2b184b1..d946c12 100644 (file)
@@ -525,9 +525,9 @@ redef class AMethPropdef
                                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
@@ -536,7 +536,7 @@ redef class AMethPropdef
                                        # 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
index b005476..44d3647 100644 (file)
@@ -1 +1 @@
-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.
index b5bc984..afb9bdb 100644 (file)
@@ -1 +1 @@
-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.
index 5a89161..c440f90 100644 (file)
@@ -1 +1 @@
-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.
index 9b57ac5..733cf4f 100644 (file)
@@ -1 +1 @@
-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.
index 4e85242..7c1a5f8 100644 (file)
@@ -1 +1 @@
-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.
diff --git a/tests/sav/fixme/error_ref_param.res b/tests/sav/fixme/error_ref_param.res
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/tests/sav/fixme/error_spe_param.res b/tests/sav/fixme/error_spe_param.res
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/tests/sav/fixme/test_multiconstraint_inh.res b/tests/sav/fixme/test_multiconstraint_inh.res
deleted file mode 100644 (file)
index 0cfbf08..0000000
+++ /dev/null
@@ -1 +0,0 @@
-2
index cd69487..ec31f82 100644 (file)
@@ -1 +1 @@
-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.