mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Regexp#match{?} with nil raises TypeError as String, Symbol (#1506)
* {String|Symbol}#match{?} with nil returns falsy To improve consistency with Regexp#match{?} * String#match(nil) returns `nil` instead of TypeError * String#match?(nil) returns `false` instead of TypeError * Symbol#match(nil) returns `nil` instead of TypeError * Symbol#match?(nil) returns `false` instead of TypeError * Prefer exception * Follow empty ENV * Drop outdated specs * Write ruby/spec for above https://github.com/ruby/ruby/pull/1506/files#r183242981 * Fix merge miss
This commit is contained in:
parent
41457dcbe0
commit
2a22a6b2d8
5 changed files with 41 additions and 15 deletions
|
@ -5,15 +5,15 @@ describe :regexp_match, shared: true do
|
|||
it "returns nil if there is no match" do
|
||||
/xyz/.send(@method,"abxyc").should be_nil
|
||||
end
|
||||
|
||||
it "returns nil if the object is nil" do
|
||||
/\w+/.send(@method, nil).should be_nil
|
||||
end
|
||||
end
|
||||
|
||||
describe "Regexp#=~" do
|
||||
it_behaves_like :regexp_match, :=~
|
||||
|
||||
it "returns nil if the object is nil" do
|
||||
(/\w+/ =~ nil).should be_nil
|
||||
end
|
||||
|
||||
it "returns the index of the first character of the matching region" do
|
||||
(/(.)(.)(.)/ =~ "abc").should == 0
|
||||
end
|
||||
|
@ -87,13 +87,21 @@ describe "Regexp#match" do
|
|||
end
|
||||
end
|
||||
|
||||
it "resets $~ if passed nil" do
|
||||
# set $~
|
||||
/./.match("a")
|
||||
$~.should be_kind_of(MatchData)
|
||||
ruby_version_is ""..."2.7" do
|
||||
it "resets $~ if passed nil" do
|
||||
# set $~
|
||||
/./.match("a")
|
||||
$~.should be_kind_of(MatchData)
|
||||
|
||||
/1/.match(nil)
|
||||
$~.should be_nil
|
||||
end
|
||||
end
|
||||
|
||||
/1/.match(nil)
|
||||
$~.should be_nil
|
||||
ruby_version_is "2.7" do
|
||||
it "raises TypeError when the given argument is nil" do
|
||||
-> { /foo/.match(nil) }.should raise_error(TypeError)
|
||||
end
|
||||
end
|
||||
|
||||
it "raises TypeError when the given argument cannot be coerced to String" do
|
||||
|
@ -129,8 +137,16 @@ describe "Regexp#match?" do
|
|||
/str/i.match?('string', 1).should be_false
|
||||
end
|
||||
|
||||
it "returns false when given nil" do
|
||||
/./.match?(nil).should be_false
|
||||
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" do
|
||||
it "raises TypeError when given nil" do
|
||||
-> { /./.match?(nil) }.should raise_error(TypeError)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue