Actions
Bug #10413
closedUnexpected block invocation with unknown keywords
Description
When unknown keywords are passed, unexpected block is invoked.
def bar(k2: 'v2')
end
def foo
bar(k1: 1)
end
foo(){
puts caller_locations
raise "unreachable"
}
current behavior:
ruby 2.2.0dev (2014-10-22 trunk 48083) [i386-mswin32_110]
test.rb:10:in `block in <main>': unreachable (RuntimeError)
from test.rb:5:in `foo'
from test.rb:8:in `<main>'
test.rb:5:in `foo'
test.rb:8:in `<main>'
expected:
../../gitruby/test.rb:5:in `foo': unknown keyword: k1 (ArgumentError)
from ../../gitruby/test.rb:8:in `<main>'
This strange behavior is because "unknown_keyword_error" in class.c calls rb_hash_delete() (Hash#delete) with :k1 and invoke passed block.
I'm now re-writing all of this part and my branch does not have this problem.
However, Ruby 2.0 and 2.1 have same problem.
Actions
Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0