Checkout
Tom Watson
committed
on 28 Mar 17
FELIX-5601 - issues resolving with substitutable exports

Original fix had issues with assuming the Candidates::m_dependenMap
got updated as… Show more
FELIX-5601 - issues resolving with substitutable exports

Original fix had issues with assuming the Candidates::m_dependenMap

got updated as the CandidateSelectors moved on to the next candidate.

Need an additional check to make sure the current candidate is the

one that could be substituted.

This also exposed an issue with the solution for the testcase

that had long blame requirement chain.  In this case we have

historically started at the direct requirement for the conflicting

capability and worked our way back to the root requirement for

the blame chain.

This worked for the most part when we didn't pay attention to

substitutable capabilities when permuting, but I suspect there

were still cases where this would eliminate.  This fix now

traverses the blame chain from both directions to ensure

we can find a solution when one exists Show less