Issue #13337 has been updated by chrisseaton (Chris Seaton).


This is as specified here

https://github.com/ruby/spec/blob/db74bf3313b4d49650417ba91b4e2d67cc253dc5/core/kernel/eval_spec.rb#L31-L68

----------------------------------------
Bug #13337: Eval and Later Defined Local Variables
https://bugs.ruby-lang.org/issues/13337#change-78849

* Author: faraz (Faraz Yashar)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: 2.4.0
* Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
I've noticed the following behavior with eval:

~~~ ruby
def example
  eval("foo") # => nil, but would expect a NameError
  eval("bar") # => NameError
  foo = 1
end
~~~

I'm assuming this behavior is expected, since "eval" executes in the context of the existing YARV instructions and local table, but I'm not certain since I haven't seen this behavior documented anywhere. 

---Files--------------------------------
doc-eval-local-var.patch (1.63 KB)


-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>