SkipUpTo does not allow to skip return nodes, which prevents from skipping up to an inlined ifTrue: block if there is an inlined ifFalse: block before #57
In the screenshot below, we want to skip up to the a := 2 instruction in the inlined ifTrue: block
GHowever, after skipping up to caret, we stop on the return node in the inlined ifFalse: block because it is before the inlined ifTrue: block: and skipUpTo: does not skip return bytecodes:
This is not normal in this case, as we would like to be able to skipUpTo the ifTrue: block as this code is reachable.
To fix it, maybe we should modify the skip command so that it allows to skip return bytecodes if there are still return bytecodes after the one we want to skip.
In the screenshot below, we want to skip up to the
a := 2
instruction in the inlined ifTrue: blockGHowever, after skipping up to caret, we stop on the return node in the inlined ifFalse: block because it is before the inlined ifTrue: block: and
skipUpTo:
does not skip return bytecodes:This is not normal in this case, as we would like to be able to skipUpTo the ifTrue: block as this code is reachable.
To fix it, maybe we should modify the
skip
command so that it allows to skip return bytecodes if there are still return bytecodes after the one we want to skip.