model_collect: collect modifiers for all MEntities
authorAlexandre Terrasa <alexandre@moz-code.org>
Tue, 17 May 2016 18:22:15 +0000 (14:22 -0400)
committerAlexandre Terrasa <alexandre@moz-code.org>
Tue, 17 May 2016 18:22:23 +0000 (14:22 -0400)
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>

src/model/model_collect.nit

index 65c1c62..2590b0d 100644 (file)
@@ -31,8 +31,38 @@ module model_collect
 
 import model_views
 
+redef class MEntity
+
+       # Collect modifier keywords like `redef`, `private` etc.
+       fun collect_modifiers: Array[String] do
+               return new Array[String]
+       end
+end
+
+redef class MPackage
+       redef fun collect_modifiers do
+               var res = super
+               res.add "package"
+               return res
+       end
+end
+
+redef class MGroup
+       redef fun collect_modifiers do
+               var res = super
+               res.add "group"
+               return res
+       end
+end
+
 redef class MModule
 
+       redef fun collect_modifiers do
+               var res = super
+               res.add "module"
+               return res
+       end
+
        # Collect all transitive imports.
        fun collect_ancestors(view: ModelView): Set[MModule] do
                var res = new HashSet[MModule]
@@ -133,6 +163,8 @@ end
 
 redef class MClass
 
+       redef fun collect_modifiers do return intro.collect_modifiers
+
        # Collect direct parents of `self` with `visibility >= to min_visibility`.
        fun collect_parents(view: ModelView): Set[MClass] do
                var res = new HashSet[MClass]
@@ -404,9 +436,8 @@ redef class MClassDef
                return res
        end
 
-       # Collect modifiers like redef, private etc.
-       fun collect_modifiers: Array[String] do
-               var res = new Array[String]
+       redef fun collect_modifiers do
+               var res = super
                if not is_intro then
                        res.add "redef"
                else
@@ -417,10 +448,13 @@ redef class MClassDef
        end
 end
 
+redef class MProperty
+       redef fun collect_modifiers do return intro.collect_modifiers
+end
+
 redef class MPropDef
-       # Collect modifiers like redef, private, abstract, intern, fun etc.
-       fun collect_modifiers: Array[String] do
-               var res = new Array[String]
+       redef fun collect_modifiers do
+               var res = super
                if not is_intro then
                        res.add "redef"
                else
@@ -440,6 +474,8 @@ redef class MPropDef
                        else
                                res.add "fun"
                        end
+               else if mprop isa MAttributeDef then
+                       res.add "var"
                end
                return res
        end