diff options
author | Jean Boussier <[email protected]> | 2023-11-01 12:15:12 +0100 |
---|---|---|
committer | Jean Boussier <[email protected]> | 2023-11-01 15:21:55 +0100 |
commit | b77148ae9f74c46e645d9ce7387619e67109d935 () | |
tree | 162ee0019e9eb980c9ea324c75f7ac125d426293 /test/ruby/test_shapes.rb | |
parent | 9c6dd25093f49d926ac71c3b91e1320d4bbc553a (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.rb | 52 |
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 |