diff options
author | Kenichi Kamiya <kachick1@gmail.com> | 2019-10-17 17:44:46 +0900 |
---|---|---|
committer | Kazuhiro NISHIYAMA <znz@users.noreply.github.com> | 2019-10-17 17:44:46 +0900 |
commit | 2a22a6b2d8465934e75520a7fdcf522d50890caf (patch) | |
tree | 49135af238d55ebe13195dc1fd36c3604749adb3 /re.c | |
parent | 41457dcbe050a698c357b516d0a012b1b584643a (diff) |
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
Diffstat (limited to 're.c')
-rw-r--r-- | re.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -3323,6 +3323,7 @@ rb_reg_match_m(int argc, VALUE *argv, VALUE re) pos = 0; } + str = SYMBOL_P(str) ? rb_sym2str(str) : StringValue(str); pos = reg_match_pos(re, &str, pos); if (pos < 0) { rb_backref_set(Qnil); @@ -3368,7 +3369,6 @@ rb_reg_match_p(VALUE re, VALUE str, long pos) const UChar *start, *end; int tmpreg; - if (NIL_P(str)) return Qfalse; str = SYMBOL_P(str) ? rb_sym2str(str) : StringValue(str); if (pos) { if (pos < 0) { |