Actions
Bug #1534
closedInconsistency Between Struct#to_s and Struct#inspect
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 1.9.2dev (2009-05-28 trunk 23601) [i386-darwin9.7.0]
Backport:
Description
=begin
http://redmine.ruby-lang.org/issues/show/1427
http://redmine.ruby-lang.org/issues/show/1533
の二つと同じ問題をStructで発見しました。
ruby 1.9では通常Struct#to_sとStruct#inspectは同じ文字列を返しますが、自己再帰する構造体に対しては異なる結果を返しています。
# ruby 1.9.2dev (2009-05-28 trunk 23601) [i386-darwin9.7.0]
t = Struct.new('A', :a).new(nil)
t.a = t
puts t.to_s
#=> <struct Struct::A a=#<struct Struct::A a=#<struct Struct::A:...>>>
puts t.inspect
#=> <struct Struct::A a=#<struct Struct::A:...>>
添付のパッチでto_sの結果がinspectと同じになります。
なお、似たような実装をしているものがないかgrepしたところ, proc.c, time.c, ext/dl/cfunc.cが該当しました。が、これらは自己再帰的構造を持ち得ないため大丈夫と思います。
=end
Files
Actions
Like0
Like0