diff options
| author | Earlopain <14981592+Earlopain@users.noreply.github.com> | 2026-01-17 20:28:01 +0100 |
|---|---|---|
| committer | git <svn-admin@ruby-lang.org> | 2026-01-18 14:07:06 +0000 |
| commit | d1dc4bdb2fe7f16e6da78c0930353e4a5031465a (patch) | |
| tree | 9a7916a236750e2117f30bca6f6f3b41f4ba20fa | |
| parent | 00a3b71eaf6f1a69f319de4b50e79ab1765d0cd8 (diff) | |
[ruby/prism] Fix ripper translator for `__END__`
https://github.com/ruby/prism/commit/2792ac78ca
| -rw-r--r-- | lib/prism/lex_compat.rb | 13 | ||||
| -rw-r--r-- | test/prism/fixtures/__END__.txt | 3 |
2 files changed, 7 insertions, 9 deletions
diff --git a/lib/prism/lex_compat.rb b/lib/prism/lex_compat.rb index 46f6130357..b7c54178ac 100644 --- a/lib/prism/lex_compat.rb +++ b/lib/prism/lex_compat.rb @@ -225,14 +225,6 @@ module Prism end end - # Ripper doesn't include the rest of the token in the event, so we need to - # trim it down to just the content on the first line when comparing. - class EndContentToken < Token - def ==(other) # :nodoc: - [self[0], self[1], self[2][0..self[2].index("\n")], self[3]] == other - end - end - # Tokens where state should be ignored # used for :on_comment, :on_heredoc_end, :on_embexpr_end class IgnoreStateToken < Token @@ -680,7 +672,10 @@ module Prism token = case event when :on___end__ - EndContentToken.new([[lineno, column], event, value, lex_state]) + # Ripper doesn't include the rest of the token in the event, so we need to + # trim it down to just the content on the first line. + value = value[0..value.index("\n")] + Token.new([[lineno, column], event, value, lex_state]) when :on_comment IgnoreStateToken.new([[lineno, column], event, value, lex_state]) when :on_heredoc_end diff --git a/test/prism/fixtures/__END__.txt b/test/prism/fixtures/__END__.txt new file mode 100644 index 0000000000..c0f4f28004 --- /dev/null +++ b/test/prism/fixtures/__END__.txt @@ -0,0 +1,3 @@ +foo +__END__ +Available in DATA constant |
