From 1507118f0b70fc8002b4b0f186b464c64965cd1e Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Sun, 22 Jan 2023 11:40:37 +0900 Subject: [Feature #19362] Call `#initialize_dup` hook at `Proc#dup` --- test/ruby/test_proc.rb | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'test/ruby') diff --git a/test/ruby/test_proc.rb b/test/ruby/test_proc.rb index 4245a7b785..8d6ebf5dcb 100644 --- a/test/ruby/test_proc.rb +++ b/test/ruby/test_proc.rb @@ -388,6 +388,15 @@ class TestProc < Test::Unit::TestCase def test_dup_subclass c1 = Class.new(Proc) assert_equal c1, c1.new{}.dup.class, '[Bug #17545]' + c1 = Class.new(Proc) {def initialize_dup(*) throw :initialize_dup; end} + assert_throw(:initialize_dup) {c1.new{}.dup} + end + + def test_clone_subclass + c1 = Class.new(Proc) + assert_equal c1, c1.new{}.clone.class, '[Bug #17545]' + c1 = Class.new(Proc) {def initialize_clone(*) throw :initialize_clone; end} + assert_throw(:initialize_clone) {c1.new{}.clone} end def test_binding -- cgit v1.2.3