'Propagate assignment flag down to child nodes.
The Assign node doesn\'t itself contains the variables being
assigned to.  Instead, the children in node.nodes are visited
with the assign flag set to true.  When the names occur in
those nodes, they are marked as defs.
Some names that occur in an assignment target are not bound by
the assignment, e.g. a name occurring inside a slice.  The
visitor handles these nodes specially; they do not propagate
the assign flag to their children.'

def visitAssign(self, node, scope):

    for n in node.nodes:
        self.visit(n, scope, 1)
    self.visit(node.expr, scope)
