ast: kill AProxyExpr
authorJean Privat <jean@pryen.org>
Thu, 9 Oct 2014 02:44:10 +0000 (22:44 -0400)
committerJean Privat <jean@pryen.org>
Thu, 9 Oct 2014 02:44:10 +0000 (22:44 -0400)
Signed-off-by: Jean Privat <jean@pryen.org>

src/parser/parser_nodes.nit
src/semantize/flow.nit
src/semantize/typing.nit

index 5aba49d..30faf18 100644 (file)
@@ -1448,8 +1448,9 @@ end
 
 # A `once` expression. eg `once x`
 class AOnceExpr
-       super AProxyExpr
+       super AExpr
        var n_kwonce: TKwonce is writable, noinit
+       var n_expr: AExpr is writable, noinit
 end
 
 # A polymorphic invocation of a method
@@ -1856,15 +1857,10 @@ end
 
 # A simple parenthesis. eg `(x)`
 class AParExpr
-       super AProxyExpr
-       var n_opar: TOpar is writable, noinit
-       var n_cpar: TCpar is writable, noinit
-end
-
-# Whatever just contains (and mimic) an other expression
-abstract class AProxyExpr
        super AExpr
+       var n_opar: TOpar is writable, noinit
        var n_expr: AExpr is writable, noinit
+       var n_cpar: TCpar is writable, noinit
 end
 
 # A type cast. eg `x.as(T)`
index ccc36b7..d4f6cb9 100644 (file)
@@ -553,7 +553,15 @@ redef class AIsaExpr
        end
 end
 
-redef class AProxyExpr
+redef class AParExpr
+       redef fun accept_flow_visitor(v)
+       do
+               var after_expr = v.visit_expr(self.n_expr)
+               v.current_flow_context = after_expr
+       end
+end
+
+redef class AOnceExpr
        redef fun accept_flow_visitor(v)
        do
                var after_expr = v.visit_expr(self.n_expr)
index 25fa0d6..95d7b3a 100644 (file)
@@ -1242,7 +1242,14 @@ redef class AAsNotnullExpr
        end
 end
 
-redef class AProxyExpr
+redef class AParExpr
+       redef fun accept_typing(v)
+       do
+               self.mtype = v.visit_expr(self.n_expr)
+       end
+end
+
+redef class AOnceExpr
        redef fun accept_typing(v)
        do
                self.mtype = v.visit_expr(self.n_expr)