mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* eval.c, vm_insnhelper.c: fix cref in instance_eval
and cvar_base search protocol. * bootstraptest/test_knownbug.rb, test_eval.rb: move soleved test and add new tests. * test/ruby/test_eval.rb: fix tests for spec. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16486 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
e07663ec1f
commit
d457fdad2d
6 changed files with 105 additions and 52 deletions
|
@ -139,7 +139,7 @@ class TestEval < Test::Unit::TestCase
|
|||
|
||||
assert_equal 11, o.instance_eval("11")
|
||||
assert_equal 12, o.instance_eval("@ivar")
|
||||
assert_raise(NameError) {o.instance_eval("@@cvar")}
|
||||
assert_equal 13, o.instance_eval("@@cvar")
|
||||
assert_equal 14, o.instance_eval("$gvar__eval")
|
||||
assert_equal 15, o.instance_eval("Const")
|
||||
assert_equal 16, o.instance_eval("7 + 9")
|
||||
|
@ -149,7 +149,7 @@ class TestEval < Test::Unit::TestCase
|
|||
|
||||
1.times {
|
||||
assert_equal 12, o.instance_eval("@ivar")
|
||||
assert_raise(NameError) {o.instance_eval("@@cvar")}
|
||||
assert_equal 13, o.instance_eval("@@cvar")
|
||||
assert_equal 14, o.instance_eval("$gvar__eval")
|
||||
assert_equal 15, o.instance_eval("Const")
|
||||
}
|
||||
|
@ -169,7 +169,7 @@ class TestEval < Test::Unit::TestCase
|
|||
|
||||
assert_equal 11, o.instance_eval { 11 }
|
||||
assert_equal 12, o.instance_eval { @ivar }
|
||||
assert_raise(NameError) {o.instance_eval{ @@cvar }}
|
||||
assert_equal 13, o.instance_eval { @@cvar }
|
||||
assert_equal 14, o.instance_eval { $gvar__eval }
|
||||
assert_equal 15, o.instance_eval { Const }
|
||||
assert_equal 16, o.instance_eval { 7 + 9 }
|
||||
|
@ -179,7 +179,7 @@ class TestEval < Test::Unit::TestCase
|
|||
|
||||
1.times {
|
||||
assert_equal 12, o.instance_eval { @ivar }
|
||||
assert_raise(NameError) {o.instance_eval{ @@cvar }}
|
||||
assert_equal 13, o.instance_eval { @@cvar }
|
||||
assert_equal 14, o.instance_eval { $gvar__eval }
|
||||
assert_equal 15, o.instance_eval { Const }
|
||||
}
|
||||
|
@ -187,8 +187,10 @@ class TestEval < Test::Unit::TestCase
|
|||
|
||||
def test_instance_eval_cvar
|
||||
[Object.new, [], 7, :sym, true, false, nil].each do |obj|
|
||||
assert_raise(NameError){obj.instance_eval("@@cvar")}
|
||||
assert_raise(NameError){obj.instance_eval{@@cvar}}
|
||||
assert_equal(13, obj.instance_eval("@@cvar"))
|
||||
assert_equal(13, obj.instance_eval{@@cvar})
|
||||
# assert_raise(NameError){obj.instance_eval("@@cvar")}
|
||||
# assert_raise(NameError){obj.instance_eval{@@cvar}}
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -339,9 +341,10 @@ class TestEval < Test::Unit::TestCase
|
|||
end
|
||||
|
||||
def test_cvar_scope_with_instance_eval
|
||||
# TODO: check
|
||||
Fixnum.class_eval "@@test_cvar_scope_with_instance_eval = 1" # depends on [ruby-dev:24229]
|
||||
@@test_cvar_scope_with_instance_eval = 4
|
||||
assert_equal(1, 1.instance_eval("@@test_cvar_scope_with_instance_eval"), "[ruby-dev:24223]")
|
||||
assert_equal(4, 1.instance_eval("@@test_cvar_scope_with_instance_eval"), "[ruby-dev:24223]")
|
||||
Fixnum.__send__(:remove_class_variable, :@@test_cvar_scope_with_instance_eval)
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue