class Bundler::SpecSet

def for(dependencies, check = false, platforms = [nil])

def for(dependencies, check = false, platforms = [nil])
  handled = ["bundler"].product(platforms).map {|k| [k, true] }.to_h
  deps = dependencies.product(platforms)
  specs = []
  loop do
    break unless dep = deps.shift
    name = dep[0].name
    platform = dep[1]
    key = [name, platform]
    next if handled.key?(key)
    handled[key] = true
    specs_for_dep = specs_for_dependency(*dep)
    if specs_for_dep.any?
      specs.concat(specs_for_dep)
      specs_for_dep.first.dependencies.each do |d|
        next if d.type == :development
        deps << [d, dep[1]]
      end
    elsif check
      @incomplete_specs += lookup[name]
    end
  end
  specs
end