modelize: check property name conflicts for constructors and factories
[nit.git] / src / modelize / modelize_class.nit
index 441a6c2..ae9da02 100644 (file)
@@ -168,6 +168,10 @@ redef class ModelBuilder
                                                warning(nfdt, "useless-bound", "Warning: Useless formal parameter type since `{bound}` cannnot have subclasses.")
                                        end
                                else if mclass.mclassdefs.is_empty then
+                                       if objectclass == null then
+                                               error(nfd, "Error: Formal parameter type `{pname}' unbounded but no Object class exist.")
+                                               return
+                                       end
                                        # No bound, then implicitely bound by nullable Object
                                        var bound = objectclass.mclass_type.as_nullable
                                        bounds.add(bound)
@@ -407,9 +411,8 @@ redef class ModelBuilder
                end
        end
 
-       # Register the nclassdef associated to each mclassdef
-       # FIXME: why not refine the `MClassDef` class with a nullable attribute?
-       var mclassdef2nclassdef = new HashMap[MClassDef, AClassdef]
+       # Registration of the nclassdef associated to each mclassdef
+       private var mclassdef2nclassdef = new HashMap[MClassDef, AClassdef]
 
        # Return the static type associated to the node `ntype`.
        # `mmodule` and `mclassdef` is the context where the call is made (used to understand formal types)