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 =
[:each_object, :_id2ref]
- OK_ARGS =
[:Class, :Module]
Instance Attribute Summary
#collector
Instance Method Summary
collapse
#grand_parent, included, loaded_checkers, #parent, #src_line
Instance Method Details
#add_finding(collector, node) ⇒ Object
21
22
23
24
|
# 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) ⇒ Object
8
9
10
11
12
13
14
15
16
17
18
19
|
# 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
|