1.8.4 Struct bug

Found the following while making sure Net::SSH works with 1.8.4:

   irb(main):001:0> Struct.new(:valid?).new.valid?
   NoMethodError: undefined method `valid?' for #<struct #<Class:0x535994> :valid?=nil>
         from (irb):1

This worked in 1.8.2, at least. Is this an intentional change? (This only bites me in the unit tests for Net::SSH, and I can easily work around it, just wanted to make sure problem this was known.)

- Jamis

Hi,

FWIW, it seems to be broken since 1.8.3.

$ ruby -ve 'Struct.new(:valid?).new.valid?'
ruby 1.8.3 (2005-09-21) [x86_64-linux]
-e:1: undefined method `valid?' for #<struct #<Class:0x2aaaab3e8160>
:"valid?"=nil> (NoMethodError)

I couldn't find any mention about this behavior both in [1.8.3 changes][1]
and [1.8.4 changes][2].

[1]: http://www.ruby-lang.org/ja/man/?cmd=view;name=ruby+1.8.3+feature
[2]: http://www.ruby-lang.org/ja/man/?cmd=view;name=ruby+1.8.4+feature

···

On 12/25/05, Jamis Buck <jamis@37signals.com> wrote:

Found the following while making sure Net::SSH works with 1.8.4:

   irb(main):001:0> Struct.new(:valid?).new.valid?
   NoMethodError: undefined method `valid?' for #<struct #<Class:
0x535994> :valid?=nil>
         from (irb):1

This worked in 1.8.2, at least. Is this an intentional change? (This
only bites me in the unit tests for Net::SSH, and I can easily work
around it, just wanted to make sure problem this was known.)

- Jamis

--
http://nohmad.sub-port.net