Class: JRuby::Lint::Checkers::NonAtomic
- Inherits:
-
Object
- Object
- JRuby::Lint::Checkers::NonAtomic
show all
- Includes:
- JRuby::Lint::Checker
- Defined in:
- lib/jruby/lint/checkers/nonatomic.rb
Instance Attribute Summary
#collector
Instance Method Summary
collapse
included, loaded_checkers
Instance Method Details
#add_finding(collector, node) ⇒ Object
32
33
34
35
|
# File 'lib/jruby/lint/checkers/nonatomic.rb', line 32
def add_finding(collector, node)
collector.findings << Finding.new("Non-local operator assignment is not guaranteed to be atomic",
[:nonatomic, :warning], node.position)
end
|
#check_nonatomic(orig_node, risk_node) ⇒ Object
22
23
24
25
26
27
28
29
30
|
# File 'lib/jruby/lint/checkers/nonatomic.rb', line 22
def check_nonatomic(orig_node, risk_node)
case risk_node
when org::jruby::ast::LocalVarNode,
org::jruby::ast::DVarNode
else
add_finding(collector, orig_node)
end
end
|
#visitOpAsgnAndNode(node) ⇒ Object
10
11
12
|
# File 'lib/jruby/lint/checkers/nonatomic.rb', line 10
def visitOpAsgnAndNode(node)
check_nonatomic(node, node.first_node)
end
|
#visitOpAsgnNode(node) ⇒ Object
18
19
20
|
# File 'lib/jruby/lint/checkers/nonatomic.rb', line 18
def visitOpAsgnNode(node)
check_nonatomic(node, node.receiver_node)
end
|
#visitOpAsgnOrNode(node) ⇒ Object
6
7
8
|
# File 'lib/jruby/lint/checkers/nonatomic.rb', line 6
def visitOpAsgnOrNode(node)
check_nonatomic(node, node.first_node)
end
|
#visitOpElementAsgnNode(node) ⇒ Object
14
15
16
|
# File 'lib/jruby/lint/checkers/nonatomic.rb', line 14
def visitOpElementAsgnNode(node)
add_finding(collector, node)
end
|