model-clients: use `is_root_init` instead of `.name == "init"`
authorJean Privat <jean@pryen.org>
Fri, 17 Oct 2014 09:57:22 +0000 (05:57 -0400)
committerJean Privat <jean@pryen.org>
Thu, 23 Oct 2014 15:39:44 +0000 (11:39 -0400)
Signed-off-by: Jean Privat <jean@pryen.org>

src/compiler/abstract_compiler.nit
src/interpreter/debugger.nit
src/interpreter/naive_interpreter.nit
src/rapid_type_analysis.nit

index 85222a9..d4d2302 100644 (file)
@@ -1845,7 +1845,7 @@ redef class MMethodDef
                if modelbuilder.mpropdef2npropdef.has_key(self) then
                        var npropdef = modelbuilder.mpropdef2npropdef[self]
                        return npropdef.can_inline
-               else if self.mproperty.name == "init" then
+               else if self.mproperty.is_root_init then
                        # Automatic free init is always inlined since it is empty or contains only attribtes assigments
                        return true
                else
@@ -1865,7 +1865,7 @@ redef class MMethodDef
                        self.compile_parameter_check(v, arguments)
                        npropdef.compile_to_c(v, self, arguments)
                        v.current_node = oldnode
-               else if self.mproperty.name == "init" then
+               else if self.mproperty.is_root_init then
                        var nclassdef = modelbuilder.mclassdef2nclassdef[self.mclassdef]
                        var oldnode = v.current_node
                        v.current_node = nclassdef
index 771d4a2..8723ed7 100644 (file)
@@ -289,7 +289,7 @@ class Debugger
                                print "Error, invalid propdef to call at runtime !"
                                return null
                        end
-               else if mproperty.name == "init" then
+               else if mproperty.is_root_init then
                        var nclassdef = self.modelbuilder.mclassdef2nclassdef[mpropdef.mclassdef]
                        self.parameter_check(nclassdef, mpropdef, args)
                        return nclassdef.call(self, mpropdef, args)
index e16f060..a0b9e54 100644 (file)
@@ -381,7 +381,7 @@ class NaiveInterpreter
                        var npropdef = self.modelbuilder.mpropdef2npropdef[mpropdef]
                        self.parameter_check(npropdef, mpropdef, args)
                        return npropdef.call(self, mpropdef, args)
-               else if mproperty.name == "init" then
+               else if mproperty.is_root_init then
                        var nclassdef = self.modelbuilder.mclassdef2nclassdef[mpropdef.mclassdef]
                        self.parameter_check(nclassdef, mpropdef, args)
                        return nclassdef.call(self, mpropdef, args)
index 897d7b7..7c4bcec 100644 (file)
@@ -237,7 +237,7 @@ class RapidTypeAnalysis
 
                        if not modelbuilder.mpropdef2npropdef.has_key(mmethoddef) then
                                # It is an init for a class?
-                               if mmeth.name == "init" then
+                               if mmeth.is_root_init then
                                        var nclassdef = self.modelbuilder.mclassdef2nclassdef[mmethoddef.mclassdef]
                                        assert mmethoddef == nclassdef.mfree_init