1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* range.c (range_eqq): call_super() in === does not work well

since Enumerable#=== has different behavior.  [ruby-dev:31296]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12849 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
matz 2007-07-26 13:37:13 +00:00
parent d134991730
commit 6d9a4f510c
2 changed files with 25 additions and 3 deletions

View file

@ -1,3 +1,8 @@
Thu Jul 26 20:40:25 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
* range.c (range_eqq): call_super() in === does not work well
since Enumerable#=== has different behavior. [ruby-dev:31296]
Thu Jul 26 13:57:45 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
* dln.c (load_1, dln_find_1): constified.

23
range.c
View file

@ -629,8 +629,6 @@ range_inspect(VALUE range)
/*
* call-seq:
* rng === obj => true or false
* rng.member?(val) => true or false
* rng.include?(val) => true or false
*
* Returns <code>true</code> if <i>obj</i> is an element of
* <i>rng</i>, <code>false</code> otherwise. Conveniently,
@ -648,6 +646,25 @@ range_inspect(VALUE range)
* high
*/
static VALUE
range_eqq(VALUE range, VALUE val)
{
return rb_funcall(range, rb_intern("include?"), 1, val);
}
/*
* call-seq:
* rng.member?(val) => true or false
* rng.include?(val) => true or false
*
* Returns <code>true</code> if <i>obj</i> is an element of
* <i>rng</i>, <code>false</code> otherwise.
*
* ("a".."z").include?("g") # => true
* ("a".."z").include?("A") # => false
*/
static VALUE
range_include(VALUE range, VALUE val)
{
@ -769,7 +786,7 @@ Init_Range(void)
rb_include_module(rb_cRange, rb_mEnumerable);
rb_define_method(rb_cRange, "initialize", range_initialize, -1);
rb_define_method(rb_cRange, "==", range_eq, 1);
rb_define_method(rb_cRange, "===", range_include, 1);
rb_define_method(rb_cRange, "===", range_eqq, 1);
rb_define_method(rb_cRange, "eql?", range_eql, 1);
rb_define_method(rb_cRange, "hash", range_hash, 0);
rb_define_method(rb_cRange, "each", range_each, 0);