[5.5][Sema] Use different solution vectors for ComponentStep
s created by DependentComponentSplitterStep
#38061
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently all
ComponentSteps
created byDependentComponentSplitterStep
share the sameSolutions
vector. Because of this, theComponentStep
s might modify solutions created by previousComponentStep
s. Use differentSolutions
vectors for eachComponentStep
to avoid sharing information between theComponentStep
s.For example, in the added test case the
qadding(bar:)
overload gets added toSolutions
, it’s score gets reduced by itsComponentStep
original score, then theqadding(foo:)
overload gets added toSolutions
and both solutions have their score decreased by theOriginalScore
ofqadding(foo:)
’sComponentStep
, causingqadding(bar:)
’s score to underflow.ComponentStep
s created byDependentComponentSplitterStep
#37964