Project

General

Profile

ActionsLike0

Bug #10315

closed

Override policy for duplicated keywords

Added by ko1 (Koichi Sasada) over 10 years ago. Updated over 10 years ago.

Status:
Closed
Target version:
ruby -v:
2.2-2.0
[ruby-core:65368]

Description

p({k1: 'a', k1: 'b'})         #=> {:k1=>"b"}
p({k1: 'a'}.merge({k1: 'b'})) #=> {:k1=>"b"}
p(k1: 'a', k1: 'b')           #=> {:k1=>"b"}
p(k1: 'a', **{k1: 'b'})       #=> {:k1=>"a"}

IMO the last case should also output {:k1=>"b"}.

Nobu said that we should show warning for such duplication (especially for 1st and 3rd cases) because we can detect duplication while parsing/compiling.


Related issues 1 (0 open1 closed)

Related to Ruby - Bug #11501: About priority of a hash element when using {**hash1, **hash2} literalClosednagachika (Tomoyuki Chikanaga)Actions

Added by nobu (Nobuyoshi Nakada) over 10 years ago

Revision 15716827

parse.y: precedence of duplicated keys

  • parse.y (assocs): concatenate splatted literal hashes. the
    former key has precedence even if duplicated literal keys
    follow. [ruby-core:65368] [Bug #10315]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47877 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Added by nobu (Nobuyoshi Nakada) over 10 years ago

Revision 8771d1a0

vm.c: precedence of duplicated keys

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47878 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Added by nobu (Nobuyoshi Nakada) over 10 years ago

Revision 5fa4d562

parse.y: remove duplicate keys

  • parse.y (remove_duplicate_keys): remove duplicate literal keys,
    i.e., symbols and strings. [ruby-core:65368] [Bug #10315]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47879 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Added by nobu (Nobuyoshi Nakada) over 10 years ago

Revision 37d0c873

parse.y: should not eliminate value nodes

  • parse.y (remove_duplicate_keys): should not simply eliminate all
    value nodes, which may have side effects.
    [ruby-core:65625] [Bug #10315]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47894 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Added by nobu (Nobuyoshi Nakada) over 10 years ago

Revision 4a883ff9

parse.y: keep nodes linking

  • parse.y (remove_duplicate_keys): should keep nodes linking not
    to be collected. [Bug #10315]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47898 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Added by nagachika (Tomoyuki Chikanaga) over 9 years ago

Revision 75c5b0af

  • doc/NEWS-0.2.2: add description about incompatible change in Hash
    duplicated key overriding policy. [Bug #10315] [Bug #11501]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53050 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Added by nagachika (Tomoyuki Chikanaga) over 9 years ago

Revision 4aeace73

merge revision(s) 53050: [Backport #11501]

    * doc/NEWS-0.2.2: add description about incompatible change in Hash
      duplicated key overriding policy. [Bug #10315] [Bug #11501]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@53051 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

ActionsLike0

Also available in: Atom PDF