modelbuilder: stop building a property on 'redef' error
authorJean Privat <jean@pryen.org>
Thu, 8 Nov 2012 21:35:19 +0000 (16:35 -0500)
committerJean Privat <jean@pryen.org>
Thu, 8 Nov 2012 21:35:19 +0000 (16:35 -0500)
Signed-off-by: Jean Privat <jean@pryen.org>

14 files changed:
src/modelbuilder.nit
tests/sav/base_attr5_alt12.res [new file with mode: 0644]
tests/sav/base_attr5_alt14.res [new file with mode: 0644]
tests/sav/base_attr5_alt21.res [new file with mode: 0644]
tests/sav/base_attr5_alt23.res [new file with mode: 0644]
tests/sav/base_attr5_alt5.res [new file with mode: 0644]
tests/sav/error_redef2_1alt1_alt9.res
tests/sav/error_redef2_1alt2_alt9.res
tests/sav/error_redef2_1alt3_alt9.res
tests/sav/error_redef_alt3.res
tests/sav/error_redef_alt6.res
tests/sav/error_redef_alt9.res
tests/sav/fixme/base_virtual_type3.res
tests/sav/fixme/base_virtual_type3_alt1.res [moved from tests/sav/base_virtual_type3_alt1.res with 80% similarity]

index 4b2bac7..9728abb 100644 (file)
@@ -728,6 +728,7 @@ class ModelBuilder
                var mparameters = new Array[MParameter]
                for npropdef in nclassdef.n_propdefs do
                        if npropdef isa AAttrPropdef and npropdef.n_expr == null then
+                               if npropdef.mpropdef == null then return # Skip broken attribute
                                var paramname = npropdef.mpropdef.mproperty.name.substring_from(1)
                                var ret_type = npropdef.mpropdef.static_mtype
                                if ret_type == null then return
@@ -979,17 +980,20 @@ redef class APropdef
                end
        end
 
-       private fun check_redef_keyword(modelbuilder: ModelBuilder, nclassdef: AClassdef, kwredef: nullable Token, need_redef: Bool, mprop: MProperty)
+       private fun check_redef_keyword(modelbuilder: ModelBuilder, nclassdef: AClassdef, kwredef: nullable Token, need_redef: Bool, mprop: MProperty): Bool
        do
                if kwredef == null then
                        if need_redef then
                                modelbuilder.error(self, "Redef error: {nclassdef.mclassdef.mclass}::{mprop.name} is an inherited property. To redefine it, add the redef keyword.")
+                               return false
                        end
                else
                        if not need_redef then
                                modelbuilder.error(self, "Error: No property {nclassdef.mclassdef.mclass}::{mprop.name} is inherited. Remove the redef keyword to define a new property.")
+                               return false
                        end
                end
+               return true
        end
 
 end
@@ -1113,13 +1117,13 @@ redef class AMethPropdef
                        mprop = new MMethod(mclassdef, name, mvisibility)
                        mprop.is_init = is_init
                        mprop.is_new = self isa AExternInitPropdef
-                       self.check_redef_keyword(modelbuilder, nclassdef, n_kwredef, false, mprop)
+                       if not self.check_redef_keyword(modelbuilder, nclassdef, n_kwredef, false, mprop) then return
                else
                        if n_kwredef == null then
                                if self isa AMainMethPropdef then
                                        # no warning
                                else
-                                       self.check_redef_keyword(modelbuilder, nclassdef, n_kwredef, true, mprop)
+                                       if not self.check_redef_keyword(modelbuilder, nclassdef, n_kwredef, true, mprop) then return
                                end
                        end
                        check_redef_property_visibility(modelbuilder, nclassdef, self.n_visibility, mprop)
@@ -1300,11 +1304,11 @@ redef class AAttrPropdef
                        if mprop == null then
                                var mvisibility = new_property_visibility(modelbuilder, nclassdef, self.n_visibility)
                                mprop = new MAttribute(mclassdef, name, mvisibility)
-                               self.check_redef_keyword(modelbuilder, nclassdef, self.n_kwredef, false, mprop)
+                               if not self.check_redef_keyword(modelbuilder, nclassdef, self.n_kwredef, false, mprop) then return
                        else
                                assert mprop isa MAttribute
                                check_redef_property_visibility(modelbuilder, nclassdef, self.n_visibility, mprop)
