From e7ab923b880ac75862cf9c287ac8ecbcd8ed1a31 Mon Sep 17 00:00:00 2001 From: nagachika Date: Sat, 30 Sep 2023 13:30:08 +0900 Subject: merge revision(s) d4c720a91bc7bb9ff31810e1720acffb939f7a2f: [Backport #19845] Fix support for dynamic keys. (#8273) * Skip RBS test. --- cont.c | 8 +++----- spec/ruby/core/fiber/storage_spec.rb | 14 ++++++++++++++ tool/rbs_skip_tests | 2 ++ 3 files changed, 19 insertions(+), 5 deletions(-) --- spec/ruby/core/fiber/storage_spec.rb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'spec/ruby/core') diff --git a/spec/ruby/core/fiber/storage_spec.rb b/spec/ruby/core/fiber/storage_spec.rb index 98215ebd59..e2bf6da04c 100644 --- a/spec/ruby/core/fiber/storage_spec.rb +++ b/spec/ruby/core/fiber/storage_spec.rb @@ -73,6 +73,20 @@ describe "Fiber.[]" do Fiber.new { Fiber[:life] }.resume.should be_nil end end + + ruby_version_is "3.2.3" do + it "can use dynamically defined keys" do + key = :"#{self.class.name}#.#{self.object_id}" + Fiber.new { Fiber[key] = 42; Fiber[key] }.resume.should == 42 + end + + it "can't use invalid keys" do + invalid_keys = [Object.new, "Foo", 12] + invalid_keys.each do |key| + -> { Fiber[key] }.should raise_error(TypeError) + end + end + end end describe "Fiber.[]=" do -- cgit v1.2.3