From 123387ed294aa83cc506ef7d8733b5fd042bd67f Mon Sep 17 00:00:00 2001 From: ko1 Date: Tue, 27 Nov 2007 04:43:54 +0000 Subject: * compile.c, insns.def: change return value of "defined?" for $&, $1, ... . If such variables are defined, return "global-variable". * test/ruby/test_defined.rb: add tests. * bootstraptest/test_syntax.rb: fix a test. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14031 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_defined.rb | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'test/ruby') diff --git a/test/ruby/test_defined.rb b/test/ruby/test_defined.rb index 84b9bf7b9..bfcd7fb66 100644 --- a/test/ruby/test_defined.rb +++ b/test/ruby/test_defined.rb @@ -48,5 +48,34 @@ class TestDefined < Test::Unit::TestCase assert(defined_test) # not iterator assert(!defined_test{}) # called as iterator + + /a/ =~ '' + assert_equal nil, defined?($&) + assert_equal nil, defined?($`) + assert_equal nil, defined?($') + assert_equal nil, defined?($+) + assert_equal nil, defined?($1) + assert_equal nil, defined?($2) + /a/ =~ 'a' + assert_equal 'global-variable', defined?($&) + assert_equal 'global-variable', defined?($`) + assert_equal 'global-variable', defined?($') + assert_equal nil, defined?($+) + assert_equal nil, defined?($1) + assert_equal nil, defined?($2) + /(a)/ =~ 'a' + assert_equal 'global-variable', defined?($&) + assert_equal 'global-variable', defined?($`) + assert_equal 'global-variable', defined?($') + assert_equal 'global-variable', defined?($+) + assert_equal 'global-variable', defined?($1) + assert_equal nil, defined?($2) + /(a)b/ =~ 'ab' + assert_equal 'global-variable', defined?($&) + assert_equal 'global-variable', defined?($`) + assert_equal 'global-variable', defined?($') + assert_equal 'global-variable', defined?($+) + assert_equal 'global-variable', defined?($1) + assert_equal nil, defined?($2) end end -- cgit