diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-04-26 04:11:59 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-04-26 04:11:59 +0000 |
commit | b0018f68590c8071bb0a242f75cc4fa048396e78 (patch) | |
tree | 1d62b82c11ddb9ab3ed6ecae81292028f2b3fe2d | |
parent | 3cbb849bbbf6088be2c054ee89a6b47f0e39ae99 (diff) |
* parse.y (ripper_get_value): escape Qundef.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27499 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | parse.y | 1 | ||||
-rw-r--r-- | test/ripper/test_parser_events.rb | 9 |
3 files changed, 9 insertions, 5 deletions
@@ -1,3 +1,7 @@ +Mon Apr 26 13:11:57 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * parse.y (ripper_get_value): escape Qundef. + Mon Apr 26 12:42:43 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> * parse.y (warn_balanced): warn according to last state. @@ -10351,6 +10351,7 @@ static VALUE ripper_get_value(VALUE v) { NODE *nd; + if (v == Qundef) return Qnil; if (!RB_TYPE_P(v, T_NODE)) return v; nd = (NODE *)v; if (nd_type(nd) != NODE_LASGN) return Qnil; diff --git a/test/ripper/test_parser_events.rb b/test/ripper/test_parser_events.rb index 02183129b0..2ac623f76d 100644 --- a/test/ripper/test_parser_events.rb +++ b/test/ripper/test_parser_events.rb @@ -463,6 +463,7 @@ class TestRipper::ParserEvents < Test::Unit::TestCase thru_def = true } assert_equal true, thru_def + assert_equal '[def(foo,[],bodystmt([void()]))]', parse('def foo ;end') end def test_defined @@ -1102,10 +1103,8 @@ class TestRipper::ParserEvents < Test::Unit::TestCase end def test_unterminated_regexp - assert_normal_exit(<<"SRC") -$:.unshift(File.dirname(#{File.expand_path(__FILE__).dump})) -require 'dummyparser' -DummyParser.new('/').parse.to_s -SRC + compile_error = false + parse('/', :compile_error) {|msg| compile_error = msg} + assert_equal("unterminated regexp meets end of file", compile_error) end end if ripper_test |