From e1238a1faba5cbb7975d08963bf0bfa50a96d2b0 Mon Sep 17 00:00:00 2001 From: Yusuke Endoh Date: Thu, 11 Jul 2024 11:46:23 +0900 Subject: Enumerable#all?: Stop optimizing when a given block is not optimizable This is a follow up to 182822683f86c8f8d63b05765addf5a04d112aa2. Co-Authored-By: Aaron Patterson --- test/ruby/test_enum.rb | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'test/ruby') diff --git a/test/ruby/test_enum.rb b/test/ruby/test_enum.rb index 7503e06272..237bdc8a4d 100644 --- a/test/ruby/test_enum.rb +++ b/test/ruby/test_enum.rb @@ -1348,4 +1348,12 @@ class TestEnumerable < Test::Unit::TestCase klass.new.grep(/(b.)/) { svars << $1 } assert_equal(["ba", "ba"], svars) end + + def test_all_fast + data = { "key" => { "key2" => 1 } } + kk = vv = nil + data.all? { |(k, v)| kk, vv = k, v } + assert_equal(kk, "key") + assert_equal(vv, { "key2" => 1 }) + end end -- cgit v1.2.3