[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]