From d03199b6d6cedc9c5d1059aa58e5211af6b479b3 Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 24 Jan 2012 04:29:07 +0000 Subject: [PATCH] * object.c (rb_Hash): trivial optimization. * test/ruby/test_object.rb (TestObject#test_convert_hash): fix arguments order. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34368 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- object.c | 2 +- test/ruby/test_object.rb | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/object.c b/object.c index 1632a46e3a..63d906e45b 100644 --- a/object.c +++ b/object.c @@ -2600,7 +2600,7 @@ rb_Hash(VALUE val) if (NIL_P(val)) return rb_hash_new(); VALUE tmp = rb_check_hash_type(val); if (NIL_P(tmp)) { - if (TYPE(val) == T_ARRAY && RARRAY_LEN(val) == 0) + if (RB_TYPE_P(val, T_ARRAY) && RARRAY_LEN(val) == 0) return rb_hash_new(); rb_raise(rb_eTypeError, "can't convert %s into Hash", rb_obj_classname(val)); } diff --git a/test/ruby/test_object.rb b/test/ruby/test_object.rb index 15e7b72e35..8d8fd8f847 100644 --- a/test/ruby/test_object.rb +++ b/test/ruby/test_object.rb @@ -198,14 +198,14 @@ class TestObject < Test::Unit::TestCase end def test_convert_hash - assert_equal(Hash(nil), {}) - assert_equal(Hash([]), {}) - assert_equal(Hash(key: :value), {key: :value}) + assert_equal({}, Hash(nil)) + assert_equal({}, Hash([])) + assert_equal({key: :value}, Hash(key: :value)) assert_raise(TypeError) { Hash([1,2]) } assert_raise(TypeError) { Hash(Object.new) } o = Object.new def o.to_hash; {a: 1, b: 2}; end - assert_equal(Hash(o), {a: 1, b: 2}) + assert_equal({a: 1, b: 2}, Hash(o)) def o.to_hash; 9; end assert_raise(TypeError) { Hash(o) } end