Issue #12157 has been updated by Tsuyoshi Sawada.
Note that optional hash is not just for arguments in method call. It is also used for arrays, for example:
["a", "b", "c" => 1, d: 2]
Removing the optionality for braces in hash is not realistic.
If you want some way to explicitly distinguish final hash arguments from keyword arguments, it is the keyword arguments that should have the special syntax.
----------------------------------------
Feature #12157: Is the option hash necessary for future Rubys?
https://bugs.ruby-lang.org/issues/12157#change-57391
* Author: Colin Fulton
* Status: Open
* Priority: Normal
* Assignee:
----------------------------------------
Option hashes were great before Ruby had named arguments, but with the addition of named arguments and the double splat operator are they still needed?
One can convert named arguments into an option hash by using the double splat operator in the parameter list, so option hashes are redundant. More importantly, the existence of both option hashes and named arguments is creating odd or ugly edge cases. See #12022, #10708, and #11860. Legacy software can mostly be updated using a double splatted parameter, so it shouldn't be a hard shift to make.
What do you all think?
_Apologies if this discussion has happened before. I searched for a bit but couldn't turn anything up._
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>