Actions
Bug #16251
closedEvaluation in binding differs from ruby execution
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.6.2p47 (2019-03-13 revision 67232) [x86_64-darwin18]
Backport:
Description
In specific situation, I found that result of string evaluation in Binding returns different from ruby execution result.
In following sample code, ruby evaluates method_or_local_var
as method call and returns "method"
.
However, binding.eval
evaluates method_or_local_var
as local variable and returns nil
.
Here is sample code.
def method_or_local_var
'method'
end
if true
puts "execute method_or_local_var:"
p method_or_local_var #=> "method"
puts "execute method_or_local_var by bind.eval('method_or_local_var'):"
p binding.eval('method_or_local_var') #=> nil
else
method_or_local_var = 'local variable'
end
and here is results of execute sample code.
❯ ruby sample_code.rb
execute method_or_local_var:
"method"
execute method_or_local_var by bind.eval('method_or_local_var'):
nil
I expect evaluation result of method_or_local_var
in binding to be method, and returns "method"
.
Is this the expected behavior?
Actions
Like0
Like0Like0Like0Like0