modelize classes: process AStdClassdef before
authorJean Privat <jean@pryen.org>
Wed, 8 Apr 2015 10:18:00 +0000 (17:18 +0700)
committerJean Privat <jean@pryen.org>
Fri, 10 Apr 2015 10:31:53 +0000 (17:31 +0700)
So that non-AStdClassdef classes can be attached to existing ones if any

Signed-off-by: Jean Privat <jean@pryen.org>

src/modelize/modelize_class.nit

index 5618c11..3c54891 100644 (file)
@@ -311,7 +311,13 @@ redef class ModelBuilder
                if errcount != toolcontext.error_count then return
 
                # Create all classes
+               # process AStdClassdef before so that non-AStdClassdef classes can be attached to existing ones, if any
                for nclassdef in nmodule.n_classdefs do
+                       if not nclassdef isa AStdClassdef then continue
+                       self.build_a_mclass(nmodule, nclassdef)
+               end
+               for nclassdef in nmodule.n_classdefs do
+                       if nclassdef isa AStdClassdef then continue
                        self.build_a_mclass(nmodule, nclassdef)
                end
 
@@ -319,6 +325,11 @@ redef class ModelBuilder
 
                # Create all classdefs
                for nclassdef in nmodule.n_classdefs do
+                       if not nclassdef isa AStdClassdef then continue
+                       self.build_a_mclassdef(nmodule, nclassdef)
+               end
+               for nclassdef in nmodule.n_classdefs do
+                       if nclassdef isa AStdClassdef then continue
                        self.build_a_mclassdef(nmodule, nclassdef)
                end