Closed madmann91 closed 6 years ago
f0d468f is not temporary fix but the proper way to fix this. However, the evaluator could be made more intelligent such that these cases occur less frequent. Months ago we had an experimental branch where we tried that but this is actually harder to implement than it sounds. So, I'm closing this for now.
The partial evaluator is too eager in its evaluation, resulting in execution of dead code. This is incorrect, as demonstrated by the following valid program:
This example triggers the assertion:
This means that the
j == 3
branch is mangled even if it should not be.