diff options
author | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-05-20 15:51:27 +0000 |
---|---|---|
committer | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-05-20 15:51:27 +0000 |
commit | 534c2b03b30d60d2490a5550c7c43b2272b108d1 (patch) | |
tree | 6bb7dc01a2aa2b29dcf5981981df8ee0d4e2d0fe /test | |
parent | 20ef4699e510f89ad4e9ccbeafa2d3d725ed2d3c (diff) |
merge revision(s) 50372,50373: [Backport #11086]
* vm_eval.c (rb_obj_instance_eval, rb_obj_instance_exec): allow
symbols to just instance_eval/exec, except for definition of
singletons. [ruby-core:68961] [Bug #11086]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@50561 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r-- | test/ruby/test_symbol.rb | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/ruby/test_symbol.rb b/test/ruby/test_symbol.rb index 596f2b09f6..57170fefef 100644 --- a/test/ruby/test_symbol.rb +++ b/test/ruby/test_symbol.rb @@ -199,6 +199,35 @@ class TestSymbol < Test::Unit::TestCase assert_raise(TypeError) { a = :foo; def a.foo; end } end + SymbolsForEval = [ + :foo, + "dynsym_#{Random.rand(10000)}_#{Time.now}".to_sym + ] + + def test_instance_eval + bug11086 = '[ruby-core:68961] [Bug #11086]' + SymbolsForEval.each do |sym| + assert_nothing_raised(TypeError, sym, bug11086) { + sym.instance_eval {} + } + assert_raise(TypeError, sym, bug11086) { + sym.instance_eval {def foo; end} + } + end + end + + def test_instance_exec + bug11086 = '[ruby-core:68961] [Bug #11086]' + SymbolsForEval.each do |sym| + assert_nothing_raised(TypeError, sym, bug11086) { + sym.instance_exec {} + } + assert_raise(TypeError, sym, bug11086) { + sym.instance_exec {def foo; end} + } + end + end + def test_frozen_symbol assert_equal(true, :foo.frozen?) assert_equal(true, :each.frozen?) |