-                               self.check_redef_keyword(modelbuilder, nclassdef, self.n_kwredef, true, mprop)
+                               if not self.check_redef_keyword(modelbuilder, nclassdef, self.n_kwredef, true, mprop) then return
                        end
                        var mpropdef = new MAttributeDef(mclassdef, mprop, self.location)
                        self.mpropdef = mpropdef
@@ -1317,9 +1321,9 @@ redef class AAttrPropdef
                                if mreadprop == null then
                                        var mvisibility = new_property_visibility(modelbuilder, nclassdef, nreadable.n_visibility)
                                        mreadprop = new MMethod(mclassdef, readname, mvisibility)
-                                       self.check_redef_keyword(modelbuilder, nclassdef, nreadable.n_kwredef, false, mreadprop)
+                                       if not self.check_redef_keyword(modelbuilder, nclassdef, nreadable.n_kwredef, false, mreadprop) then return
                                else
-                                       self.check_redef_keyword(modelbuilder, nclassdef, nreadable.n_kwredef, true, mreadprop)
+                                       if not self.check_redef_keyword(modelbuilder, nclassdef, nreadable.n_kwredef, true, mreadprop) then return
                                        check_redef_property_visibility(modelbuilder, nclassdef, nreadable.n_visibility, mreadprop)
                                end
                                var mreadpropdef = new MMethodDef(mclassdef, mreadprop, self.location)
@@ -1334,9 +1338,9 @@ redef class AAttrPropdef
                                if mwriteprop == null then
                                        var mvisibility = new_property_visibility(modelbuilder, nclassdef, nwritable.n_visibility)
                                        mwriteprop = new MMethod(mclassdef, writename, mvisibility)
-                                       self.check_redef_keyword(modelbuilder, nclassdef, nwritable.n_kwredef, false, mwriteprop)
+                                       if not self.check_redef_keyword(modelbuilder, nclassdef, nwritable.n_kwredef, false, mwriteprop) then return
                                else
-                                       self.check_redef_keyword(modelbuilder, nclassdef, nwritable.n_kwredef, true, mwriteprop)
+                                       if not self.check_redef_keyword(modelbuilder, nclassdef, nwritable.n_kwredef, true, mwriteprop) then return
                                        check_redef_property_visibility(modelbuilder, nclassdef, nwritable.n_visibility, mwriteprop)
                                end
                                var mwritepropdef = new MMethodDef(mclassdef, mwriteprop, self.location)
@@ -1356,9 +1360,9 @@ redef class AAttrPropdef
                        if mreadprop == null then
                                var mvisibility = new_property_visibility(modelbuilder, nclassdef, self.n_visibility)
                                mreadprop = new MMethod(mclassdef, readname, mvisibility)
-                               self.check_redef_keyword(modelbuilder, nclassdef, n_kwredef, false, mreadprop)
+                               if not self.check_redef_keyword(modelbuilder, nclassdef, n_kwredef, false, mreadprop) then return
                        else
-                               self.check_redef_keyword(modelbuilder, nclassdef, n_kwredef, true, mreadprop)
+                               if not self.check_redef_keyword(modelbuilder, nclassdef, n_kwredef, true, mreadprop) then return
                                check_redef_property_visibility(modelbuilder, nclassdef, self.n_visibility, mreadprop)
                        end
                        var mreadpropdef = new MMethodDef(mclassdef, mreadprop, self.location)
@@ -1378,9 +1382,9 @@ redef class AAttrPropdef
                                        mvisibility = private_visibility
                                end
                                mwriteprop = new MMethod(mclassdef, writename, mvisibility)
-                               self.check_redef_keyword(modelbuilder, nclassdef, nwkwredef, false, mwriteprop)
+                               if not self.check_redef_keyword(modelbuilder, nclassdef, nwkwredef, false, mwriteprop) then return
                        else
-                               self.check_redef_keyword(modelbuilder, nclassdef, nwkwredef, true, mwriteprop)
+                               if not self.check_redef_keyword(modelbuilder, nclassdef, nwkwredef, true, mwriteprop) then return
                                if nwritable != null then
                                        check_redef_property_visibility(modelbuilder, nclassdef, nwritable.n_visibility, mwriteprop)
                                end
