Module: SyntaxTree::ContainsAssignment

Defined in:
lib/syntax_tree/node.rb

Overview

If the predicate of a conditional or loop contains an assignment (in which case we can’t know for certain that that assignment doesn’t impact the statements inside the conditional) then we can’t use the modifier form and we must use the block form.

Class Method Summary collapse

Class Method Details

.call(parent) ⇒ Object



5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
# File 'lib/syntax_tree/node.rb', line 5013

def self.call(parent)
  queue = [parent]

  while node = queue.shift
    return true if [Assign, MAssign, OpAssign].include?(node.class)
    queue += node.child_nodes
  end

  false
end