typing: use `location` attribute instead of `node` to isolate CallSite from the AST
[nit.git] / src / semantize / scope.nit
index 4ea5f27..fa10118 100644 (file)
@@ -33,13 +33,13 @@ end
 # A local variable (including parameters, automatic variables and self)
 class Variable
        # The name of the variable (as used in the program)
-       var name: String
+       var name: String is writable
 
        # Alias of `name`
        redef fun to_s do return self.name
 
        # The declaration of the variable, if any
-       var location: nullable Location = null
+       var location: nullable Location = null is writable
 
        # Is the local variable not read and need a warning?
        var warn_unread = false is writable
@@ -429,16 +429,24 @@ redef class AWithExpr
        end
 end
 
+redef class AAssertExpr
+       redef fun accept_scope_visitor(v)
+       do
+               v.enter_visit(n_expr)
+               v.enter_visit_block(n_else, null)
+       end
+end
+
 redef class AVarFormExpr
        # The associated variable
-       var variable: nullable Variable
+       var variable: nullable Variable is writable
 end
 
 redef class ACallFormExpr
        redef fun accept_scope_visitor(v)
        do
                if n_expr isa AImplicitSelfExpr then
-                       var name = n_id.text
+                       var name = n_qid.n_id.text
                        var variable = v.search_variable(name)
                        if variable != null then
                                var n: AExpr
@@ -465,14 +473,14 @@ redef class ACallExpr
        redef fun variable_create(variable)
        do
                variable.warn_unread = false
-               return new AVarExpr.init_avarexpr(n_id)
+               return new AVarExpr.init_avarexpr(n_qid.n_id)
        end
 end
 
 redef class ACallAssignExpr
        redef fun variable_create(variable)
        do
-               return new AVarAssignExpr.init_avarassignexpr(n_id, n_assign, n_value)
+               return new AVarAssignExpr.init_avarassignexpr(n_qid.n_id, n_assign, n_value)
        end
 end
 
@@ -480,6 +488,6 @@ redef class ACallReassignExpr
        redef fun variable_create(variable)
        do
                variable.warn_unread = false
-               return new AVarReassignExpr.init_avarreassignexpr(n_id, n_assign_op, n_value)
+               return new AVarReassignExpr.init_avarreassignexpr(n_qid.n_id, n_assign_op, n_value)
        end
 end