@@ -1554,9 +1558,9 @@ redef class ATypePropdef
                if mprop == null then
                        var mvisibility = new_property_visibility(modelbuilder, nclassdef, self.n_visibility)
                        mprop = new MVirtualTypeProp(mclassdef, name, mvisibility)
-                       self.check_redef_keyword(modelbuilder, nclassdef, self.n_kwredef, false, mprop)
+                       if not self.check_redef_keyword(modelbuilder, nclassdef, self.n_kwredef, false, mprop) then return
                else
-                       self.check_redef_keyword(modelbuilder, nclassdef, self.n_kwredef, true, mprop)
+                       if not self.check_redef_keyword(modelbuilder, nclassdef, self.n_kwredef, true, mprop) then return
                        assert mprop isa MVirtualTypeProp
                        check_redef_property_visibility(modelbuilder, nclassdef, self.n_visibility, mprop)
                end
diff --git a/tests/sav/base_attr5_alt12.res b/tests/sav/base_attr5_alt12.res
new file mode 100644 (file)
index 0000000..67219d9
--- /dev/null
@@ -0,0 +1 @@
+alt/base_attr5_alt12.nit:42,12--14: Error: No property B::bar is inherited. Remove the redef keyword to define a new property.
diff --git a/tests/sav/base_attr5_alt14.res b/tests/sav/base_attr5_alt14.res
new file mode 100644 (file)
index 0000000..8b5f289
--- /dev/null
@@ -0,0 +1 @@
+alt/base_attr5_alt14.nit:44,12--14: Error: No property B::bar is inherited. Remove the redef keyword to define a new property.
diff --git a/tests/sav/base_attr5_alt21.res b/tests/sav/base_attr5_alt21.res
new file mode 100644 (file)
index 0000000..10a06cc
--- /dev/null
@@ -0,0 +1 @@
+alt/base_attr5_alt21.nit:48,6--8: Redef error: B::baz is an inherited property. To redefine it, add the redef keyword.
diff --git a/tests/sav/base_attr5_alt23.res b/tests/sav/base_attr5_alt23.res
new file mode 100644 (file)
index 0000000..759d3cc
--- /dev/null
@@ -0,0 +1 @@
+alt/base_attr5_alt23.nit:50,6--8: Redef error: B::baz is an inherited property. To redefine it, add the redef keyword.
diff --git a/tests/sav/base_attr5_alt5.res b/tests/sav/base_attr5_alt5.res
new file mode 100644 (file)
index 0000000..c000a46
--- /dev/null
@@ -0,0 +1 @@
+alt/base_attr5_alt5.nit:38,6--8: Redef error: B::foo is an inherited property. To redefine it, add the redef keyword.
index 1f2bfd4..ab4e364 100644 (file)
@@ -1,2 +1 @@
 alt/error_redef2_1alt1_alt9.nit:34,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
-alt/error_redef2_1alt1_alt9.nit:34,8--15: Redef error: error_redef2_1alt1_alt9#B#f1 redefines error_redef2_1alt1_alt9#A#f1 with 1 parameter(s), 0 expected. Signature is error_redef2_1alt1_alt9#B#f1
index ef14f08..8cc4f1f 100644 (file)
@@ -1,2 +1 @@
 alt/error_redef2_1alt2_alt9.nit:34,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
-alt/error_redef2_1alt2_alt9.nit:34,13--15: Redef Error: f1 is a procedure, not a function.
index e181b5a..b3f77a1 100644 (file)
@@ -1,2 +1 @@
 alt/error_redef2_1alt3_alt9.nit:34,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
-alt/error_redef2_1alt3_alt9.nit:34,8--15: Redef error: error_redef2_1alt3_alt9#B#f1 redefines error_redef2_1alt3_alt9#A#f1 with 1 parameter(s), 0 expected. Signature is error_redef2_1alt3_alt9#B#f1: Int
index 6c61f9f..6119ead 100644 (file)
@@ -1,2 +1 @@
 alt/error_redef_alt3.nit:28,12--13: Error: No property B::f1 is inherited. Remove the redef keyword to define a new property.
