Issue #11677 has been reported by Kaneko Yuichiro.

----------------------------------------
Bug #11677: 52530の変更により、sprintfの引数のhashにkeyが存在していてもvalueがnilのときにKeyErrorがでるようになってしまった。
https://bugs.ruby-lang.org/issues/11677

* Author: Kaneko Yuichiro
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: ruby 2.3.0dev (trunk 52534) [x86_64-darwin14]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
```ruby
  def test_named_with_nil
    h = { key: nil, key2: "key2_val" }
    assert_equal("key is , key2 is key2_val", "key is %{key}, key2 is %{key2}" % h)
  end
```

のようなテストが2.2.3では通るのですが、trunkでは

```ruby
KeyError: key{key} not found
```

となります。

```ruby
"a.hoge is %{a}, b.fuga is %{b}" % { a: a.hoge, b: b.fuga }
```

のように書きたいときにvalueがnilでないことのチェックする必要がでるため、
今まで通りkeyが存在するときは例外が発生しないように修正したいです。

---Files--------------------------------
0001-Not-raise-KeyError-when-an-arg-hash-of-sprintf-has-k.patch (1.43 KB)


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