Reset nil attributes to their default values to make the spec valid
@return [Object] most up-to-date dependency in the possibility set
@return [Array] array of all the requirements that led to the need for
this unwind
Processes the topmost available {RequirementState} on the stack @return [void]
Creates and pushes the initial state for the resolution, based upon the {#requested} dependencies @return [void]
@param [Object] requirement @return [ResolutionState] the state whose ‘requirement` is the given
`requirement`.
@param [Object] requirement @return [Array<Object>] the list of requirements that led to
`requirement` being required.
Add the current {#possibility} to the dependency graph of the current {#state} @return [void]
Checks a proposed requirement with any existing locked requirement before generating an array of possibilities for it. @param [Object] requirement the proposed requirement @param [Object] activated @return [Array] possibilities
Raises a VersionConflict
error, or any underlying error, if there is no current state @return [void]
@param [Array<Object>] binding_requirements array of requirements that combine to create a conflict @return [Array<UnwindDetails>] array of UnwindDetails
that have a chance
of resolving the passed requirements
@param [Conflict] conflict @return [Array] minimal array of requirements that would cause the passed
conflict to occur.
@param [Object] requirement we wish to check @param [Array] possible_binding_requirements array of requirements @param [Array] possibilities array of possibilities the requirements will be used to filter @return [Boolean] whether or not the given requirement is required to filter
out all elements of the array of possibilities.
@param [Object] requirement the proposed requirement @param [Object] activated @return [Array] possibility set containing only the locked requirement, if any
@return [Integer] index of state requirement in reversed requirement tree
(the conflicting requirement itself will be at position 0)