ruby-changes:54310
From: nobu <ko1@a...>
Date: Mon, 24 Dec 2018 09:48:20 +0900 (JST)
Subject: [ruby-changes:54310] nobu:r66519 (trunk): enumerator.c: fix inspect with the last empty hash
nobu 2018-12-24 09:48:15 +0900 (Mon, 24 Dec 2018) New Revision: 66519 https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=66519 Log: enumerator.c: fix inspect with the last empty hash [ruby-core:90685] [Bug #15455] Modified files: trunk/enumerator.c trunk/test/ruby/test_enumerator.rb Index: test/ruby/test_enumerator.rb =================================================================== --- test/ruby/test_enumerator.rb (revision 66518) +++ test/ruby/test_enumerator.rb (revision 66519) @@ -407,6 +407,12 @@ class TestEnumerator < Test::Unit::TestC https://github.com/ruby/ruby/blob/trunk/test/ruby/test_enumerator.rb#L407 e = (0..10).each_cons(2) assert_equal("#<Enumerator: 0..10:each_cons(2)>", e.inspect) + e = (0..10).each_with_object({}) + assert_equal("#<Enumerator: 0..10:each_with_object({})>", e.inspect) + + e = (0..10).each_with_object(a: 1) + assert_equal("#<Enumerator: 0..10:each_with_object(a: 1)>", e.inspect) + e = Enumerator.new {|y| y.yield; 10 } assert_match(/\A#<Enumerator: .*:each>/, e.inspect) Index: enumerator.c =================================================================== --- enumerator.c (revision 66518) +++ enumerator.c (revision 66519) @@ -1105,7 +1105,7 @@ append_method(VALUE obj, VALUE str, ID d https://github.com/ruby/ruby/blob/trunk/enumerator.c#L1105 rb_str_buf_cat2(str, "("); - if (RB_TYPE_P(argv[argc-1], T_HASH)) { + if (RB_TYPE_P(argv[argc-1], T_HASH) && !RHASH_EMPTY_P(argv[argc-1])) { int all_key = TRUE; rb_hash_foreach(argv[argc-1], key_symbol_p, (VALUE)&all_key); if (all_key) kwds = argv[--argc]; -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/