Skip to content

Commit 3a0d00d

Browse files
committed
Add a test for Binding#local_variable* with numbered parameters and it
1 parent 993fd96 commit 3a0d00d

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed

test/ruby/test_proc.rb

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1649,6 +1649,71 @@ def test_local_variable_set
16491649
assert_equal(20, b.eval("b"))
16501650
end
16511651

1652+
def test_numparam_is_not_local_variables
1653+
"foo".tap do
1654+
_9
1655+
assert_equal([], binding.local_variables)
1656+
assert_raise(NameError) { binding.local_variable_get(:_9) }
1657+
assert_raise(NameError) { binding.local_variable_set(:_9, 1) }
1658+
"bar".tap do
1659+
assert_equal([], binding.local_variables)
1660+
assert_raise(NameError) { binding.local_variable_get(:_9) }
1661+
assert_raise(NameError) { binding.local_variable_set(:_9, 1) }
1662+
end
1663+
assert_equal([], binding.local_variables)
1664+
assert_raise(NameError) { binding.local_variable_get(:_9) }
1665+
assert_raise(NameError) { binding.local_variable_set(:_9, 1) }
1666+
end
1667+
1668+
"foo".tap do
1669+
assert_equal([], binding.local_variables)
1670+
assert_raise(NameError) { binding.local_variable_get(:_9) }
1671+
assert_raise(NameError) { binding.local_variable_set(:_9, 1) }
1672+
"bar".tap do
1673+
_9
1674+
assert_equal([], binding.local_variables)
1675+
assert_raise(NameError) { binding.local_variable_get(:_9) }
1676+
assert_raise(NameError) { binding.local_variable_set(:_9, 1) }
1677+
end
1678+
assert_equal([], binding.local_variables)
1679+
assert_raise(NameError) { binding.local_variable_get(:_9) }
1680+
assert_raise(NameError) { binding.local_variable_set(:_9, 1) }
1681+
end
1682+
end
1683+
1684+
def test_it_is_not_local_variable
1685+
"foo".tap do
1686+
it
1687+
assert_equal([], binding.local_variables)
1688+
assert_raise(NameError) { binding.local_variable_get(:it) }
1689+
"bar".tap do
1690+
assert_equal([], binding.local_variables)
1691+
assert_raise(NameError) { binding.local_variable_get(:it) }
1692+
end
1693+
assert_equal([], binding.local_variables)
1694+
assert_raise(NameError) { binding.local_variable_get(:it) }
1695+
"bar".tap do
1696+
it
1697+
assert_equal([], binding.local_variables)
1698+
assert_raise(NameError) { binding.local_variable_get(:it) }
1699+
end
1700+
assert_equal([], binding.local_variables)
1701+
assert_raise(NameError) { binding.local_variable_get(:it) }
1702+
end
1703+
1704+
"foo".tap do
1705+
assert_equal([], binding.local_variables)
1706+
assert_raise(NameError) { binding.local_variable_get(:it) }
1707+
"bar".tap do
1708+
it
1709+
assert_equal([], binding.local_variables)
1710+
assert_raise(NameError) { binding.local_variable_get(:it) }
1711+
end
1712+
assert_equal([], binding.local_variables)
1713+
assert_raise(NameError) { binding.local_variable_get(:it) }
1714+
end
1715+
end
1716+
16521717
def test_local_variable_set_wb
16531718
assert_ruby_status([], <<-'end;', '[Bug #13605]', timeout: 30)
16541719
b = binding

0 commit comments

Comments
 (0)