class JRuby::Lint::Checkers::ObjectSpace

Constants

METHODS
OK_ARGS

Public Instance Methods

add_finding(collector, node) click to toggle source
# File lib/jruby/lint/checkers/object_space.rb, line 21
def add_finding(collector, node)
  collector.add_finding("Use of ObjectSpace is expensive and disabled by default. Use -X+O to enable.",
                                    [:objectspace, :warning], node.line+1)
end
visitCallNode(node) click to toggle source
# File lib/jruby/lint/checkers/object_space.rb, line 8
def visitCallNode(node)
  if METHODS.include?(node.name)
    begin
      return unless node.receiver_node.node_type.to_s == "CONSTNODE" &&
                node.receiver_node.name == :ObjectSpace
      return if node.args_node && node.args_node.size == 1 &&
                OK_ARGS.include?(node.args_node.first.name)
      add_finding(collector, node)
    rescue
    end
  end
end