Re: [jruby-user] JRuby head: splat (i.e., **args) method params?

Thomas E Enebo <[email protected]>
Newsgroups gmane.comp.lang.jruby.user
Message-ID <CAL5zZVk11CFBEFGR_S5CqN7sytPemZ8p0t36Dm8ABF3br_UT-A@mail.gmail.com>
1 week is most likely but this is easily worked around by just changing to
an explicit super (explicitly pass the args on) for the time being.

-Tom


On Wed, Sep 3, 2014 at 10:23 AM, Josep Blanquer <[email protected]>
wrote:

> Thanks Thomas,
>
>  Do you have a ballpark sense as to how long something like this might
> take to be solved? 1 week? 1 month? 6 months?
>
> Josep M.
>
>
> On Wed, Sep 3, 2014 at 7:02 AM, Thomas E Enebo <[email protected]>
> wrote:
>
>> Ah yeah.  We are not delivering keyword arguments to zsuper.  Thanks for
>> the simple reproduction.  I made an issue for it:
>>
>> https://github.com/jruby/jruby/issues/1943
>>
>> -Tom
>>
>>
>>
>> On Tue, Sep 2, 2014 at 11:45 PM, Josep Blanquer <[email protected]>
>> wrote:
>>
>>> Aha! intersting...yes I can...so it seems a consequence of the "super"
>>> method.
>>> Here you have a repro:
>>>
>>> ------------------------------------------------------------
>>> class Foo
>>>   def initialize(name, context,**opts)
>>>     p opts
>>>   end
>>> end
>>>
>>> class Bar < Foo
>>>     def initialize(name, context, path: nil)
>>>        super
>>>     end
>>> end
>>>
>>> Bar.new(1, 2)
>>> Bar.new(1,2, path: "there")
>>> ------------------------------------------------------------
>>>
>>> bug:foo $ rvm 2.1
>>> bug:foo $ ruby /tmp/x.rb
>>> {:path=>nil}
>>> {:path=>"there"}
>>> bug:foo $ rvm jruby-head
>>> bug:foo $ ruby /tmp/x.rb
>>> ArgumentError: wrong number of arguments (3 for 2)
>>>   initialize at /tmp/x.rb:9
>>>   initialize at /tmp/x.rb:9
>>>       (root) at /tmp/x.rb:13
>>>
>>> while in MRI ruby both calls work (with and without the hash), in jruby
>>> both fail with the arguments error.
>>> So, something about the super call doesn't quite work as MRI does.
>>>
>>> Cheers,
>>>
>>> Josep M.
>>>
>>>
>>> On Tue, Sep 2, 2014 at 3:50 PM, Thomas E Enebo <[email protected]>
>>> wrote:
>>>
>>>> Can you give a more complete example.  This works for me:
>>>>
>>>> class Foo
>>>>   def initialize(name, context,**opts)
>>>>     p opts
>>>>   end
>>>> end
>>>>
>>>> Foo.new(1, 2, a: 1)
>>>>
>>>> ./bin/jruby -v snippets/kw15.rb
>>>> jruby 9000.dev-SNAPSHOT (2.1.2p142) 2014-09-02 8771d02 Java HotSpot(TM)
>>>> 64-Bit Server VM 24.60-b09 on 1.7.0_60-b19 [darwin-x86_64]
>>>> /Users/enebo/work/jruby/lib/ruby/shared/rubygems/defaults/jruby.rb:92
>>>> warning: Ambiguous first argument; make sure.
>>>> /Users/enebo/work/jruby/lib/ruby/shared/rubygems/defaults/jruby.rb:96
>>>> warning: shadowing outer local variable - dir
>>>> {:a=>1}
>>>>
>>>>
>>>> On Tue, Sep 2, 2014 at 4:52 PM, Josep Blanquer <[email protected]
>>>> > wrote:
>>>>
>>>>> Hello,
>>>>>
>>>>>  It seems that as of the latest head from today:
>>>>> jruby 9000.dev-SNAPSHOT (2.1.2p142) 2014-09-02 8771d02 Java
>>>>> HotSpot(TM) 64-Bit Server VM 24.0-b56 on 1.7.0_40-b43 [darwin-x86_64]
>>>>>
>>>>> The following 2.1 syntax is not implemented?
>>>>>
>>>>> ArgumentError: wrong number of arguments (3 for 2)
>>>>>                          initialize at /...../file.rb:11
>>>>>
>>>>> Where that line is:
>>>>>
>>>>>     def initialize(name, context,**opts)
>>>>>
>>>>>
>>>>> am I missing something to make that happen in the current codebase? or
>>>>> is this a well know feature that still has to be implemented?
>>>>>
>>>>> If the latter is true: do you have any inkling as to when that could
>>>>> be done?
>>>>>
>>>>> Thank you!
>>>>>
>>>>> Josep M.
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> blog: http://blog.enebo.com       twitter: tom_enebo
>>>> mail: [email protected]
>>>>
>>>
>>>
>>
>>
>> --
>> blog: http://blog.enebo.com       twitter: tom_enebo
>> mail: [email protected]
>>
>
>


-- 
blog: http://blog.enebo.com       twitter: tom_enebo
mail: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.