class Gem::Resolver::RequirementList

def add(req)

def add(req)
  if req.requirement.exact?
    @exact.push req
  else
    @list.push req
  end
  req
end

def each # :nodoc:

:nodoc:
def each # :nodoc:
  return enum_for __method__ unless block_given?
  @exact.each do |requirement|
    yield requirement
  end
  @list.each do |requirement|
    yield requirement
  end
end

def empty?

def empty?
  @exact.empty? && @list.empty?
end

def initialize

def initialize
  @exact = []
  @list = []
end

def initialize_copy(other) # :nodoc:

:nodoc:
def initialize_copy(other) # :nodoc:
  @exact = @exact.dup
  @list = @list.dup
end

def next5

def next5
  x = @exact[0,5]
  x + @list[0,5 - x.size]
end

def remove

def remove
  return @exact.shift unless @exact.empty?
  @list.shift
end

def size

def size
  @exact.size + @list.size
end