summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-metaprog/test
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2019-04-25 07:17:10 +0900
committerGitHub <[email protected]>2019-04-25 07:17:10 +0900
commite5799b5d40a5c25beab5db881f8d6315720b987c (patch)
tree535584bbc083956801dd6c8c702c8dfe8c4c44d9 /mrbgems/mruby-metaprog/test
parent163a6d01e035f16b15d3b08c0dfddd2caec09f9b (diff)
parent4720648137f2698cceb635c251475dec645cd598 (diff)
downloadmruby-e5799b5d40a5c25beab5db881f8d6315720b987c.tar.gz
mruby-e5799b5d40a5c25beab5db881f8d6315720b987c.zip
Merge pull request #4402 from shuujii/fix-modiying-class-variable-to-frozen-class
Fix modiying class variable to frozen class/module
Diffstat (limited to 'mrbgems/mruby-metaprog/test')
-rw-r--r--mrbgems/mruby-metaprog/test/metaprog.rb8
1 files changed, 7 insertions, 1 deletions
diff --git a/mrbgems/mruby-metaprog/test/metaprog.rb b/mrbgems/mruby-metaprog/test/metaprog.rb
index 1262c9945..0abeb90a6 100644
--- a/mrbgems/mruby-metaprog/test/metaprog.rb
+++ b/mrbgems/mruby-metaprog/test/metaprog.rb
@@ -171,7 +171,6 @@ assert('Module#class_variable_set', '15.2.2.4.18') do
@@foo
end
end
-
assert_equal 99, Test4ClassVariableSet.class_variable_set(:@@cv, 99)
assert_equal 101, Test4ClassVariableSet.class_variable_set(:@@foo, 101)
assert_true Test4ClassVariableSet.class_variables.include? :@@cv
@@ -180,6 +179,13 @@ assert('Module#class_variable_set', '15.2.2.4.18') do
%w[@@ @@1 @@x= @x @ x 1].each do |n|
assert_raise(NameError) { Test4ClassVariableSet.class_variable_set(n, 1) }
end
+
+ m = Module.new.freeze
+ assert_raise(FrozenError) { m.class_variable_set(:@@cv, 1) }
+
+ parent = Class.new{ class_variable_set(:@@a, nil) }.freeze
+ child = Class.new(parent)
+ assert_raise(FrozenError) { child.class_variable_set(:@@a, 1) }
end
assert('Module#class_variables', '15.2.2.4.19') do