From: akr@... Date: 2018-09-18T14:34:31+00:00 Subject: [ruby-core:89066] [Ruby trunk Bug#15078] Hash splat of empty hash should not create a positional argument. Issue #15078 has been updated by akr (Akira Tanaka). akr (Akira Tanaka) wrote: > If it is not acceptable, I have second idea: My third idea is to use an instance variable to distinguish the two kind of `{}`. We can create `{}` with a special instance variable to distinguish them. ``` h = {} h.instance_variable_set(:@no_keyword_arguments, true) ``` It can be detected as `h.instance_variable_defined?(:@no_keyword_arguments)`. This is almost compatible, I think. ---------------------------------------- Bug #15078: Hash splat of empty hash should not create a positional argument. https://bugs.ruby-lang.org/issues/15078#change-74089 * Author: marcandre (Marc-Andre Lafortune) * Status: Open * Priority: Normal * Assignee: matz (Yukihiro Matsumoto) * Target version: * ruby -v: ruby 2.6.0dev (2018-08-27 trunk 64545) [x86_64-darwin15] * Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN ---------------------------------------- Looks like #10856 is not completely fixed, but I can't reopen it ``` def foo(*args); args; end foo(**{}) # => [] foo(**Hash.new) # => [{}], should be [] ``` -- https://bugs.ruby-lang.org/ Unsubscribe: