mirror of
https://github.com/ruby/ruby.git
synced 2025-09-15 08:33:58 +02:00
[ruby/prism] Fix parser translator tokens for comment-only file
In https://github.com/ruby/prism/pull/3393 I made a mistake.
When there is no previous token, it wraps around to -1. Oops
Additionally, if a comment has no newline then the offset should be kept as is
3c266f1de4
This commit is contained in:
parent
f56f3eaae5
commit
d0deec3ef3
3 changed files with 23 additions and 5 deletions
|
@ -281,14 +281,14 @@ module Prism
|
|||
location = range(token.location.start_offset, lexed[index][0].location.end_offset)
|
||||
index += 1
|
||||
else
|
||||
value.chomp!
|
||||
location = range(token.location.start_offset, token.location.end_offset - 1)
|
||||
is_at_eol = value.chomp!.nil?
|
||||
location = range(token.location.start_offset, token.location.end_offset + (is_at_eol ? 0 : -1))
|
||||
|
||||
prev_token = lexed[index - 2][0]
|
||||
prev_token = lexed[index - 2][0] if index - 2 >= 0
|
||||
next_token = lexed[index][0]
|
||||
|
||||
is_inline_comment = prev_token.location.start_line == token.location.start_line
|
||||
if is_inline_comment && !COMMENT_CONTINUATION_TYPES.include?(next_token&.type)
|
||||
is_inline_comment = prev_token&.location&.start_line == token.location.start_line
|
||||
if is_inline_comment && !is_at_eol && !COMMENT_CONTINUATION_TYPES.include?(next_token&.type)
|
||||
tokens << [:tCOMMENT, [value, location]]
|
||||
|
||||
nl_location = range(token.location.end_offset - 1, token.location.end_offset)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue