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.
This pull request improves parsing error on EOF.
Problem
Currently
rbs parse
command raises an error when the target file has a syntax error that is caused by an EOF.For example:
Because
RBS::Parser::SyntaxError
expects aLocatedValue
as error_value, but actually, it receives a String, which is"$"
, on this case.Solution
Handle EOF properly in
next_token
method.Currently it just returns a
nil
on EOF, so Racc can't be aware of theLocatedValue
for EOF.next_token
can returns[false, any_value]
on EOF.So I changed the returned value of
next_token
to[false, LocatedValue]
.rbs parse
command will display the following.$ rbs parse test.rbs test.rbs:2:9: parse error on value: ($end)