You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ArgumentError: wrong number of arguments calling `x=` (1 for 0)
from (irb):1:in `evaluate'
from org/jruby/RubyKernel.java:1111:in `eval'
from org/jruby/RubyKernel.java:1511:in `loop'
from org/jruby/RubyKernel.java:1274:in `catch'
from org/jruby/RubyKernel.java:1274:in `catch'
from /home/ps/.rvm/rubies/jruby-1.7.20/bin/irb:13:in `(root)'
I am not sure if it's a bug in JRuby or MRI.
BTW Rubinius fails too:
ArgumentError: given 1, expected 0
from (irb):1
from kernel/common/block_environment.rb:53:in `call_on_instance'
from kernel/common/eval.rb:176:in `eval'
from kernel/common/kernel.rb:510:in `loop'
from kernel/bootstrap/proc.rb:20:in `call'
from kernel/common/throw_catch.rb:30:in `catch'
from kernel/common/throw_catch.rb:8:in `register'
from kernel/common/throw_catch.rb:29:in `catch'
from kernel/bootstrap/proc.rb:20:in `call'
from kernel/common/throw_catch.rb:30:in `catch'
from kernel/common/throw_catch.rb:8:in `register'
from kernel/common/throw_catch.rb:29:in `catch'
from /home/ps/.rvm/gems/rbx-2.5.2@global/gems/rubysl-irb-2.1.1/bin/irb:12:in `__script__'
from kernel/common/kernel.rb:497:in `load'
from /home/ps/.rvm/gems/rbx-2.5.2@global/bin/irb:23:in `__script__'
from kernel/delta/code_loader.rb:66:in `load_script'
from kernel/delta/code_loader.rb:152:in `load_script'
from kernel/loader.rb:655:in `script'
from kernel/loader.rb:809:in `main'
¯_(ツ)_/¯
Kind regards,
Peter
The text was updated successfully, but these errors were encountered:
So it appears that this creates a write-only value. The logic in MRI for defining the struct methods only defines one called x= and so there's no way to read the value. It does appear to get assigned, though: #<struct :x==1>.
I'm not sure what use this feature is, honestly. It seems like a bug in MRI that it allows this through.
I think I'm going to call this a bug in MRI and ask you to re-file it with them. I believe the :x= should be kicked out as an invalid attribute name rather than defined as a write-only attribute. I believe the latter behavior is happening only accidentally because of how MRI detects that you're defining an = method.
Let me know when you file this with MRI and I will chime in about the various oddities in this behavior that warrant patching it.
Hi,
while this code works in MRI
it breaks on JRuby (1.7.20 and 9000k) with:
I am not sure if it's a bug in JRuby or MRI.
BTW Rubinius fails too:
¯_(ツ)_/¯
Kind regards,
Peter
The text was updated successfully, but these errors were encountered: