aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-03-19 05:46:20 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-03-19 05:46:20 +0000
commitbc343b851d04f68ef7554a2cca0bad63a32c2b7d (patch)
tree34701ea26f297294c1ab55561610227fcd761eba /test
parent22198f9d3c384dbc3e95b953d71a07de12da652b (diff)
downloadruby-bc343b851d04f68ef7554a2cca0bad63a32c2b7d.tar.gz
SyntaxError message at iseq compile
* iseq.c (rb_iseq_compile_with_option): make the parser in mild error. * load.c (rb_load_internal0): ditto. * parse.y (yycompile0): return the error message within the error to be raised. [Feature #11951] * parse.y (parser_compile_error): accumulate error messages in the error_buffer. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/ruby/test_iseq.rb21
1 files changed, 21 insertions, 0 deletions
diff --git a/test/ruby/test_iseq.rb b/test/ruby/test_iseq.rb
index f9123109f7..e0c5329edc 100644
--- a/test/ruby/test_iseq.rb
+++ b/test/ruby/test_iseq.rb
@@ -214,4 +214,25 @@ class TestISeq < Test::Unit::TestCase
at_exit { assert_equal([:n, :x], Segfault.new.segfault.sort) }
end;
end
+
+ def test_syntax_error_message
+ feature11951 = '[Feature #11951]'
+
+ src, line = <<-'end;', __LINE__+1
+ def x@;end
+ def y@;end
+ end;
+ e1 = e2 = nil
+ m1 = EnvUtil.verbose_warning do
+ e1 = assert_raise(SyntaxError) do
+ eval(src, nil, __FILE__, line)
+ end
+ end
+ m2 = EnvUtil.verbose_warning do
+ e2 = assert_raise(SyntaxError) do
+ ISeq.new(src, __FILE__, __FILE__, line)
+ end
+ end
+ assert_equal([m1, e1.message], [m2, e2.message], feature11951)
+ end
end