C++: Fix toString
on non-ExprNode
s
#16242
Merged
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.
The
toString
on dataflow nodes that are notExprNode
s hasn't gotten as much attention as the ones that areExprNode
s (i.e., the ones you can obtain by doingNode.asExpr()
orNode.asIndirectExpr()
). When we started showing some of these in path explanations in #16203 @jketema noticed that thetoString
was giving back implicitly and explicitly converted expressions.This PR changes this by making sure that the
toString
on these nodes always use the unconverted expression when possible, and otherwise it falls back to the old behavior.Note that this behavior changes only the
toString
and not which expressions are obtainable usingNode.asExpr()
. So it should be a very uncontroversial change that simply improves the presentation in path explanations.