Re: [jruby-user] JRuby head: splat (i.e., **args) method params?
Josep Blanquer <[email protected]>
| Newsgroups | gmane.comp.lang.jruby.user |
|---|---|
| Message-ID | <CAA_K6Yumg9Gimx+vyi8U6baPmriRV4qhhohRHhnUWT2bYKjF4g@mail.gmail.com> |
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] >