class Bundler::Resolver
def find_names_to_relax(incompatibility)
def find_names_to_relax(incompatibility) names_to_unlock = [] names_to_allow_prereleases_for = [] extended_explanation = nil while incompatibility.conflict? cause = incompatibility.cause incompatibility = cause.incompatibility incompatibility.terms.each do |term| package = term.package name = package.name if base_requirements[name] names_to_unlock << name elsif package.ignores_prereleases? names_to_allow_prereleases_for << name end no_versions_incompat = [cause.incompatibility, cause.satisfier].find {|incompat| incompat.cause.is_a?(PubGrub::Incompatibility::NoVersions) } next unless no_versions_incompat extended_explanation = no_versions_incompat.extended_explanation end end [names_to_unlock.uniq, names_to_allow_prereleases_for.uniq, extended_explanation] end