Remove unneeded exit conditions for parse_stream
#3916
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.
As I understand it, the code operates line-by-line. When finding
__END__, it has to decide if it is the end marker or just appears as part of of a multi-line literal (see tests).Basically, if we found
__END__on a line by itself and there are syntax errors, it's impossible to be the end marker.This is in preparation for #3911. That issue is caused by
lex_modesnot being properly reset after reaching EOF during heredoc body parsing. It is still inPM_LEX_EMBEXPRmode, which causes it to not reset the parser to the heredoc identifier end.Tests are just formatted so it's better to see what they are doing.