From 6f4c585bd73fc43fb9e34a70d74b5a50852600ea Mon Sep 17 00:00:00 2001 From: Yusuke Endoh Date: Sun, 24 May 2020 01:25:03 +0900 Subject: Do not destruct rest arguments for __send__ Formerly, `__send__(*args)` modified `args` with `Array#shift`. This bug affects optcarrot. This changeset avoids the array destruction by using `args = args[1, len-1]`. --- test/t/kernel.rb | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'test/t/kernel.rb') diff --git a/test/t/kernel.rb b/test/t/kernel.rb index aac6373fa..e3b9fe8ab 100644 --- a/test/t/kernel.rb +++ b/test/t/kernel.rb @@ -100,6 +100,10 @@ assert('Kernel#__send__', '15.3.1.3.4') do assert_true __send__(:respond_to?, :nil?) # test without argument and without block assert_equal String, __send__(:to_s).class + + args = [:respond_to?, :nil?] + assert_true __send__(*args) + assert_equal [:respond_to?, :nil?], args end assert('Kernel#block_given?', '15.3.1.3.6') do -- cgit v1.2.3