Class: Empirical::IvarProcessor
Constant Summary
BaseProcessor::EVAL_METHODS
Instance Method Summary
collapse
#initialize
Instance Method Details
#visit_block_node(node) ⇒ Object
12
13
14
|
# File 'lib/empirical/ivar_processor.rb', line 12
def visit_block_node(node)
new_context { super }
end
|
#visit_case_node(node) ⇒ Object
31
32
33
34
35
36
37
38
39
|
# File 'lib/empirical/ivar_processor.rb', line 31
def visit_case_node(node)
visit(node.predicate)
node.conditions.each do |condition|
branch { visit(condition) }
end
branch { visit(node.else_clause) }
end
|
#visit_class_node(node) ⇒ Object
4
5
6
|
# File 'lib/empirical/ivar_processor.rb', line 4
def visit_class_node(node)
new_context { super }
end
|
#visit_def_node(node) ⇒ Object
20
21
22
|
# File 'lib/empirical/ivar_processor.rb', line 20
def visit_def_node(node)
new_context { super }
end
|
#visit_defined_node(node) ⇒ Object
41
42
43
44
45
46
47
|
# File 'lib/empirical/ivar_processor.rb', line 41
def visit_defined_node(node)
value = node.value
return if Prism::InstanceVariableReadNode === value
super
end
|
#visit_if_node(node) ⇒ Object
24
25
26
27
28
29
|
# File 'lib/empirical/ivar_processor.rb', line 24
def visit_if_node(node)
visit(node.predicate)
branch { visit(node.statements) }
branch { visit(node.subsequent) }
end
|
#visit_instance_variable_read_node(node) ⇒ Object
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
# File 'lib/empirical/ivar_processor.rb', line 49
def visit_instance_variable_read_node(node)
name = node.name
unless @context.include?(name)
location = node.location
@context << name
@annotations.push(
[location.start_character_offset, 0, "(defined?(#{name}) ? "],
[location.end_character_offset, 0, " : (::Kernel.raise(::Empirical::NameError.new(self, :#{name}))))"]
)
end
super
end
|
#visit_module_node(node) ⇒ Object
8
9
10
|
# File 'lib/empirical/ivar_processor.rb', line 8
def visit_module_node(node)
new_context { super }
end
|
#visit_singleton_class_node(node) ⇒ Object
16
17
18
|
# File 'lib/empirical/ivar_processor.rb', line 16
def visit_singleton_class_node(node)
new_context { super }
end
|