class Bundler::PubGrub::VersionSolver

def propagate_incompatibility(incompatibility)

def propagate_incompatibility(incompatibility)
  unsatisfied = nil
  incompatibility.terms.each do |term|
    relation = solution.relation(term)
    if relation == :disjoint
      return nil
    elsif relation == :overlap
      # If more than one term is inconclusive, we can't deduce anything
      return nil if unsatisfied
      unsatisfied = term
    end
  end
  if !unsatisfied
    return :conflict
  end
  logger.debug { "derived: #{unsatisfied.invert}" }
  solution.derive(unsatisfied.invert, incompatibility)
  unsatisfied.package
end