Feature #8061

重複するキーワードをエラーにする

Added by tadayoshi funaba about 2 years ago. Updated about 2 years ago.

[ruby-dev:47153]
Status:Open
Priority:Low
Assignee:Yukihiro Matsumoto

Description

重複するキーワードをエラーにする。

def m(a:1, b:2)
p [a, b]
end

m(a:8, a:9)

History

#1 Updated by Yusuke Endoh about 2 years ago

  • Assignee set to Yukihiro Matsumoto

キーワード引数の実体はハッシュなので、

{ a: 1, a: 2 } #=> { :a => 2 }

がエラーでない以上、これもエラーにならない方が仕様として単純で好きですが、
明らかにミスっぽいケースを検出してあげるのもありですかね。

m(:a => 8, eval(":a") => 9)
h = { a: 8 }; m(**h, a: 9)

などはどうするかと合わせて、matz に。

Yusuke Endoh mame@tsg.ne.jp

Also available in: Atom PDF