Issue #9731 has been updated by Yusuke Endoh.

Duplicated by Bug #9735: Rails' HashWithIndifferentAccess is incompatible with Ruby's keyword arguments added

----------------------------------------
Bug #9731: Rails' HashWithIndifferentAccess is incompatible with Ruby's keyword arguments
https://bugs.ruby-lang.org/issues/9731#change-46176

* Author: Konstantinos Karachalios
* Status: Open
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
* ruby -v: 2.1.1
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
Origin: https://github.com/rails/rails/issues/14643

In Ruby it is possible to use a POR Hash in place of keyword arguments, making the transition between using an `options = {}` to keyword arguments easy. 

The same is not true for HashWithIndifferentAccess and this makes it difficult to pass the `params` hash directly to methods with keyword arguments.

### Bug test
```ruby
require 'active_support/hash_with_indifferent_access'
require 'minitest/autorun'

def sum(a: 0, b: 0)
  a + b
end

class BugTest < MiniTest::Unit::TestCase
  def setup
    @normal_hash = {a: 18, b: 24} # just a hash
    @indiff_hash = ActiveSupport::HashWithIndifferentAccess.new(@normal_hash)
  end

  def test_ruby_hash
    assert_equal 42, sum(@normal_hash)
  end

  def test_hash_with_indifferent_access
    assert_equal 42, sum(@indiff_hash)
  end
end
```

### Workaround
```ruby
sum(@indiff_args.symbolize_keys)
```

### VERSIONS
* ruby 2.0.0-p353 & activesupport 4.0.1
* ruby 2.1.0-p0 & activesupport 4.0.3
* ruby 2.1.1-p76 & activesupport 4.0.4, 3.2.17



-- 
https://bugs.ruby-lang.org/