Skip to content

Commit 828c243

Browse files
committed
Fix Struct setters to raise FrozenError when a struct is frozen
1 parent 53728be commit 828c243

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

core/struct/element_set_spec.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,11 @@
2626
-> { car[-4] = true }.should raise_error(IndexError)
2727
-> { car[Object.new] = true }.should raise_error(TypeError)
2828
end
29+
30+
it "raises a FrozenError on a frozen struct" do
31+
car = StructClasses::Car.new('Ford', 'Ranger')
32+
car.freeze
33+
34+
-> { car[:model] = 'Escape' }.should raise_error(FrozenError)
35+
end
2936
end

core/struct/struct_spec.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,13 @@
3333
car['model'].should == 'F150'
3434
car[1].should == 'F150'
3535
end
36+
37+
it "writer methods raise a FrozenError on a frozen struct" do
38+
car = StructClasses::Car.new('Ford', 'Ranger')
39+
car.freeze
40+
41+
-> { car.model = 'Escape' }.should raise_error(FrozenError)
42+
end
3643
end
3744

3845
describe "Struct subclasses" do

0 commit comments

Comments
 (0)