Irb completion bug

Hi:

I noticed an error with 173 and completion.
Typing

Fixnum.

in irb gives the following message:

irb
irb(main):001:0> Fixnum.(eval):1: warning: Object#type is deprecated;
use Object#class

irb(main):002:0*

I changed line 125 of completion.rb to get rid of the Object#type
message.

— completion.rb.old Sat Dec 21 14:11:29 2002
+++ completion.rb Sat Dec 21 14:11:48 2002
@@ -122,7 +122,7 @@

    gv = eval "global_variables", bind
    lv = eval "local_variables", bind
  •   cv = eval "type.constants", bind
    
  •   cv = eval "self.class.constants", bind
    
      if (gv | lv | cv).include?(receiver)
        # foo.func and foo is local var.
    

This fix works for FreeBSD, but the Mac still aborts due to
a NULL pointer.

—Mac OS X
ruby -v
ruby 1.7.3 (2002-12-20) [powerpc-darwin5.5]

irb
irb
irb(main):001:0>
Fixnum./Users/jdf/local/lib/ruby/1.7/irb/completion.rb:129:in eval': (eval):1:inmethods’: NULL pointer given (ArgumentError)
from /Users/jdf/local/lib/ruby/1.7/irb/completion.rb:129
from /Users/jdf/local/lib/ruby/1.7/irb/completion.rb:37:in
call' from /Users/jdf/local/lib/ruby/1.7/irb/input-method.rb:97:inreadline’
from /Users/jdf/local/lib/ruby/1.7/irb/input-method.rb:97:in
gets' from /Users/jdf/local/lib/ruby/1.7/irb.rb:130:ineval_input’
from /Users/jdf/local/lib/ruby/1.7/irb.rb:129:in signal_status' from /Users/jdf/local/lib/ruby/1.7/irb.rb:129:ineval_input’
from /Users/jdf/local/lib/ruby/1.7/irb.rb:128:in call' ... 12 levels... from /Users/jdf/local/lib/ruby/1.7/irb.rb:70:instart’
from /Users/jdf/local/lib/ruby/1.7/irb.rb:69:in catch' from /Users/jdf/local/lib/ruby/1.7/irb.rb:69:instart’
from /Users/jdf/local/bin/irb:13

Anyone know why this is. My readline is new (4.3).

···


Jim Freeze

Whatever became of eternal truth?