mirror of
https://github.com/ruby/ruby.git
synced 2025-08-26 06:25:31 +02:00
Make eval(code, binding) use (eval) as __FILE__ and 1 as __LINE__
This removes the warning that was added in
3802fb92ff
, and switches the behavior
so that the eval does not use the binding's __FILE__ and __LINE__
implicitly.
Fixes [Bug #4352]
This commit is contained in:
parent
170f4dbb9b
commit
0eeed5bcc5
Notes:
git
2020-01-04 13:13:49 +09:00
7 changed files with 103 additions and 67 deletions
|
@ -470,9 +470,12 @@ class TestEval < Test::Unit::TestCase
|
|||
end
|
||||
|
||||
def test_eval_location_binding
|
||||
assert_warning(/__FILE__ in eval/) do
|
||||
assert_equal(__FILE__, eval("__FILE__", binding))
|
||||
end
|
||||
assert_equal(['(eval)', 1], eval("[__FILE__, __LINE__]", nil))
|
||||
assert_equal(['(eval)', 1], eval("[__FILE__, __LINE__]", binding))
|
||||
assert_equal(['foo', 1], eval("[__FILE__, __LINE__]", nil, 'foo'))
|
||||
assert_equal(['foo', 1], eval("[__FILE__, __LINE__]", binding, 'foo'))
|
||||
assert_equal(['foo', 2], eval("[__FILE__, __LINE__]", nil, 'foo', 2))
|
||||
assert_equal(['foo', 2], eval("[__FILE__, __LINE__]", binding, 'foo', 2))
|
||||
end
|
||||
|
||||
def test_fstring_instance_eval
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue