* ext/ripper/lib/ripper/lexer.rb (Ripper::Lexer): add ignored_sp
  event which will be fired from Ripper::Lexer#on_heredoc_dedent
  method.  [ruby-core:91727] [Bug #15648]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67200 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2019-03-09 10:17:33 +00:00
Родитель 8776a09d4e
Коммит 72df0a8e47
2 изменённых файлов: 13 добавлений и 0 удалений

Просмотреть файл

@ -83,6 +83,12 @@ class Ripper
private
unless SCANNER_EVENT_TABLE.key?(:ignored_sp)
SCANNER_EVENT_TABLE[:ignored_sp] = 1
SCANNER_EVENTS << :ignored_sp
EVENTS << :ignored_sp
end
def on_heredoc_dedent(v, w)
ignored_sp = []
heredoc = @buf.last

Просмотреть файл

@ -888,6 +888,13 @@ class TestRipper::ScannerEvents < Test::Unit::TestCase
scan('ignored_nl', "1;\r\n")
end
def test_ignored_sp
assert_equal [],
scan('ignored_sp', "<<~EOS\nheredoc\nEOS")
assert_equal [" "],
scan('ignored_sp', "<<~EOS\n heredoc\nEOS")
end
def test___end__
assert_equal [],
scan('__end__', "")