diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-04-01 17:08:01 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-04-01 17:08:01 +0000 |
commit | 03228aabec1f0e036d4333dc94c7a82e3e6447f2 (patch) | |
tree | 1a190fe460d827fefb99e3f6fa82027b56e74f1e | |
parent | 52601dd1cc04becc98777fc8994de18924c18539 (diff) |
merge revision(s) 53722: [Backport #12232]
* ext/ripper/lib/ripper/lexer.rb (on_heredoc_dedent): Fix
Ripper.lex error in dedenting squiggly heredoc. heredoc tree is
also an array of Elem in the outer tree. [Fix GH-1234]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_3@54471 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | ext/ripper/lib/ripper/lexer.rb | 2 | ||||
-rw-r--r-- | test/ripper/test_scanner_events.rb | 6 | ||||
-rw-r--r-- | version.h | 8 |
4 files changed, 17 insertions, 5 deletions
@@ -1,3 +1,9 @@ +Sat Apr 2 02:07:29 2016 Seiei Miyagi <hanachin@gmail.com> + + * ext/ripper/lib/ripper/lexer.rb (on_heredoc_dedent): Fix + Ripper.lex error in dedenting squiggly heredoc. heredoc tree is + also an array of Elem in the outer tree. [Fix GH-1234] + Wed Mar 30 02:28:13 2016 Eric Wong <e@80x24.org> * thread_pthread.c (setup_communication_pipe): delay setting owner diff --git a/ext/ripper/lib/ripper/lexer.rb b/ext/ripper/lib/ripper/lexer.rb index bb12ee5650..69526340a7 100644 --- a/ext/ripper/lib/ripper/lexer.rb +++ b/ext/ripper/lib/ripper/lexer.rb @@ -66,7 +66,7 @@ class Ripper private def on_heredoc_dedent(v, w) - @buf.each do |e| + @buf.last.each do |e| if e.event == :on_tstring_content if (n = dedent_string(e.tok, w)) > 0 e.pos[1] += n diff --git a/test/ripper/test_scanner_events.rb b/test/ripper/test_scanner_events.rb index ab52392eb1..1b7b56ebfe 100644 --- a/test/ripper/test_scanner_events.rb +++ b/test/ripper/test_scanner_events.rb @@ -103,6 +103,12 @@ class TestRipper::ScannerEvents < Test::Unit::TestCase [[5, 0], :on_imaginary, "5.6ri"], ], Ripper.lex("1r\n2i\n3ri\n4.2r\n5.6ri") + assert_equal [[[1, 0], :on_heredoc_beg, "<<~EOS"], + [[1, 6], :on_nl, "\n"], + [[2, 2], :on_tstring_content, "heredoc\n"], + [[3, 0], :on_heredoc_end, "EOS"] + ], + Ripper.lex("<<~EOS\n heredoc\nEOS") end def test_location @@ -1,10 +1,10 @@ #define RUBY_VERSION "2.3.0" -#define RUBY_RELEASE_DATE "2016-03-30" -#define RUBY_PATCHLEVEL 71 +#define RUBY_RELEASE_DATE "2016-04-02" +#define RUBY_PATCHLEVEL 72 #define RUBY_RELEASE_YEAR 2016 -#define RUBY_RELEASE_MONTH 3 -#define RUBY_RELEASE_DAY 30 +#define RUBY_RELEASE_MONTH 4 +#define RUBY_RELEASE_DAY 2 #include "ruby/version.h" |