Instance Methods

We compare UnwindDetails when choosing which state to unwind to. If two options have the same state_index we prefer the one most removed from a requirement that caused the conflict. Both options would unwind to the same state, but a ‘grandparent` option will filter out fewer of its possibilities after doing so - where a state is both a `parent` and a `grandparent` to requirements that have caused a conflict this is the correct behaviour. @param [UnwindDetail] other UnwindDetail to be compared @return [Integer] integer specifying ordering

@return [Array] array of all the requirements that led to the need for

this unwind

@return [Integer] index of state requirement in reversed requirement tree

(the conflicting requirement itself will be at position 0)

@return [Array] array of sub-dependencies to avoid when choosing a

new possibility for the state we've unwound to. Only relevant for
non-primary unwinds

@return [Boolean] where the requirement of the state we’re unwinding

to directly caused the conflict. Note: in this case, it is
impossible for the state we're unwinding to to be a parent of
any of the other conflicting requirements (or we would have
circularity)