From 77596fb7a91cc119b25ac9e19b3c8682709765b4 Mon Sep 17 00:00:00 2001 From: Jeremy Evans Date: Tue, 3 Sep 2019 14:02:24 -0700 Subject: Do not turn on keyword_init for Struct subclass if keyword hash is empty This was accidentally turned on because there was no checking for Qundef. Also, since only a single keyword is currently supported, simplify the rb_get_kwargs call. --- test/ruby/test_struct.rb | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'test/ruby/test_struct.rb') diff --git a/test/ruby/test_struct.rb b/test/ruby/test_struct.rb index 502affef07..ec0a29026b 100644 --- a/test/ruby/test_struct.rb +++ b/test/ruby/test_struct.rb @@ -96,6 +96,10 @@ module TestStruct assert_equal([:utime, :stime, :cutime, :cstime], Process.times.members) end + def test_struct_new_with_empty_hash + assert_equal({:a=>1}, Struct.new(:a, {}).new({:a=>1}).a) + end + def test_struct_new_with_keyword_init @Struct.new("KeywordInitTrue", :a, :b, keyword_init: true) @Struct.new("KeywordInitFalse", :a, :b, keyword_init: false) -- cgit v1.2.3