Feature #4468
closedString() should call to_str before to_s
Description
=begin
Integer() と Array() というカーネルメソッドはまず to_int/to_ary という
「暗黙の変換」のためのメソッドを呼び、それが失敗すると to_i/to_a を
呼んで変換するという仕様になっています。
しかし String() は最初から to_s を呼ぶようになっています。
統一感という意味ではまず to_str -> to_s の順に呼ぶことにしたほうが
良いのではないでしょうか。
to_str と to_s が異なる文字列を返すようなケースは思い浮ばないので、
実際にこれで結果が変化することはないのではないかと推測します。
=end
Updated by nagachika (Tomoyuki Chikanaga) over 13 years ago
=begin
パッチを貼り忘れていました。このようになるかと思います。
diff --git a/object.c b/object.c
index b25c0af..fad726c 100644
--- a/object.c
+++ b/object.c
@@ -2360,7 +2360,10 @@ rb_num2dbl(VALUE val)
VALUE
rb_String(VALUE val)
{
- return rb_convert_type(val, T_STRING, "String", "to_s");
- VALUE tmp = rb_check_string_type(val);
- if (NIL_P(tmp))
-
tmp = rb_convert_type(val, T_STRING, "String", "to_s");
- return tmp;
}
=end
Updated by naruse (Yui NARUSE) over 13 years ago
- Status changed from Open to Assigned
- Assignee set to matz (Yukihiro Matsumoto)
=begin
=end
Updated by matz (Yukihiro Matsumoto) over 13 years ago
=begin
まつもと ゆきひろです
まあここだけ違っているメリットもさほどないようですから、変更
しても良いのではないでしょうか。
In message "Re: [ruby-dev:43306] [Ruby 1.9 - Feature #4468][Open] String() should call to_str before to_s"
on Sat, 5 Mar 2011 21:43:18 +0900, Tomoyuki Chikanaga nagachika00@gmail.com writes:
|
|
|Issue #4468 has been reported by Tomoyuki Chikanaga.
|
|----------------------------------------
|Feature #4468: String() should call to_str before to_s
|http://redmine.ruby-lang.org/issues/4468
|
|Author: Tomoyuki Chikanaga
|Status: Open
|Priority: Normal
|Assignee:
|Category: core
|Target version: 1.9.3
|
|
|Integer() と Array() というカーネルメソッドはまず to_int/to_ary という
|「暗黙の変換」のためのメソッドを呼び、それが失敗すると to_i/to_a を
|呼んで変換するという仕様になっています。
|
|しかし String() は最初から to_s を呼ぶようになっています。
|統一感という意味ではまず to_str -> to_s の順に呼ぶことにしたほうが
|良いのではないでしょうか。
|to_str と to_s が異なる文字列を返すようなケースは思い浮ばないので、
|実際にこれで結果が変化することはないのではないかと推測します。
|
|--
|http://redmine.ruby-lang.org
=end
Updated by matz (Yukihiro Matsumoto) over 13 years ago
=begin
まつもと ゆきひろです
まあここだけ違っているメリットもさほどないようですから、変更
しても良いのではないでしょうか。
In message "Re: [ruby-dev:43306] [Ruby 1.9 - Feature #4468][Open] String() should call to_str before to_s"
on Sat, 5 Mar 2011 21:43:18 +0900, Tomoyuki Chikanaga nagachika00@gmail.com writes:
|
|
|Issue #4468 has been reported by Tomoyuki Chikanaga.
|
|----------------------------------------
|Feature #4468: String() should call to_str before to_s
|http://redmine.ruby-lang.org/issues/4468
|
|Author: Tomoyuki Chikanaga
|Status: Open
|Priority: Normal
|Assignee:
|Category: core
|Target version: 1.9.3
|
|
|Integer() と Array() というカーネルメソッドはまず to_int/to_ary という
|「暗黙の変換」のためのメソッドを呼び、それが失敗すると to_i/to_a を
|呼んで変換するという仕様になっています。
|
|しかし String() は最初から to_s を呼ぶようになっています。
|統一感という意味ではまず to_str -> to_s の順に呼ぶことにしたほうが
|良いのではないでしょうか。
|to_str と to_s が異なる文字列を返すようなケースは思い浮ばないので、
|実際にこれで結果が変化することはないのではないかと推測します。
|
|--
|http://redmine.ruby-lang.org
=end
Updated by nagachika (Tomoyuki Chikanaga) over 13 years ago
=begin
お返事ありがとうございます。
では変更してしまおうと思います。
=end
Updated by nagachika (Tomoyuki Chikanaga) over 13 years ago
- Status changed from Assigned to Closed
=begin
r31209 で変更しました。
=end