From: shugo@... Date: 2015-05-14T09:15:56+00:00 Subject: [ruby-core:69190] [Ruby trunk - Feature #11105] ES6-like hash literals Issue #11105 has been updated by Shugo Maeda. Nobuyoshi Nakada wrote: > > lexington:ruby$ ./ruby x.rb > > x.rb:4: warning: duplicated key at line 4 ignored: :a > > x.rb:4: warning: duplicated key at line 4 ignored: :a > > {:a=>3} > > ``` > > Why they make the same symbol? > `a`, `@a` and `$a` are irrelevant, separate variables. > I'd expect `{:a=>1, :@a=>2, :$a=>3}` without any warnings. Because I don't come up with any use case of such ugly key names. I believe code like {a, @a} should not be used in real world applications. ---------------------------------------- Feature #11105: ES6-like hash literals https://bugs.ruby-lang.org/issues/11105#change-52447 * Author: Shugo Maeda * Status: Open * Priority: Normal * Assignee: ---------------------------------------- Why not support ECMAScript6-like hash literals? For example, {x, y} is equivalent to: {x: x, y: y} For convenience, the prefix of global, instance, and class variables should be removed from the key name as follows: a = 1 B = 2 $c = 3 @d = 4 @@e = 5 p({a, B, $c, @d, @@e, f: 6}) #=> {:a=>1, :B=>2, :c=>3, :d=>4, :e=>5, :f=>6} ---Files-------------------------------- 0001-support-ES6-like-hash-literals.patch (3.88 KB) -- https://bugs.ruby-lang.org/