From b08ff5cd8840c1136c9d0ff6c347b7df1f83ff6f Mon Sep 17 00:00:00 2001 From: nobu Date: Sat, 25 Mar 2017 01:07:35 +0000 Subject: keep line number after unterminated string literal * parse.y (parser_parse_string): keep line number even after an unterminated string literal. it does not matter in the parser, ripper needs this value after this error. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58080 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- parse.y | 1 - test/ripper/test_scanner_events.rb | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/parse.y b/parse.y index 01f0c9a64c..4275f245b8 100644 --- a/parse.y +++ b/parse.y @@ -6207,7 +6207,6 @@ parser_parse_string(struct parser_params *parser, NODE *quote) pushback(c); if (tokadd_string(func, term, paren, "e->nd_nest, &enc) == -1) { - ruby_sourceline = nd_line(quote); if (func & STR_FUNC_REGEXP) { if (parser->eofp) compile_error(PARSER_ARG "unterminated regexp meets end of file"); diff --git a/test/ripper/test_scanner_events.rb b/test/ripper/test_scanner_events.rb index 7ae58bbda8..8cf7ac1220 100644 --- a/test/ripper/test_scanner_events.rb +++ b/test/ripper/test_scanner_events.rb @@ -131,6 +131,8 @@ class TestRipper::ScannerEvents < Test::Unit::TestCase assert_location %Q["a\nb\r\nc"] assert_location "print(<<""EOS)\nheredoc\nEOS\n" assert_location "print(<<-\"EOS\")\nheredoc\n EOS\n" + assert_location "'foo'" + assert_location "'foo" end def assert_location(src) -- cgit v1.2.3