Issue #11677 has been updated by Yui NARUSE.
Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN to 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: DONTNEED
----------------------------------------
Bug #11677: 52530の変更により、sprintfの引数のhashにkeyが存在していてもvalueがnilのときにKeyErrorがでるようになってしまった。
https://bugs.ruby-lang.org/issues/11677#change-54822
* Author: Kaneko Yuichiro
* Status: Closed
* Priority: Normal
* Assignee:
* ruby -v: ruby 2.3.0dev (trunk 52534) [x86_64-darwin14]
* Backport: 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: DONTNEED
----------------------------------------
```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.44 KB)
--
https://bugs.ruby-lang.org/