Skip to content

Commit 79e2dee

Browse files
shugoclaude
authored andcommitted
Add specs for singleton class handling in Proc#dup and Proc#clone
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 55aeca3 commit 79e2dee

2 files changed

Lines changed: 16 additions & 0 deletions

File tree

core/proc/clone_spec.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,15 @@
55
describe "Proc#clone" do
66
it_behaves_like :proc_dup, :clone
77

8+
it "copies the singleton class" do
9+
obj = proc { }
10+
def obj.tag; :tag; end
11+
12+
clone = obj.clone
13+
clone.should.respond_to?(:tag)
14+
clone.tag.should == :tag
15+
end
16+
817
ruby_bug "cloning a frozen proc is broken on Ruby 3.3", ""..."3.4" do
918
it "preserves frozen status" do
1019
proc = Proc.new { }

core/proc/dup_spec.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,13 @@
55
describe "Proc#dup" do
66
it_behaves_like :proc_dup, :dup
77

8+
it "does not copy the singleton class" do
9+
obj = proc { }
10+
def obj.tag; end
11+
12+
obj.dup.should_not.respond_to?(:tag)
13+
end
14+
815
it "resets frozen status" do
916
proc = Proc.new { }
1017
proc.freeze

0 commit comments

Comments
 (0)