Class: PinkSpoon::ConstantResolver::IvarTypeFinder

Inherits:
Prism::Visitor
  • Object
show all
Defined in:
lib/pink_spoon/constant_resolver.rb

Overview

Collects all RHS nodes for ‘@ivar = rhs` and `@ivar ||= rhs` writes.

Instance Method Summary collapse

Constructor Details

#initialize(ivar_name) ⇒ IvarTypeFinder

Returns a new instance of IvarTypeFinder.



333
334
335
336
# File 'lib/pink_spoon/constant_resolver.rb', line 333

def initialize(ivar_name)
  @ivar_name = ivar_name
  @results   = []
end

Instance Method Details

#find_all(ast) ⇒ Object



338
339
340
341
# File 'lib/pink_spoon/constant_resolver.rb', line 338

def find_all(ast)
  visit(ast)
  @results
end

#visit_instance_variable_or_write_node(node) ⇒ Object



348
349
350
351
# File 'lib/pink_spoon/constant_resolver.rb', line 348

def visit_instance_variable_or_write_node(node)
  @results << node.value if node.name.to_s == @ivar_name
  super
end

#visit_instance_variable_write_node(node) ⇒ Object



343
344
345
346
# File 'lib/pink_spoon/constant_resolver.rb', line 343

def visit_instance_variable_write_node(node)
  @results << node.value if node.name.to_s == @ivar_name
  super
end