Class: JRuby::Lint::Checkers::ObjectSpace
- Inherits:
-
Object
- Object
- JRuby::Lint::Checkers::ObjectSpace
show all
- Includes:
- JRuby::Lint::Checker
- Defined in:
- lib/jruby/lint/checkers/object_space.rb
Constant Summary
collapse
- METHODS =
%w(each_object _id2ref)
Instance Attribute Summary
#collector
Instance Method Summary
collapse
included, loaded_checkers
Instance Method Details
#add_finding(collector, node) ⇒ Object
19
20
21
22
|
# File 'lib/jruby/lint/checkers/object_space.rb', line 19
def add_finding(collector, node)
collector.findings << Finding.new("Use of ObjectSpace is expensive and disabled by default. Use -X+O to enable.",
[:objectspace, :warning], node.position)
end
|
#visitCallNode(node) ⇒ Object
7
8
9
10
11
12
13
14
15
16
17
|
# File 'lib/jruby/lint/checkers/object_space.rb', line 7
def visitCallNode(node)
if METHODS.include?(node.name)
begin
next unless node.receiver_node.node_type.to_s == "CONSTNODE" && node.receiver_node.name == "ObjectSpace"
next if node.args_node && node.args_node.size == 1 &&
%w(Class Module).include?(node.args_node[0].name)
add_finding(collector, node)
rescue
end
end
end
|