From d9d8ca0b8f70415d4d35a2e86929de8f6b9feeeb Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 6 Jul 2017 04:12:51 +0000 Subject: lexer.rb: ignore dedented space * ext/ripper/lib/ripper/lexer.rb (on_heredoc_dedent): replace an empty string content because of dedentation with :on_ignored_sp. an empty token makes the sorted order unstable. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59269 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ripper/test_lexer.rb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'test/ripper') diff --git a/test/ripper/test_lexer.rb b/test/ripper/test_lexer.rb index 72b7f1b5fd..30e5d78884 100644 --- a/test/ripper/test_lexer.rb +++ b/test/ripper/test_lexer.rb @@ -32,4 +32,23 @@ class TestRipper::Lexer < Test::Unit::TestCase E assert_equal(str, Ripper.tokenize(str).join(""), bug) end + + def test_embedded_expr_in_heredoc + src = <<~'E' + <<~B + #{1} + B + E + expect = %I[ + on_heredoc_beg + on_nl + on_ignored_sp + on_embexpr_beg + on_int + on_embexpr_end + on_tstring_content + on_heredoc_end + ] + assert_equal expect, Ripper.lex(src).map {|e| e[1]} + end end -- cgit v1.2.3