Forum: Ruby-core named params don't always capture passed named args

88144e3f7b9d7e3435a41492887b3999?d=identicon&s=25 Mean Login (mean_l)
on 2014-08-17 06:36
(Received via mailing list)
Issue #10142 has been updated by First Last.


Koichi Sasada wrote:
> Sorry I missed this line.
>
> > in this specific example, key arg b would be bound to key param b, and the
remaining key arg c would be put into a hash which would be bound to mandatory
param a
>
> Your proposal is to check keyword arguments before mandatory arguments.

having never studied the actual implementation, this is as concrete as I
can make it

"before keyword args are packaged into a hash which is bound to a
mandatory param, actual first class keyword params should get a chance
to bind to/consume them"

now that key args are first class, only those key args that failed to to
bind to key params should be candidates for the fallback of hash
packaging and binding to a regular param



----------------------------------------
Bug #10142: named params don't always capture passed named args
https://bugs.ruby-lang.org/issues/10142#change-48385

* Author: First Last
* Status: Rejected
* Priority: Normal
* Assignee:
* Category:
* Target version:
* ruby -v: ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
~~~ruby
irb(main):007:0> def foo(a, b: nil); [a, b] end
:foo
irb(main):008:0> foo b: 1
[
  [0] {
    :b => 1
  },
  [1] nil
]
~~~
______________________________

would be better if this raised
This topic is locked and can not be replied to.