summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorKOBAYASHI Shuji <[email protected]>2019-04-25 19:48:40 +0900
committerKOBAYASHI Shuji <[email protected]>2019-04-25 19:48:40 +0900
commit8fa3995a1a02e9014ce01351e0260bec20ceefd7 (patch)
treed2cc4cec5af07f02cb0e7f46c0b242e9d46fe37a /test
parente5799b5d40a5c25beab5db881f8d6315720b987c (diff)
downloadmruby-8fa3995a1a02e9014ce01351e0260bec20ceefd7.tar.gz
mruby-8fa3995a1a02e9014ce01351e0260bec20ceefd7.zip
Singleton class of frozen object should be frozen
Before this patch: p (class << Object.new.freeze; self end).frozen? #=> false sc = class << (o=Object.new); self end; o.freeze; p sc.frozen? #=> false After this patch / Ruby: p (class << Object.new.freeze; self end).frozen? #=> true sc = class << (o=Object.new); self end; o.freeze; p sc.frozen? #=> true
Diffstat (limited to 'test')
-rw-r--r--test/t/class.rb7
1 files changed, 7 insertions, 0 deletions
diff --git a/test/t/class.rb b/test/t/class.rb
index 0c95677fc..e2839111c 100644
--- a/test/t/class.rb
+++ b/test/t/class.rb
@@ -356,6 +356,13 @@ assert('singleton tests') do
end
end
end if Object.const_defined?(:Float)
+
+ o = Object.new
+ sc = class << o; self end
+ o.freeze
+ assert_predicate(sc, :frozen?)
+
+ assert_predicate(class << Object.new.freeze; self end, :frozen?)
end
assert('clone Class') do