1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

method in instance_eval

* class.c (rb_special_singleton_class_of): utility function.
* vm_eval.c (eval_under): special deal for class variable scope with
  instance_eval.
* vm_eval.c (rb_obj_instance_eval, rb_obj_instance_exec): allow method
  definition in instance_eval of special constants.  [ruby-core:28324]
  [Bug #2788]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36647 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2012-08-06 15:31:13 +00:00
parent 353833c466
commit 28827e61d1
6 changed files with 61 additions and 23 deletions

View file

@ -264,24 +264,18 @@ assert_equal 'ok', %q{
}, '[ruby-core:16794]'
assert_equal 'ok', %q{
begin
nil.instance_eval {
def a() :a end
}
rescue TypeError
:ok
end
}, '[ruby-core:16796]'
nil.instance_eval {
def defd_using_instance_eval() :ok end
}
nil.defd_using_instance_eval
}, '[ruby-core:28324]'
assert_equal 'ok', %q{
begin
nil.instance_exec {
def a() :a end
}
rescue TypeError
:ok
end
}, '[ruby-core:16796]'
nil.instance_exec {
def defd_using_instance_exec() :ok end
}
nil.defd_using_instance_exec
}, '[ruby-core:28324]'
assert_normal_exit %q{
eval("", method(:proc).call {}.binding)