# File lib/bundler/resolver.rb, line 124
    def self.resolve(requirements, index, source_requirements = {}, base = [])
      base = SpecSet.new(base) unless base.is_a?(SpecSet)
      resolver = new(index, source_requirements, base)
      result = catch(:success) do
        resolver.start(requirements)
        raise resolver.version_conflict
        nil
      end
      SpecSet.new(result)
    end