[lldb] Improve (for posterity) and then remove unused ValueObject::GetChildAtIndexPath(...)
methods
#8138
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.
This is a cherry-pick combination of these 2 PRs from llvm/llvm-project:
Summary
Part 1 enhances the utility of the method for posterity.
Part 2 removes the method because nothing calls them.
Part 1
It's more meaningful and actionable to indicate which element in the array has an issue by returning that element's index instead of its value. The value can be ambiguous if at least one other element has the same value.
The first parameter for these methods is
idxs
, an array of indices that represent a path from a (root) parent to on of its descendants, typically though intermediate descendants. When the path leads to a descendant that doesn't exist, the method is supposed to indicate where things went wrong by setting an index to&index_of_error
, the second parameter.The problem is the method sets
*index_of_error
to the index of the most recent parent's child in the hierarchy, which isn't very useful if there's more one index with the same value in the path.In this example, each element in the path has a value that's the same as another element.
Say the the second
1
in the path (the 5th element at[4]
) doesn't exist and the code returns anullptr
. In that situation, the code sets*index_of_error
to1
, but that's an ambiguous hint can implicate the 1st, 5th, or 6th element (at[0]
,[4]
, or[5]
).It’s more helpful to set
*index_of_error
to4
to clearly indicate which element inidxs
has the issue.Part 2
Nothing calls into these two methods, so we (@adrian-prantl and I) agreed to remove them once we merged the previous PR.
rdar://122447010