class Solargraph::Source::Chain::Call

def resolve api_map, name_pin, locals

Parameters:
  • locals (::Array) --
  • name_pin (Pin::Closure) -- name_pin.binder should give us the object on which 'word' will be invoked
  • api_map (ApiMap) --
def resolve api_map, name_pin, locals
  return super_pins(api_map, name_pin) if word == 'super'
  return yield_pins(api_map, name_pin) if word == 'yield'
  found = if head?
    locals.select { |p| p.name == word }
  else
    []
  end
  return inferred_pins(found, api_map, name_pin, locals) unless found.empty?
  pins = name_pin.binder.each_unique_type.flat_map do |context|
    ns = context.namespace == '' ? '' : context.namespace_type.tag
    api_map.get_method_stack(ns, word, scope: context.scope)
  end
  return [] if pins.empty?
  inferred_pins(pins, api_map, name_pin, locals)
end