class RuboCop::Cop::Lint::IneffectiveAccessModifier

def check_scope(node, cur_vis = :public)

def check_scope(node, cur_vis = :public)
  node.children.each do |child|
    if (new_vis = access_modifier(child))
      @last_access_modifier = child
      cur_vis = new_vis
    elsif child.defs_type?
      if cur_vis != :public
        _, method_name, = *child
        @useless[method_name] = [child, cur_vis, @last_access_modifier]
      end
    elsif (methods = private_class_method(child))
      # don't warn about defs nodes which are followed by a call to
      # `private_class_method :name`
      # obviously the programmer knows what they are doing
      methods.select(&:sym_type?).each do |sym|
        @useless.delete(sym.children[0])
      end
    elsif child.kwbegin_type?
      cur_vis = check_scope(child, cur_vis)
    end
  end
  cur_vis
end