Bugfix/ls24004538/call error indicator program stack #642
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.
Description
Fix a very specific corner case on
CALL
statements with error indicators that caused the compiler to think we never exited the erroring program.Technical notes
It appears that when we threw a runtime error in
interpreter.execute(this.cu, params, false, callerParams)
inprogram.kt
we caught the thrown error inCallStmt
, skipping the program exit logic. For this reason the interpreter was stuck thinking we never exited that program.Fixed by adding an intermediate catch logic that performs a cleanup before throwing again.
Related to:
Checklist:
./gradlew ktlintCheck
)../gradlew check
).docs
directory.