aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authornormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-03-11 22:28:33 +0000
committernormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-03-11 22:28:33 +0000
commit4101a5690e3e8cc4940052ab28c0466e200b256d (patch)
tree76f5353f33cbca8a37d236d82645b6cc58d23f3e /test
parentc1f1b931716a9b0e5d8ebd1a2ccbefd42d171b9c (diff)
downloadruby-4101a5690e3e8cc4940052ab28c0466e200b256d.tar.gz
insns.def (opt_regexpmatch2): respect redefined match op
* insns.def (opt_regexpmatch2): respect redefined match op Thanks to Sam Rawlins for the fix. * test/ruby/test_string.rb: test based on Tsuyoshi Sawada's report [Bug #9581] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45318 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/ruby/test_string.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/ruby/test_string.rb b/test/ruby/test_string.rb
index 7ce1c0666c..6cf45fd537 100644
--- a/test/ruby/test_string.rb
+++ b/test/ruby/test_string.rb
@@ -2219,6 +2219,19 @@ class TestString < Test::Unit::TestCase
assert_equal("foo", "" =~ //)
RUBY
end
+
+ class Bug9581 < String
+ def =~ re; :foo end
+ end
+
+ def test_regexp_match_subclass
+ s = Bug9581.new("abc")
+ r = /abc/
+ assert_equal(:foo, s =~ r)
+ assert_equal(:foo, s.send(:=~, r))
+ assert_equal(:foo, s.send(:=~, /abc/))
+ assert_equal(:foo, s =~ /abc/, "should not use optimized instruction")
+ end
end
class TestString2 < TestString