class RuboCop::Cop::Lint::Void

in void context.
This cop checks for operators, variables and literals used

def check_for_literal(node)

def check_for_literal(node)
  return unless LITERALS.include?(node.type)
  add_offense(node, :expression,
              format(LIT_MSG, node.loc.expression.source))
end

def check_for_var(node)

def check_for_var(node)
  return unless VARS.include?(node.type)
  add_offense(node, :name, format(VAR_MSG, node.loc.name.source))
end

def check_for_void_op(node)

def check_for_void_op(node)
  return unless node.type == :send
  return unless node.loc.selector
  op = node.loc.selector.source
  add_offense(node, :selector, format(OP_MSG, op)) if OPS.include?(op)
end

def on_begin(node)

def on_begin(node)
  expressions = *node
  expressions.drop_last(1).each do |expr|
    check_for_void_op(expr)
    check_for_literal(expr)
    check_for_var(expr)
  end
end