class Bundler::PubGrub::VersionSolver

def initialize(source:, root: Package.root, logger: Bundler::PubGrub.logger)

def initialize(source:, root: Package.root, logger: Bundler::PubGrub.logger)
  @logger = logger
  @source = source
  # { package => [incompatibility, ...]}
  @incompatibilities = Hash.new do |h, k|
    h[k] = []
  end
  @seen_incompatibilities = {}
  @solution = PartialSolution.new
  add_incompatibility Incompatibility.new([
    Term.new(VersionConstraint.any(root), false)
  ], cause: :root)
  propagate(root)
end