Bug #1427: Difference between Array#to_s and Array#inspect
http://redmine.ruby-lang.org/issues/show/1427

起票者: ujihisa .
ステータス: Open, 優先度: Low
カテゴリ: core, Target version: 1.9.2
ruby -v: ruby 1.9.2dev (2009-04-30 trunk 23312) [i386-darwin9.6.0]

ruby 1.9では通常Array#to_sとArray#inspectは同じ文字列を返しますが、自己再帰する配列に対しては異なる結果を返しています。

# ruby 1.9.2dev (2009-04-30 trunk 23312) [i386-darwin9.6.0]
a = [1]
a << a
a.inspect #=> [1, [...]]
a.to_s #=>[1, [1, [...]]]

rb_exec_recursiveのrecursive_checkで、Array#inspectはinspect -> inspectと処理が進んで再帰を判定しますが、Array#to_sはto_s -> inspect -> inspectと処理が進んで判定するため、後者の方が一回多くrb_ary_inspectを呼び出しています。

to_sをinspectのaliasにするパッチを添付します。


----------------------------------------
http://redmine.ruby-lang.org