class Gem::Resolver::InstallerSet

def find_all(req)

def find_all(req)
  res = []
  dep = req.dependency
  return res if @ignore_dependencies &&
                @always_install.none? {|spec| dep.match? spec }
  name = dep.name
  dep.matching_specs.each do |gemspec|
    next if @always_install.any? {|spec| spec.name == gemspec.name }
    res << Gem::Resolver::InstalledSpecification.new(self, gemspec)
  end unless @ignore_installed
  matching_local = []
  if consider_local?
    matching_local = @local.values.select do |spec, _|
      req.match? spec
    end.map do |spec, source|
      Gem::Resolver::LocalSpecification.new self, spec, source
    end
    res.concat matching_local
    begin
      if local_spec = @local_source.find_gem(name, dep.requirement)
        res << Gem::Resolver::IndexSpecification.new(
          self, local_spec.name, local_spec.version,
          @local_source, local_spec.platform
        )
      end
    rescue Gem::Package::FormatError
      # ignore
    end
  end
  res.concat @remote_set.find_all req if consider_remote? && matching_local.empty?
  res
end