diff options
| -rw-r--r-- | ext/ripper/lib/ripper/lexer.rb | 2 | ||||
| -rw-r--r-- | test/ripper/test_lexer.rb | 12 | ||||
| -rw-r--r-- | version.h | 2 |
3 files changed, 14 insertions, 2 deletions
diff --git a/ext/ripper/lib/ripper/lexer.rb b/ext/ripper/lib/ripper/lexer.rb index 19c59e2ccc..6a3c04af30 100644 --- a/ext/ripper/lib/ripper/lexer.rb +++ b/ext/ripper/lib/ripper/lexer.rb @@ -228,7 +228,7 @@ class Ripper def on_heredoc_end(tok) @buf.push Elem.new([lineno(), column()], __callee__, tok, state()) - @buf = @stack.pop + @buf = @stack.pop unless @stack.empty? end def _push_token(tok) diff --git a/test/ripper/test_lexer.rb b/test/ripper/test_lexer.rb index 27e0007023..8e8a616627 100644 --- a/test/ripper/test_lexer.rb +++ b/test/ripper/test_lexer.rb @@ -252,4 +252,16 @@ world" ] assert_equal(code, Ripper.tokenize(code).join(""), bug) end + + def test_heredoc_inside_block_param + bug = '[Bug #19399]' + code = <<~CODE + a do |b + <<-C + C + | + end + CODE + assert_equal(code, Ripper.tokenize(code).join(""), bug) + end end @@ -11,7 +11,7 @@ # define RUBY_VERSION_MINOR RUBY_API_VERSION_MINOR #define RUBY_VERSION_TEENY 0 #define RUBY_RELEASE_DATE RUBY_RELEASE_YEAR_STR"-"RUBY_RELEASE_MONTH_STR"-"RUBY_RELEASE_DAY_STR -#define RUBY_PATCHLEVEL 28 +#define RUBY_PATCHLEVEL 29 #include "ruby/version.h" #include "ruby/internal/abi.h" |
