metamodel: new MMMethod::is_intern & is_abstract
authorJean Privat <jean@pryen.org>
Wed, 15 Jul 2009 15:45:12 +0000 (11:45 -0400)
committerJean Privat <jean@pryen.org>
Wed, 15 Jul 2009 16:19:42 +0000 (12:19 -0400)
Signed-off-by: Jean Privat <jean@pryen.org>

src/metamodel/abstractmetamodel.nit
src/nitdoc.nit
src/syntax/syntax_base.nit

index dad3880..4844ff3 100644 (file)
@@ -633,6 +633,11 @@ end
 # Method local properties
 class MMMethod
 special MMLocalProperty
+       # Is the method defined with intern
+       fun is_intern: Bool is abstract
+
+       # Is the method abstract
+       fun is_abstract: Bool is abstract
 end
 
 # Concrete local classes
index 17f5145..d76c2c2 100644 (file)
@@ -454,10 +454,10 @@ special MMEntity
                var res = new Buffer
                res.append(signature.to_html(dctx))
                var s = self
-               if s.node != null then
-                       if s.node isa ADeferredMethPropdef then
+               if s isa MMMethod then
+                       if s.is_abstract then
                                res.append(" is abstract")
-                       else if s.node isa AInternMethPropdef then
+                       else if s.is_intern then
                                res.append(" is intern")
                        end
                end
index b7dad13..925a740 100644 (file)
@@ -125,6 +125,8 @@ end
 # Concrete NIT source method
 class MMSrcMethod
 special MMMethod
+       redef fun is_intern do return false
+       redef fun is_abstract do return false
 end
 
 # Concrete NIT source method for an automatic accesor
@@ -159,12 +161,17 @@ end
 # Concrete NIT source method for an explicit method
 class MMMethSrcMethod
 special MMSrcMethod
-       redef fun is_init do return _node isa AConcreteInitPropdef
+       redef readable var _is_init: Bool
+       redef readable var _is_intern: Bool
+       redef readable var _is_abstract: Bool
        redef readable var _node: nullable AMethPropdef
        init(name: Symbol, cla: MMLocalClass, n: nullable AMethPropdef)
        do
                super(name, cla)
                _node = n
+               _is_init = node isa AConcreteInitPropdef
+               _is_intern = node isa AInternMethPropdef
+               _is_abstract = node isa ADeferredMethPropdef
        end
 end