summaryrefslogtreecommitdiff
path: root/test/ruby/test_shapes.rb
diff options
context:
space:
mode:
authorJean Boussier <[email protected]>2023-11-01 12:15:12 +0100
committerJean Boussier <[email protected]>2023-11-01 15:21:55 +0100
commitb77148ae9f74c46e645d9ce7387619e67109d935 ()
tree162ee0019e9eb980c9ea324c75f7ac125d426293 /test/ruby/test_shapes.rb
parent9c6dd25093f49d926ac71c3b91e1320d4bbc553a (diff)
remove_instance_variable: Handle running out of shapes
`remove_shape_recursive` wasn't considering that if we run out of shapes, it might have to transition to SHAPE_TOO_COMPLEX. When this happens, we now return with an error and the caller initiates the evacuation.
-rw-r--r--test/ruby/test_shapes.rb52
1 files changed, 52 insertions, 0 deletions
@@ -302,6 +302,38 @@ class TestShapes < Test::Unit::TestCase
end;
end
def test_run_out_of_shape_rb_obj_copy_ivar
assert_separately([], "#{<<~"begin;"}\n#{<<~'end;'}")
begin;
@@ -501,6 +533,26 @@ class TestShapes < Test::Unit::TestCase
assert_nil tc.a3
end
def test_freeze_after_complex
ensure_complex