From: Alexandre Terrasa Date: Wed, 25 May 2016 01:10:36 +0000 (-0400) Subject: src/model: generalize visibility to all MEntities X-Git-Url: http://nitlanguage.org src/model: generalize visibility to all MEntities Signed-off-by: Alexandre Terrasa --- diff --git a/src/model/model.nit b/src/model/model.nit index 9aefe19..d4ca515 100644 --- a/src/model/model.nit +++ b/src/model/model.nit @@ -30,6 +30,15 @@ import mdoc import ordered_tree private import more_collections +redef class MEntity + # The visibility of the MEntity. + # + # MPackages, MGroups and MModules are always public. + # The visibility of `MClass` and `MProperty` is defined by the keyword used. + # `MClassDef` and `MPropDef` return the visibility of `MClass` and `MProperty`. + fun visibility: MVisibility do return public_visibility +end + redef class Model # All known classes var mclasses = new Array[MClass] @@ -465,7 +474,7 @@ class MClass # The visibility of the class # In Nit, the visibility of a class cannot evolve in refinements - var visibility: MVisibility + redef var visibility init do @@ -593,6 +602,8 @@ class MClassDef redef var location: Location + redef fun visibility do return mclass.visibility + # Internal name combining the module and the class # Example: "mymodule$MyClass" redef var to_s is noinit @@ -1988,7 +1999,7 @@ abstract class MProperty end # The visibility of the property - var visibility: MVisibility + redef var visibility # Is the property usable as an initializer? var is_autoinit = false is writable @@ -2255,6 +2266,8 @@ abstract class MPropDef redef var location: Location + redef fun visibility do return mproperty.visibility + init do mclassdef.mpropdefs.add(self)