Project

General

Profile

Actions

Bug #16340

closed

There are cases where `eval("_ 1")` does not refer to Numbered parameter

Added by osyo (manga osyo) over 4 years ago. Updated over 4 years ago.

Status:
Rejected
Assignee:
-
Target version:
-
ruby -v:
ruby 2.7.0dev (2019-11-11T10:03:43Z trunk 9d3213ac85) [x86_64-linux]
[ruby-core:95786]

Description

Steps to reproduce

  1. Define local variable _1 outside block
  2. Call Numbered parameter in block
  3. Call eval("_1") in same block

Expected behavior

_1 = :local_variable
proc {
  _1
  # return Numbered parameter(_1)
  eval("_1") # => :argument
}.call :argument

Actual behavior

_1 = :local_variable
proc {
  _1
  # return local variables outside block
  eval("_1") # => :local_variable
}.call :argument

This is strange behavior because I want to expect to reference _1 in block.

Note

  • Return Numbered parameter if not define local variables outside block
# _1 = :local_variable
proc {
  _1
  # Actual behavior
  # return Numbered parameter
  eval("_1") # => :argument
}.call :argument
Actions

Also available in: Atom PDF

Like0
Like0Like0