From 08074eb71229b4c9f669f7bfb215bbb43525bfc0 Mon Sep 17 00:00:00 2001 From: "NARUSE, Yui" Date: Wed, 4 Dec 2019 01:26:28 +0900 Subject: Revert "Revert nil error and adding deprecation message" This reverts commit 452bee3ee8d68059fabd9b1c7a75661b14e3933e. --- re.c | 8 +------- spec/ruby/core/regexp/match_spec.rb | 20 ++++---------------- test/ruby/test_regexp.rb | 4 ++-- 3 files changed, 7 insertions(+), 25 deletions(-) diff --git a/re.c b/re.c index e10901b83d..6dfb9f273f 100644 --- a/re.c +++ b/re.c @@ -3299,9 +3299,7 @@ rb_reg_match_m(int argc, VALUE *argv, VALUE re) pos = 0; } - if (NIL_P(str)) { - rb_warn("given argument is nil"); - } + str = SYMBOL_P(str) ? rb_sym2str(str) : StringValue(str); pos = reg_match_pos(re, &str, pos); if (pos < 0) { rb_backref_set(Qnil); @@ -3347,10 +3345,6 @@ rb_reg_match_p(VALUE re, VALUE str, long pos) const UChar *start, *end; int tmpreg; - if (NIL_P(str)) { - rb_warn("given argument is nil"); - return Qfalse; - } str = SYMBOL_P(str) ? rb_sym2str(str) : StringValue(str); if (pos) { if (pos < 0) { diff --git a/spec/ruby/core/regexp/match_spec.rb b/spec/ruby/core/regexp/match_spec.rb index f796febc86..89cb3be4f6 100644 --- a/spec/ruby/core/regexp/match_spec.rb +++ b/spec/ruby/core/regexp/match_spec.rb @@ -91,7 +91,7 @@ describe "Regexp#match" do end end - ruby_version_is ""..."3.0" do + ruby_version_is ""..."2.7" do it "resets $~ if passed nil" do # set $~ /./.match("a") @@ -102,13 +102,7 @@ describe "Regexp#match" do end end - ruby_version_is "2.7"..."3.0" do - it "warns the deprecation when the given argument is nil" do - -> { /foo/.match(nil) }.should complain(/given argument is nil/) - end - end - - ruby_version_is "3.0" do + ruby_version_is "2.7" do it "raises TypeError when the given argument is nil" do -> { /foo/.match(nil) }.should raise_error(TypeError) end @@ -147,19 +141,13 @@ describe "Regexp#match?" do /str/i.match?('string', 1).should be_false end - ruby_version_is ""..."3.0" do + ruby_version_is ""..."2.7" do it "returns false when given nil" do /./.match?(nil).should be_false end end - ruby_version_is "2.7"..."3.0" do - it "warns the deprecation" do - -> { /./.match?(nil) }.should complain(/given argument is nil/) - end - end - - ruby_version_is "3.0" do + ruby_version_is "2.7" do it "raises TypeError when given nil" do -> { /./.match?(nil) }.should raise_error(TypeError) end diff --git a/test/ruby/test_regexp.rb b/test/ruby/test_regexp.rb index a1d49c595a..d48eef5366 100644 --- a/test/ruby/test_regexp.rb +++ b/test/ruby/test_regexp.rb @@ -539,7 +539,7 @@ class TestRegexp < Test::Unit::TestCase end def test_match - assert_nil(//.match(nil)) + assert_raise(TypeError) { //.match(nil) } assert_equal("abc", /.../.match(:abc)[0]) assert_raise(TypeError) { /.../.match(Object.new)[0] } assert_equal("bc", /../.match('abc', 1)[0]) @@ -561,10 +561,10 @@ class TestRegexp < Test::Unit::TestCase /backref/ =~ 'backref' # must match here, but not in a separate method, e.g., assert_send, # to check if $~ is affected or not. - assert_equal(false, //.match?(nil)) assert_equal(true, //.match?("")) assert_equal(true, /.../.match?(:abc)) assert_raise(TypeError) { /.../.match?(Object.new) } + assert_raise(TypeError) { //.match?(nil) } assert_equal(true, /b/.match?('abc')) assert_equal(true, /b/.match?('abc', 1)) assert_equal(true, /../.match?('abc', 1)) -- cgit v1.2.3