зеркало из https://github.com/github/ruby.git
* re.c (reg_operand): Simplify and reuse error handling [Bug #7539]
* test/ruby/test_regexp.rb: Test for above git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38980 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
c34e9f23aa
Коммит
3df94d7b5d
|
@ -1,3 +1,9 @@
|
|||
Wed Jan 30 07:15:04 2013 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
|
||||
|
||||
* re.c (reg_operand): Simplify and reuse error handling [Bug #7539]
|
||||
|
||||
* test/ruby/test_regexp.rb: Test for above
|
||||
|
||||
Wed Jan 30 07:00:16 2013 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
|
||||
|
||||
* object.c: Improve error for failed implicit conversions [Bug #7539]
|
||||
|
|
7
re.c
7
re.c
|
@ -2667,12 +2667,7 @@ reg_operand(VALUE s, int check)
|
|||
return rb_sym_to_s(s);
|
||||
}
|
||||
else {
|
||||
VALUE tmp = rb_check_string_type(s);
|
||||
if (check && NIL_P(tmp)) {
|
||||
rb_raise(rb_eTypeError, "can't convert %s to String",
|
||||
rb_obj_classname(s));
|
||||
}
|
||||
return tmp;
|
||||
return (check ? rb_str_to_str : rb_check_string_type)(s);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -929,4 +929,11 @@ class TestRegexp < Test::Unit::TestCase
|
|||
# use Regexp.new instead of literal to ignore a parser warning.
|
||||
check(Regexp.new('[0-1-\\s]'), [' ', '-'], ['2', 'a'], bug6853)
|
||||
end
|
||||
|
||||
def test_error_message_on_failed_conversion
|
||||
bug7539 = '[ruby-core:50733]'
|
||||
assert_equal false, /x/=== 42
|
||||
err = assert_raise(TypeError){ Regexp.quote(42) }
|
||||
assert_equal 'no implicit conversion of Fixnum into String', err.message, bug7539
|
||||
end
|
||||
end
|
||||
|
|
Загрузка…
Ссылка в новой задаче