-alt/error_redef_alt3.nit:28,15: Error: Untyped parameter `i'.
index e509e47..7c48f44 100644 (file)
@@ -1,2 +1 @@
 alt/error_redef_alt6.nit:31,12--13: Error: No property B::f1 is inherited. Remove the redef keyword to define a new property.
-alt/error_redef_alt6.nit:31,15: Error: Untyped parameter `i'.
index ebb4401..57dc2d2 100644 (file)
@@ -1,2 +1 @@
 alt/error_redef_alt9.nit:34,12--13: Error: No property B::f1 is inherited. Remove the redef keyword to define a new property.
-alt/error_redef_alt9.nit:34,15: Error: Untyped parameter `i'.
index 8ef1bd6..27035df 100644 (file)
@@ -1,21 +1,14 @@
 ../lib/standard/collection/array.nit:24,21--27: Error: No property AbstractArrayRead::length is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:26,12--19: Error: No property AbstractArrayRead::is_empty is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:28,12--14: Error: No property AbstractArrayRead::has is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:28,16--19: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:39,12--19: Error: No property AbstractArrayRead::has_only is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:39,21--24: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:50,12--16: Error: No property AbstractArrayRead::count is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:50,18--21: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:62,12--19: Error: No property AbstractArrayRead::index_of is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:62,21--24: Error: Untyped parameter `item'.
 ../lib/standard/collection/abstract_collection.nit:83,12--19: Error: No property NaiveCollection::is_empty is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:85,12--17: Error: No property NaiveCollection::length is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:92,12--14: Error: No property NaiveCollection::has is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/abstract_collection.nit:92,16--19: Error: Untyped parameter `item'.
 ../lib/standard/collection/abstract_collection.nit:98,12--19: Error: No property NaiveCollection::has_only is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/abstract_collection.nit:98,21--24: Error: Untyped parameter `item'.
 ../lib/standard/collection/abstract_collection.nit:104,12--16: Error: No property NaiveCollection::count is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/abstract_collection.nit:104,18--21: Error: Untyped parameter `item'.
 ../lib/standard/collection/abstract_collection.nit:111,12--16: Error: No property NaiveCollection::first is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:128,12--17: Error: No property AbstractArrayRead::output is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:137,12--16: Error: No property Container::first is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:139,12--19: Error: No property Container::is_empty is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:141,12--17: Error: No property Container::length is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:142,12--13: Error: No property AbstractArrayRead::== is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:142,15: Error: Untyped parameter `o'.
 ../lib/standard/collection/abstract_collection.nit:143,12--14: Error: No property Container::has is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/abstract_collection.nit:143,16--22: Error: Untyped parameter `an_item'.
 ../lib/standard/collection/abstract_collection.nit:145,12--19: Error: No property Container::has_only is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/abstract_collection.nit:145,21--27: Error: Untyped parameter `an_item'.
 ../lib/standard/collection/abstract_collection.nit:147,12--16: Error: No property Container::count is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/abstract_collection.nit:147,18--24: Error: Untyped parameter `an_item'.
 ../lib/standard/collection/abstract_collection.nit:156,12--19: Error: No property Container::iterator is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:166,12--15: Error: No property AbstractArray::push is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:166,17--20: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:168,12--14: Error: No property AbstractArray::pop is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:168,12--15: Error: No property ContainerIterator::item is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:170,12--15: Error: No property ContainerIterator::next is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:174,21--26: Error: No property ContainerIterator::is_ok is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:176,12--16: Error: No property AbstractArray::shift is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:190,12--18: Error: No property AbstractArray::unshift is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:190,20--23: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:212,12--14: Error: No property AbstractArray::add is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:212,16--19: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:214,12--16: Error: No property AbstractArray::clear is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:215,12--19: Error: No property Set::has_only is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/abstract_collection.nit:215,21--24: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:216,12--17: Error: No property AbstractArray::remove is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:216,19--22: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:218,12--21: Error: No property AbstractArray::remove_all is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:218,23--26: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:227,12--20: Error: No property AbstractArray::remove_at is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:227,22: Error: Untyped parameter `i'.
 ../lib/standard/collection/abstract_collection.nit:228,12--16: Error: No property Set::count is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/abstract_collection.nit:228,18--21: Error: Untyped parameter `item'.
 ../lib/standard/collection/abstract_collection.nit:238,12--21: Error: No property Set::remove_all is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/abstract_collection.nit:238,23--26: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:266,12--18: Error: No property Array::iterate is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:278,12--13: Error: No property Array::[] is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:278,15--19: Error: Untyped parameter `index'.
 ../lib/standard/collection/array.nit:284,12--14: Error: No property Array::[]= is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:284,16--20: Error: Untyped parameter `index'.
 ../lib/standard/collection/array.nit:296,12--14: Error: No property Array::add is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:296,16--19: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:306,12--18: Error: No property Array::enlarge is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:306,20--22: Error: Untyped parameter `cap'.
 ../lib/standard/collection/abstract_collection.nit:321,12--17: Error: No property Map::values is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:323,12--15: Error: No property Map::keys is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:375,12--16: Error: No property SequenceRead::first is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:407,12--19: Error: No property SequenceRead::iterator is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:431,12--15: Error: No property ArrayIterator::item is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:434,12--14: Error: No property Sequence::add is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/abstract_collection.nit:434,16: Error: Untyped parameter `e'.
 ../lib/standard/collection/array.nit:435,12--16: Error: No property ArrayIterator::is_ok is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:437,12--15: Error: No property ArrayIterator::next is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:445,21--26: Error: No property ArrayIterator::index is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:458,12--14: Error: No property ArraySet::has is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:458,16: Error: Untyped parameter `e'.
 ../lib/standard/collection/array.nit:460,12--14: Error: No property ArraySet::add is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:460,16: Error: Untyped parameter `e'.
 ../lib/standard/collection/array.nit:462,12--19: Error: No property ArraySet::is_empty is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:464,12--17: Error: No property ArraySet::length is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:466,12--16: Error: No property ArraySet::first is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:472,12--17: Error: No property ArraySet::remove is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:472,19--22: Error: Untyped parameter `item'.
 ../lib/standard/collection/abstract_collection.nit:473,12--13: Error: No property CoupleMap::[] is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/abstract_collection.nit:473,15--17: Error: Untyped parameter `key'.
 ../lib/standard/collection/array.nit:478,12--21: Error: No property ArraySet::remove_all is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:478,23--26: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:480,12--16: Error: No property ArraySet::clear is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:482,12--19: Error: No property ArraySet::iterator is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:489,12--15: Error: No property CoupleMapIterator::item is inherited. Remove the redef keyword to define a new property.
@@ -97,9 +67,7 @@
 ../lib/standard/collection/array.nit:506,12--15: Error: No property ArraySetIterator::next is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:508,12--15: Error: No property ArraySetIterator::item is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:521,12--13: Error: No property ArrayMap::[] is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:521,15--17: Error: Untyped parameter `key'.
 ../lib/standard/collection/array.nit:532,12--14: Error: No property ArrayMap::[]= is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:532,16--18: Error: Untyped parameter `key'.
 ../lib/standard/collection/array.nit:542,12--15: Error: No property ArrayMap::keys is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:543,12--17: Error: No property ArrayMap::values is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:546,12--17: Error: No property ArrayMap::length is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:550,12--19: Error: No property ArrayMap::is_empty is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:552,12--16: Error: No property ArrayMap::clear is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:557,12--20: Error: No property ArrayMap::couple_at is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:557,22--24: Error: Untyped parameter `key'.
 ../lib/standard/collection/array.nit:629,12--16: Error: No property ArrayMapValues::first is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:630,12--19: Error: No property ArrayMapValues::is_empty is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:631,12--17: Error: No property ArrayMapValues::length is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:632,12--19: Error: No property ArrayMapValues::iterator is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:635,12--14: Error: No property ArrayMapValues::has is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:635,16--19: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:642,12--19: Error: No property ArrayMapValues::has_only is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:642,21--24: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:649,12--16: Error: No property ArrayMapValues::count is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:649,18--21: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:656,12--16: Error: No property ArrayMapValues::clear is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:658,12--17: Error: No property ArrayMapValues::remove is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:658,19--22: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:671,12--21: Error: No property ArrayMapValues::remove_all is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:671,23--26: Error: Untyped parameter `item'.
similarity index 80%
rename from tests/sav/base_virtual_type3_alt1.res
rename to tests/sav/fixme/base_virtual_type3_alt1.res
index 8ef1bd6..27035df 100644 (file)
@@ -1,21 +1,14 @@
 ../lib/standard/collection/array.nit:24,21--27: Error: No property AbstractArrayRead::length is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:26,12--19: Error: No property AbstractArrayRead::is_empty is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:28,12--14: Error: No property AbstractArrayRead::has is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:28,16--19: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:39,12--19: Error: No property AbstractArrayRead::has_only is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:39,21--24: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:50,12--16: Error: No property AbstractArrayRead::count is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:50,18--21: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:62,12--19: Error: No property AbstractArrayRead::index_of is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:62,21--24: Error: Untyped parameter `item'.
 ../lib/standard/collection/abstract_collection.nit:83,12--19: Error: No property NaiveCollection::is_empty is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:85,12--17: Error: No property NaiveCollection::length is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:92,12--14: Error: No property NaiveCollection::has is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/abstract_collection.nit:92,16--19: Error: Untyped parameter `item'.
 ../lib/standard/collection/abstract_collection.nit:98,12--19: Error: No property NaiveCollection::has_only is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/abstract_collection.nit:98,21--24: Error: Untyped parameter `item'.
 ../lib/standard/collection/abstract_collection.nit:104,12--16: Error: No property NaiveCollection::count is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/abstract_collection.nit:104,18--21: Error: Untyped parameter `item'.
 ../lib/standard/collection/abstract_collection.nit:111,12--16: Error: No property NaiveCollection::first is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:128,12--17: Error: No property AbstractArrayRead::output is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:137,12--16: Error: No property Container::first is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:139,12--19: Error: No property Container::is_empty is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:141,12--17: Error: No property Container::length is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:142,12--13: Error: No property AbstractArrayRead::== is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:142,15: Error: Untyped parameter `o'.
 ../lib/standard/collection/abstract_collection.nit:143,12--14: Error: No property Container::has is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/abstract_collection.nit:143,16--22: Error: Untyped parameter `an_item'.
 ../lib/standard/collection/abstract_collection.nit:145,12--19: Error: No property Container::has_only is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/abstract_collection.nit:145,21--27: Error: Untyped parameter `an_item'.
 ../lib/standard/collection/abstract_collection.nit:147,12--16: Error: No property Container::count is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/abstract_collection.nit:147,18--24: Error: Untyped parameter `an_item'.
 ../lib/standard/collection/abstract_collection.nit:156,12--19: Error: No property Container::iterator is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:166,12--15: Error: No property AbstractArray::push is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:166,17--20: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:168,12--14: Error: No property AbstractArray::pop is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:168,12--15: Error: No property ContainerIterator::item is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:170,12--15: Error: No property ContainerIterator::next is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:174,21--26: Error: No property ContainerIterator::is_ok is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:176,12--16: Error: No property AbstractArray::shift is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:190,12--18: Error: No property AbstractArray::unshift is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:190,20--23: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:212,12--14: Error: No property AbstractArray::add is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:212,16--19: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:214,12--16: Error: No property AbstractArray::clear is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:215,12--19: Error: No property Set::has_only is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/abstract_collection.nit:215,21--24: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:216,12--17: Error: No property AbstractArray::remove is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:216,19--22: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:218,12--21: Error: No property AbstractArray::remove_all is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:218,23--26: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:227,12--20: Error: No property AbstractArray::remove_at is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:227,22: Error: Untyped parameter `i'.
 ../lib/standard/collection/abstract_collection.nit:228,12--16: Error: No property Set::count is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/abstract_collection.nit:228,18--21: Error: Untyped parameter `item'.
 ../lib/standard/collection/abstract_collection.nit:238,12--21: Error: No property Set::remove_all is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/abstract_collection.nit:238,23--26: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:266,12--18: Error: No property Array::iterate is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:278,12--13: Error: No property Array::[] is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:278,15--19: Error: Untyped parameter `index'.
 ../lib/standard/collection/array.nit:284,12--14: Error: No property Array::[]= is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:284,16--20: Error: Untyped parameter `index'.
 ../lib/standard/collection/array.nit:296,12--14: Error: No property Array::add is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:296,16--19: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:306,12--18: Error: No property Array::enlarge is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:306,20--22: Error: Untyped parameter `cap'.
 ../lib/standard/collection/abstract_collection.nit:321,12--17: Error: No property Map::values is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:323,12--15: Error: No property Map::keys is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:375,12--16: Error: No property SequenceRead::first is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:407,12--19: Error: No property SequenceRead::iterator is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:431,12--15: Error: No property ArrayIterator::item is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:434,12--14: Error: No property Sequence::add is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/abstract_collection.nit:434,16: Error: Untyped parameter `e'.
 ../lib/standard/collection/array.nit:435,12--16: Error: No property ArrayIterator::is_ok is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:437,12--15: Error: No property ArrayIterator::next is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:445,21--26: Error: No property ArrayIterator::index is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:458,12--14: Error: No property ArraySet::has is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:458,16: Error: Untyped parameter `e'.
 ../lib/standard/collection/array.nit:460,12--14: Error: No property ArraySet::add is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:460,16: Error: Untyped parameter `e'.
 ../lib/standard/collection/array.nit:462,12--19: Error: No property ArraySet::is_empty is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:464,12--17: Error: No property ArraySet::length is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:466,12--16: Error: No property ArraySet::first is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:472,12--17: Error: No property ArraySet::remove is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:472,19--22: Error: Untyped parameter `item'.
 ../lib/standard/collection/abstract_collection.nit:473,12--13: Error: No property CoupleMap::[] is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/abstract_collection.nit:473,15--17: Error: Untyped parameter `key'.
 ../lib/standard/collection/array.nit:478,12--21: Error: No property ArraySet::remove_all is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:478,23--26: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:480,12--16: Error: No property ArraySet::clear is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:482,12--19: Error: No property ArraySet::iterator is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/abstract_collection.nit:489,12--15: Error: No property CoupleMapIterator::item is inherited. Remove the redef keyword to define a new property.
@@ -97,9 +67,7 @@
 ../lib/standard/collection/array.nit:506,12--15: Error: No property ArraySetIterator::next is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:508,12--15: Error: No property ArraySetIterator::item is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:521,12--13: Error: No property ArrayMap::[] is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:521,15--17: Error: Untyped parameter `key'.
 ../lib/standard/collection/array.nit:532,12--14: Error: No property ArrayMap::[]= is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:532,16--18: Error: Untyped parameter `key'.
 ../lib/standard/collection/array.nit:542,12--15: Error: No property ArrayMap::keys is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:543,12--17: Error: No property ArrayMap::values is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:546,12--17: Error: No property ArrayMap::length is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:550,12--19: Error: No property ArrayMap::is_empty is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:552,12--16: Error: No property ArrayMap::clear is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:557,12--20: Error: No property ArrayMap::couple_at is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:557,22--24: Error: Untyped parameter `key'.
 ../lib/standard/collection/array.nit:629,12--16: Error: No property ArrayMapValues::first is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:630,12--19: Error: No property ArrayMapValues::is_empty is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:631,12--17: Error: No property ArrayMapValues::length is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:632,12--19: Error: No property ArrayMapValues::iterator is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:635,12--14: Error: No property ArrayMapValues::has is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:635,16--19: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:642,12--19: Error: No property ArrayMapValues::has_only is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:642,21--24: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:649,12--16: Error: No property ArrayMapValues::count is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:649,18--21: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:656,12--16: Error: No property ArrayMapValues::clear is inherited. Remove the redef keyword to define a new property.
 ../lib/standard/collection/array.nit:658,12--17: Error: No property ArrayMapValues::remove is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:658,19--22: Error: Untyped parameter `item'.
 ../lib/standard/collection/array.nit:671,12--21: Error: No property ArrayMapValues::remove_all is inherited. Remove the redef keyword to define a new property.
-../lib/standard/collection/array.nit:671,23--26: Error: Untyped parameter `item'.