summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/prism/translation/parser/lexer.rb10
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/prism/translation/parser/lexer.rb b/lib/prism/translation/parser/lexer.rb
index 49fdd2aea8..550219fc48 100644
--- a/lib/prism/translation/parser/lexer.rb
+++ b/lib/prism/translation/parser/lexer.rb
@@ -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)