# 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