# File lib/heckle.rb, line 477
  def walk_and_push(node, index = 0)
    return unless node.respond_to? :each
    return if node.is_a? String

    @walk_stack.push node.first
    node.each_with_index { |child_node, i| walk_and_push child_node, i }
    @walk_stack.pop

    if @mutatable_nodes.include? node.first and
       # HACK skip over call nodes that are the first child of an iter or
       # they'll get added twice
       #
       # I think heckle really needs two processors, one for finding and one
       # for heckling.
       !(node.first == :call and index == 1 and @walk_stack.last == :iter) then
      @mutatees[node.first].push(node)
    end
  end