diff options
-rw-r--r-- | shape.c | 3 | ||||
-rw-r--r-- | test/ruby/test_object.rb | 9 |
2 files changed, 10 insertions, 2 deletions
@@ -149,13 +149,12 @@ get_next_shape_internal(rb_shape_t* shape, ID id, VALUE obj, enum shape_type sha } break; case SHAPE_IVAR_UNDEF: + case SHAPE_FROZEN: new_shape->iv_count = new_shape->parent->iv_count; break; case SHAPE_ROOT: rb_bug("Unreachable"); break; - case SHAPE_FROZEN: - break; } rb_id_table_insert(shape->edges, id, (VALUE)new_shape); diff --git a/test/ruby/test_object.rb b/test/ruby/test_object.rb index 83208bbcdb..a9d5d4b13e 100644 --- a/test/ruby/test_object.rb +++ b/test/ruby/test_object.rb @@ -993,4 +993,13 @@ class TestObject < Test::Unit::TestCase end EOS end + + def test_frozen_inspect + obj = Object.new + obj.instance_variable_set(:@a, "a") + ins = obj.inspect + obj.freeze + + assert_equal(ins, obj.inspect) + end end |