mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* 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:
parent
c34e9f23aa
commit
3df94d7b5d
3 changed files with 14 additions and 6 deletions
|
@ -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>
|
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]
|
* 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);
|
return rb_sym_to_s(s);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
VALUE tmp = rb_check_string_type(s);
|
return (check ? rb_str_to_str : 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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -929,4 +929,11 @@ class TestRegexp < Test::Unit::TestCase
|
||||||
# use Regexp.new instead of literal to ignore a parser warning.
|
# use Regexp.new instead of literal to ignore a parser warning.
|
||||||
check(Regexp.new('[0-1-\\s]'), [' ', '-'], ['2', 'a'], bug6853)
|
check(Regexp.new('[0-1-\\s]'), [' ', '-'], ['2', 'a'], bug6853)
|
||||||
end
|
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
|
end
|
||||||
|
|
Loading…
Reference in a new issue