class JMESPath::Nodes::Condition

def initialize(test, child)

def initialize(test, child)
  @test = test
  @child = child
end

def optimize

def optimize
  test = @test.optimize
  if (new_type = ComparatorCondition::COMPARATOR_TO_CONDITION[@test.class])
    new_type.new(test.left, test.right, @child).optimize
  else
    self.class.new(test, @child.optimize)
  end
end

def visit(value)

def visit(value)
  if JMESPath::Util.falsey?(@test.visit(value))
    nil
  else
    @child.visit(value)
  end
end