Bug #1731 [ruby-core:24150]
Enumerable#join with Recursive Structure: "invalid inspect_tbl list for :to_a"
| Status : | Closed | Start : | 07/05/2009 | |
| Priority : | Normal | Due date : | ||
| Assigned to : | - | % Done : | 100% |
|
| Category : | - | |||
| Target version : | - | |||
| ruby -v : | ruby 1.9.2dev (2009-07-05 trunk 23958) [i686-linux] |
Description
class Enum
include Enumerable
def initialize
@elements = [self]
end
def each
@elements.each {|e| yield e}
end
end
Enum.new.join
This code hangs for a second or so then complains:
$ ruby -vw /tmp/inspect_tbl.rb
ruby 1.9.2dev (2009-07-05 trunk 23958) [i686-linux]
/tmp/inspect_tbl.rb:11:in `to_a': invalid inspect_tbl list for :to_a in #<Thread:0x990645c run> (TypeError)
from /tmp/inspect_tbl.rb:11:in `join'
from /tmp/inspect_tbl.rb:11:in `<main>'
Associated revisions
- enum.c (enum_join): deals with self recursive objects to get rid
of infinite recursion.
[ruby-core:24150]
- enum.c (enum_join): deals with self recursive objects to get rid
of infinite recursion.
[ruby-core:24150]
- array.c (recursive_join): use obj to tell if recursion occurs.
[ruby-core:24150] - enum.c (enum_join): reverted r23966.
[ruby-core:24196]
History
07/05/2009 11:41 PM - Run Paint Run Run
Drat. I filed this against the wrong version; it should be against trunk. :-(