Project

General

Profile

Bug #11677

52530の変更により、sprintfの引数のhashにkeyが存在していてもvalueがnilのときにKeyErrorがでるようになってしまった。

Added by yui-knk (Kaneko Yuichiro) almost 5 years ago. Updated almost 5 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 2.3.0dev (trunk 52534) [x86_64-darwin14]
[ruby-dev:49338]

Description

  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では

KeyError: key{key} not found

となります。

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

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


Files


Related issues

Related to Ruby master - Bug #11661: sprintf causes a KeyError instead of using a default value for hash substitutionClosedmatz (Yukihiro Matsumoto)Actions

Also available in: Atom PDF