rta: use callsites in AFor instead re-resolving stuff
[nit.git] / src / parser / parser_prod.nit
index 9a70b38..05daac5 100644 (file)
@@ -1,6 +1,6 @@
 # Production AST nodes full definition.
 # This file was generated by SableCC (http://www.sablecc.org/).
-package parser_prod
+module parser_prod
 
 import lexer
 intrude import parser_nodes
@@ -3999,8 +3999,7 @@ redef class ASignature
             n_opar: nullable TOpar,
             n_params: Collection[Object], # Should be Collection[AParam]
             n_cpar: nullable TCpar,
-            n_type: nullable AType,
-            n_closure_decls: Collection[Object] # Should be Collection[AClosureDecl]
+            n_type: nullable AType
     )
     do
         empty_init
@@ -4021,11 +4020,6 @@ redef class ASignature
        if n_type != null then
                n_type.parent = self
        end
-       for n in n_closure_decls do
-               assert n isa AClosureDecl
-               _n_closure_decls.add(n)
-               n.parent = self
-       end
     end
 
     redef fun replace_child(old_child: ANode, new_child: nullable ANode)
@@ -4072,18 +4066,6 @@ redef class ASignature
             end
             return
        end
-        for i in [0.._n_closure_decls.length[ do
-            if _n_closure_decls[i] == old_child then
-                if new_child != null then
-                   assert new_child isa AClosureDecl
-                    _n_closure_decls[i] = new_child
-                    new_child.parent = self
-                else
-                    _n_closure_decls.remove_at(i)
-                end
-                return
-            end
-        end
     end
 
                redef fun n_opar=(node)
@@ -4123,9 +4105,6 @@ redef class ASignature
         if _n_type != null then
             v.enter_visit(_n_type.as(not null))
         end
-            for n in _n_closure_decls do
-                v.enter_visit(n)
-           end
     end
 end
 redef class AParam
@@ -4241,132 +4220,6 @@ redef class AParam
         end
     end
 end
-redef class AClosureDecl
-    private init empty_init do end
-
-    init init_aclosuredecl (
-            n_kwbreak: nullable TKwbreak,
-            n_bang: nullable TBang,
-            n_id: nullable TId,
-            n_signature: nullable ASignature,
-            n_expr: nullable AExpr
-    )
-    do
-        empty_init
-        _n_kwbreak = n_kwbreak
-       if n_kwbreak != null then
-               n_kwbreak.parent = self
-       end
-        _n_bang = n_bang.as(not null)
-       n_bang.parent = self
-        _n_id = n_id.as(not null)
-       n_id.parent = self
-        _n_signature = n_signature.as(not null)
-       n_signature.parent = self
-        _n_expr = n_expr
-       if n_expr != null then
-               n_expr.parent = self
-       end
-    end
-
-    redef fun replace_child(old_child: ANode, new_child: nullable ANode)
-    do
-        if _n_kwbreak == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa TKwbreak
-                _n_kwbreak = new_child
-           else
-               _n_kwbreak = null
-            end
-            return
-       end
-        if _n_bang == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa TBang
-                _n_bang = new_child
-           else
-               abort
-            end
-            return
-       end
-        if _n_id == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa TId
-                _n_id = new_child
-           else
-               abort
-            end
-            return
-       end
-        if _n_signature == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa ASignature
-                _n_signature = new_child
-           else
-               abort
-            end
-            return
-       end
-        if _n_expr == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa AExpr
-                _n_expr = new_child
-           else
-               _n_expr = null
-            end
-            return
-       end
-    end
-
-               redef fun n_kwbreak=(node)
-               do
-                       _n_kwbreak = node
-                       if node != null then
-                               node.parent = self
-                       end
-               end
-               redef fun n_bang=(node)
-               do
-                       _n_bang = node
-                       node.parent = self
-               end
-               redef fun n_id=(node)
-               do
-                       _n_id = node
-                       node.parent = self
-               end
-               redef fun n_signature=(node)
-               do
-                       _n_signature = node
-                       node.parent = self
-               end
-               redef fun n_expr=(node)
-               do
-                       _n_expr = node
-                       if node != null then
-                               node.parent = self
-                       end
-               end
-
-
-    redef fun visit_all(v: Visitor)
-    do
-        if _n_kwbreak != null then
-            v.enter_visit(_n_kwbreak.as(not null))
-        end
-        v.enter_visit(_n_bang)
-        v.enter_visit(_n_id)
-        v.enter_visit(_n_signature)
-        if _n_expr != null then
-            v.enter_visit(_n_expr.as(not null))
-        end
-    end
-end
 redef class AType
     private init empty_init do end
 
@@ -6334,63 +6187,6 @@ redef class AEqExpr
         v.enter_visit(_n_expr2)
     end
 end
-redef class AEeExpr
-    private init empty_init do end
-
-    init init_aeeexpr (
-            n_expr: nullable AExpr,
-            n_expr2: nullable AExpr
-    )
-    do
-        empty_init
-        _n_expr = n_expr.as(not null)
-       n_expr.parent = self
-        _n_expr2 = n_expr2.as(not null)
-       n_expr2.parent = self
-    end
-
-    redef fun replace_child(old_child: ANode, new_child: nullable ANode)
-    do
-        if _n_expr == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa AExpr
-                _n_expr = new_child
-           else
-               abort
-            end
-            return
-       end
-        if _n_expr2 == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa AExpr
-                _n_expr2 = new_child
-           else
-               abort
-            end
-            return
-       end
-    end
-
-               redef fun n_expr=(node)
-               do
-                       _n_expr = node
-                       node.parent = self
-               end
-               redef fun n_expr2=(node)
-               do
-                       _n_expr2 = node
-                       node.parent = self
-               end
-
-
-    redef fun visit_all(v: Visitor)
-    do
-        v.enter_visit(_n_expr)
-        v.enter_visit(_n_expr2)
-    end
-end
 redef class ANeExpr
     private init empty_init do end
 
@@ -7600,8 +7396,7 @@ redef class ACallExpr
     init init_acallexpr (
             n_expr: nullable AExpr,
             n_id: nullable TId,
-            n_args: nullable AExprs,
-            n_closure_defs: Collection[Object] # Should be Collection[AClosureDef]
+            n_args: nullable AExprs
     )
     do
         empty_init
@@ -7611,11 +7406,6 @@ redef class ACallExpr
        n_id.parent = self
         _n_args = n_args.as(not null)
        n_args.parent = self
-       for n in n_closure_defs do
-               assert n isa AClosureDef
-               _n_closure_defs.add(n)
-               n.parent = self
-       end
     end
 
     redef fun replace_child(old_child: ANode, new_child: nullable ANode)
@@ -7650,18 +7440,6 @@ redef class ACallExpr
             end
             return
        end
-        for i in [0.._n_closure_defs.length[ do
-            if _n_closure_defs[i] == old_child then
-                if new_child != null then
-                   assert new_child isa AClosureDef
-                    _n_closure_defs[i] = new_child
-                    new_child.parent = self
-                else
-                    _n_closure_defs.remove_at(i)
-                end
-                return
-            end
-        end
     end
 
                redef fun n_expr=(node)
@@ -7686,9 +7464,6 @@ redef class ACallExpr
         v.enter_visit(_n_expr)
         v.enter_visit(_n_id)
         v.enter_visit(_n_args)
-            for n in _n_closure_defs do
-                v.enter_visit(n)
-           end
     end
 end
 redef class ACallAssignExpr
@@ -8082,8 +7857,7 @@ redef class ABraExpr
 
     init init_abraexpr (
             n_expr: nullable AExpr,
-            n_args: nullable AExprs,
-            n_closure_defs: Collection[Object] # Should be Collection[AClosureDef]
+            n_args: nullable AExprs
     )
     do
         empty_init
@@ -8091,11 +7865,6 @@ redef class ABraExpr
        n_expr.parent = self
         _n_args = n_args.as(not null)
        n_args.parent = self
-       for n in n_closure_defs do
-               assert n isa AClosureDef
-               _n_closure_defs.add(n)
-               n.parent = self
-       end
     end
 
     redef fun replace_child(old_child: ANode, new_child: nullable ANode)
@@ -8120,18 +7889,6 @@ redef class ABraExpr
             end
             return
        end
-        for i in [0.._n_closure_defs.length[ do
-            if _n_closure_defs[i] == old_child then
-                if new_child != null then
-                   assert new_child isa AClosureDef
-                    _n_closure_defs[i] = new_child
-                    new_child.parent = self
-                else
-                    _n_closure_defs.remove_at(i)
-                end
-                return
-            end
-        end
     end
 
                redef fun n_expr=(node)
@@ -8150,9 +7907,6 @@ redef class ABraExpr
     do
         v.enter_visit(_n_expr)
         v.enter_visit(_n_args)
-            for n in _n_closure_defs do
-                v.enter_visit(n)
-           end
     end
 end
 redef class ABraAssignExpr
@@ -8345,25 +8099,16 @@ redef class ABraReassignExpr
         v.enter_visit(_n_value)
     end
 end
-redef class AClosureCallExpr
+redef class AVarExpr
     private init empty_init do end
 
-    init init_aclosurecallexpr (
-            n_id: nullable TId,
-            n_args: nullable AExprs,
-            n_closure_defs: Collection[Object] # Should be Collection[AClosureDef]
+    init init_avarexpr (
+            n_id: nullable TId
     )
     do
         empty_init
         _n_id = n_id.as(not null)
        n_id.parent = self
-        _n_args = n_args.as(not null)
-       n_args.parent = self
-       for n in n_closure_defs do
-               assert n isa AClosureDef
-               _n_closure_defs.add(n)
-               n.parent = self
-       end
     end
 
     redef fun replace_child(old_child: ANode, new_child: nullable ANode)
@@ -8378,28 +8123,6 @@ redef class AClosureCallExpr
             end
             return
        end
-        if _n_args == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa AExprs
-                _n_args = new_child
-           else
-               abort
-            end
-            return
-       end
-        for i in [0.._n_closure_defs.length[ do
-            if _n_closure_defs[i] == old_child then
-                if new_child != null then
-                   assert new_child isa AClosureDef
-                    _n_closure_defs[i] = new_child
-                    new_child.parent = self
-                else
-                    _n_closure_defs.remove_at(i)
-                end
-                return
-            end
-        end
     end
 
                redef fun n_id=(node)
@@ -8407,76 +8130,29 @@ redef class AClosureCallExpr
                        _n_id = node
                        node.parent = self
                end
-               redef fun n_args=(node)
-               do
-                       _n_args = node
-                       node.parent = self
-               end
 
 
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_id)
-        v.enter_visit(_n_args)
-            for n in _n_closure_defs do
-                v.enter_visit(n)
-           end
     end
 end
-redef class AVarExpr
+redef class AVarAssignExpr
     private init empty_init do end
 
-    init init_avarexpr (
-            n_id: nullable TId
+    init init_avarassignexpr (
+            n_id: nullable TId,
+            n_assign: nullable TAssign,
+            n_value: nullable AExpr
     )
     do
         empty_init
         _n_id = n_id.as(not null)
        n_id.parent = self
-    end
-
-    redef fun replace_child(old_child: ANode, new_child: nullable ANode)
-    do
-        if _n_id == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa TId
-                _n_id = new_child
-           else
-               abort
-            end
-            return
-       end
-    end
-
-               redef fun n_id=(node)
-               do
-                       _n_id = node
-                       node.parent = self
-               end
-
-
-    redef fun visit_all(v: Visitor)
-    do
-        v.enter_visit(_n_id)
-    end
-end
-redef class AVarAssignExpr
-    private init empty_init do end
-
-    init init_avarassignexpr (
-            n_id: nullable TId,
-            n_assign: nullable TAssign,
-            n_value: nullable AExpr
-    )
-    do
-        empty_init
-        _n_id = n_id.as(not null)
-       n_id.parent = self
-        _n_assign = n_assign.as(not null)
-       n_assign.parent = self
-        _n_value = n_value.as(not null)
-       n_value.parent = self
+        _n_assign = n_assign.as(not null)
+       n_assign.parent = self
+        _n_value = n_value.as(not null)
+       n_value.parent = self
     end
 
     redef fun replace_child(old_child: ANode, new_child: nullable ANode)
@@ -10490,235 +10166,6 @@ redef class AMinusAssignOp
         v.enter_visit(_n_minuseq)
     end
 end
-redef class AClosureDef
-    private init empty_init do end
-
-    init init_aclosuredef (
-            n_bang: nullable TBang,
-            n_id: nullable AClosureId,
-            n_ids: Collection[Object], # Should be Collection[TId]
-            n_kwdo: nullable TKwdo,
-            n_expr: nullable AExpr,
-            n_label: nullable ALabel
-    )
-    do
-        empty_init
-        _n_bang = n_bang.as(not null)
-       n_bang.parent = self
-        _n_id = n_id.as(not null)
-       n_id.parent = self
-       for n in n_ids do
-               assert n isa TId
-               _n_ids.add(n)
-               n.parent = self
-       end
-        _n_kwdo = n_kwdo
-       if n_kwdo != null then
-               n_kwdo.parent = self
-       end
-        _n_expr = n_expr
-       if n_expr != null then
-               n_expr.parent = self
-       end
-        _n_label = n_label
-       if n_label != null then
-               n_label.parent = self
-       end
-    end
-
-    redef fun replace_child(old_child: ANode, new_child: nullable ANode)
-    do
-        if _n_bang == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa TBang
-                _n_bang = new_child
-           else
-               abort
-            end
-            return
-       end
-        if _n_id == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa AClosureId
-                _n_id = new_child
-           else
-               abort
-            end
-            return
-       end
-        for i in [0.._n_ids.length[ do
-            if _n_ids[i] == old_child then
-                if new_child != null then
-                   assert new_child isa TId
-                    _n_ids[i] = new_child
-                    new_child.parent = self
-                else
-                    _n_ids.remove_at(i)
-                end
-                return
-            end
-        end
-        if _n_kwdo == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa TKwdo
-                _n_kwdo = new_child
-           else
-               _n_kwdo = null
-            end
-            return
-       end
-        if _n_expr == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa AExpr
-                _n_expr = new_child
-           else
-               _n_expr = null
-            end
-            return
-       end
-        if _n_label == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa ALabel
-                _n_label = new_child
-           else
-               _n_label = null
-            end
-            return
-       end
-    end
-
-               redef fun n_bang=(node)
-               do
-                       _n_bang = node
-                       node.parent = self
-               end
-               redef fun n_id=(node)
-               do
-                       _n_id = node
-                       node.parent = self
-               end
-               redef fun n_kwdo=(node)
-               do
-                       _n_kwdo = node
-                       if node != null then
-                               node.parent = self
-                       end
-               end
-               redef fun n_expr=(node)
-               do
-                       _n_expr = node
-                       if node != null then
-                               node.parent = self
-                       end
-               end
-               redef fun n_label=(node)
-               do
-                       _n_label = node
-                       if node != null then
-                               node.parent = self
-                       end
-               end
-
-
-    redef fun visit_all(v: Visitor)
-    do
-        v.enter_visit(_n_bang)
-        v.enter_visit(_n_id)
-            for n in _n_ids do
-                v.enter_visit(n)
-           end
-        if _n_kwdo != null then
-            v.enter_visit(_n_kwdo.as(not null))
-        end
-        if _n_expr != null then
-            v.enter_visit(_n_expr.as(not null))
-        end
-        if _n_label != null then
-            v.enter_visit(_n_label.as(not null))
-        end
-    end
-end
-redef class ASimpleClosureId
-    private init empty_init do end
-
-    init init_asimpleclosureid (
-            n_id: nullable TId
-    )
-    do
-        empty_init
-        _n_id = n_id.as(not null)
-       n_id.parent = self
-    end
-
-    redef fun replace_child(old_child: ANode, new_child: nullable ANode)
-    do
-        if _n_id == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa TId
-                _n_id = new_child
-           else
-               abort
-            end
-            return
-       end
-    end
-
-               redef fun n_id=(node)
-               do
-                       _n_id = node
-                       node.parent = self
-               end
-
-
-    redef fun visit_all(v: Visitor)
-    do
-        v.enter_visit(_n_id)
-    end
-end
-redef class ABreakClosureId
-    private init empty_init do end
-
-    init init_abreakclosureid (
-            n_kwbreak: nullable TKwbreak
-    )
-    do
-        empty_init
-        _n_kwbreak = n_kwbreak.as(not null)
-       n_kwbreak.parent = self
-    end
-
-    redef fun replace_child(old_child: ANode, new_child: nullable ANode)
-    do
-        if _n_kwbreak == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa TKwbreak
-                _n_kwbreak = new_child
-           else
-               abort
-            end
-            return
-       end
-    end
-
-               redef fun n_kwbreak=(node)
-               do
-                       _n_kwbreak = node
-                       node.parent = self
-               end
-
-
-    redef fun visit_all(v: Visitor)
-    do
-        v.enter_visit(_n_kwbreak)
-    end
-end
 redef class AModuleName
     private init empty_init do end
 
@@ -10960,17 +10407,17 @@ redef class AFullPropExternCall
     private init empty_init do end
 
     init init_afullpropexterncall (
-            n_classid: nullable TClassid,
-            n_quad: nullable TQuad,
+            n_type: nullable AType,
+            n_dot: nullable TDot,
             n_methid: nullable AMethid
     )
     do
         empty_init
-        _n_classid = n_classid.as(not null)
-       n_classid.parent = self
-        _n_quad = n_quad
-       if n_quad != null then
-               n_quad.parent = self
+        _n_type = n_type.as(not null)
+       n_type.parent = self
+        _n_dot = n_dot
+       if n_dot != null then
+               n_dot.parent = self
        end
         _n_methid = n_methid.as(not null)
        n_methid.parent = self
@@ -10978,23 +10425,23 @@ redef class AFullPropExternCall
 
     redef fun replace_child(old_child: ANode, new_child: nullable ANode)
     do
-        if _n_classid == old_child then
+        if _n_type == old_child then
             if new_child != null then
                 new_child.parent = self
-               assert new_child isa TClassid
-                _n_classid = new_child
+               assert new_child isa AType
+                _n_type = new_child
            else
                abort
             end
             return
        end
-        if _n_quad == old_child then
+        if _n_dot == old_child then
             if new_child != null then
                 new_child.parent = self
-               assert new_child isa TQuad
-                _n_quad = new_child
+               assert new_child isa TDot
+                _n_dot = new_child
            else
-               _n_quad = null
+               _n_dot = null
             end
             return
        end
@@ -11010,14 +10457,14 @@ redef class AFullPropExternCall
        end
     end
 
-               redef fun n_classid=(node)
+               redef fun n_type=(node)
                do
-                       _n_classid = node
+                       _n_type = node
                        node.parent = self
                end
-               redef fun n_quad=(node)
+               redef fun n_dot=(node)
                do
-                       _n_quad = node
+                       _n_dot = node
                        if node != null then
                                node.parent = self
                        end
@@ -11031,9 +10478,9 @@ redef class AFullPropExternCall
 
     redef fun visit_all(v: Visitor)
     do
-        v.enter_visit(_n_classid)
-        if _n_quad != null then
-            v.enter_visit(_n_quad.as(not null))
+        v.enter_visit(_n_type)
+        if _n_dot != null then
+            v.enter_visit(_n_dot.as(not null))
         end
         v.enter_visit(_n_methid)
     end
@@ -11042,21 +10489,21 @@ redef class AInitPropExternCall
     private init empty_init do end
 
     init init_ainitpropexterncall (
-            n_classid: nullable TClassid
+            n_type: nullable AType
     )
     do
         empty_init
-        _n_classid = n_classid.as(not null)
-       n_classid.parent = self
+        _n_type = n_type.as(not null)
+       n_type.parent = self
     end
 
     redef fun replace_child(old_child: ANode, new_child: nullable ANode)
     do
-        if _n_classid == old_child then
+        if _n_type == old_child then
             if new_child != null then
                 new_child.parent = self
-               assert new_child isa TClassid
-                _n_classid = new_child
+               assert new_child isa AType
+                _n_type = new_child
            else
                abort
             end
@@ -11064,16 +10511,16 @@ redef class AInitPropExternCall
        end
     end
 
-               redef fun n_classid=(node)
+               redef fun n_type=(node)
                do
-                       _n_classid = node
+                       _n_type = node
                        node.parent = self
                end
 
 
     redef fun visit_all(v: Visitor)
     do
-        v.enter_visit(_n_classid)
+        v.enter_visit(_n_type)
     end
 end
 redef class ACastAsExternCall
@@ -11081,6 +10528,7 @@ redef class ACastAsExternCall
 
     init init_acastasexterncall (
             n_from_type: nullable AType,
+            n_dot: nullable TDot,
             n_kwas: nullable TKwas,
             n_to_type: nullable AType
     )
@@ -11088,6 +10536,10 @@ redef class ACastAsExternCall
         empty_init
         _n_from_type = n_from_type.as(not null)
        n_from_type.parent = self
+        _n_dot = n_dot
+       if n_dot != null then
+               n_dot.parent = self
+       end
         _n_kwas = n_kwas.as(not null)
        n_kwas.parent = self
         _n_to_type = n_to_type.as(not null)
@@ -11106,6 +10558,16 @@ redef class ACastAsExternCall
             end
             return
        end
+        if _n_dot == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TDot
+                _n_dot = new_child
+           else
+               _n_dot = null
+            end
+            return
+       end
         if _n_kwas == old_child then
             if new_child != null then
                 new_child.parent = self
@@ -11133,6 +10595,13 @@ redef class ACastAsExternCall
                        _n_from_type = node
                        node.parent = self
                end
+               redef fun n_dot=(node)
+               do
+                       _n_dot = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
                redef fun n_kwas=(node)
                do
                        _n_kwas = node
@@ -11148,6 +10617,9 @@ redef class ACastAsExternCall
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_from_type)
+        if _n_dot != null then
+            v.enter_visit(_n_dot.as(not null))
+        end
         v.enter_visit(_n_kwas)
         v.enter_visit(_n_to_type)
     end