class Bundler::Resolver

def no_versions_incompatibility_for(package, unsatisfied_term)

def no_versions_incompatibility_for(package, unsatisfied_term)
  cause = PubGrub::Incompatibility::NoVersions.new(unsatisfied_term)
  name = package.name
  constraint = unsatisfied_term.constraint
  constraint_string = constraint.constraint_string
  requirements = constraint_string.split(" OR ").map {|req| Gem::Requirement.new(req.split(",")) }
  if name == "bundler" && bundler_pinned_to_current_version?
    custom_explanation = "the current Bundler version (#{Bundler::VERSION}) does not satisfy #{constraint}"
    extended_explanation = bundler_not_found_message(requirements)
  else
    specs_matching_other_platforms = filter_matching_specs(@all_specs[name], requirements)
    platforms_explanation = specs_matching_other_platforms.any? ? " for any resolution platforms (#{package.platforms.join(", ")})" : ""
    custom_explanation = "#{constraint} could not be found in #{repository_for(package)}#{platforms_explanation}"
    label = "#{name} (#{constraint_string})"
    extended_explanation = other_specs_matching_message(specs_matching_other_platforms, label) if specs_matching_other_platforms.any?
  end
  Incompatibility.new([unsatisfied_term], cause: cause, custom_explanation: custom_explanation, extended_explanation: extended_explanation)
end