Class: Prism::Merge::BlockVarRenamer::ReceiverCollector

Inherits:
Visitor
  • Object
show all
Defined in:
lib/prism/merge/block_var_renamer.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(target_var, offsets, scope_range: nil) ⇒ ReceiverCollector

Returns a new instance of ReceiverCollector.



50
51
52
53
54
55
# File 'lib/prism/merge/block_var_renamer.rb', line 50

def initialize(target_var, offsets, scope_range: nil)
  super()
  @target_var = target_var
  @offsets = offsets
  @scope_range = scope_range
end

Class Method Details

.collect(program_node, target_var, scope_range: nil) ⇒ Object



43
44
45
46
47
48
# File 'lib/prism/merge/block_var_renamer.rb', line 43

def self.collect(program_node, target_var, scope_range: nil)
  offsets = Set.new
  visitor = new(target_var, offsets, scope_range: scope_range)
  visitor.visit(program_node)
  offsets
end

Instance Method Details

#visit_block_node(node) ⇒ Object



77
78
79
80
81
# File 'lib/prism/merge/block_var_renamer.rb', line 77

def visit_block_node(node)
  return if shadowing_target_parameter?(node)

  super
end

#visit_call_and_write_node(node) ⇒ Object



67
68
69
70
# File 'lib/prism/merge/block_var_renamer.rb', line 67

def visit_call_and_write_node(node)
  record_root_receiver(node.receiver) if node.receiver
  super
end

#visit_call_node(node) ⇒ Object



57
58
59
60
# File 'lib/prism/merge/block_var_renamer.rb', line 57

def visit_call_node(node)
  record_root_receiver(node.receiver) if node.receiver
  super
end

#visit_call_operator_write_node(node) ⇒ Object



62
63
64
65
# File 'lib/prism/merge/block_var_renamer.rb', line 62

def visit_call_operator_write_node(node)
  record_root_receiver(node.receiver) if node.receiver
  super
end

#visit_call_or_write_node(node) ⇒ Object



72
73
74
75
# File 'lib/prism/merge/block_var_renamer.rb', line 72

def visit_call_or_write_node(node)
  record_root_receiver(node.receiver) if node.receiver
  super
end