From: ko1@... Date: 2017-05-19T06:52:43+00:00 Subject: [ruby-core:81253] [Ruby trunk Bug#13337] Eval and Later Defined Local Variables Issue #13337 has been updated by ko1 (Koichi Sasada). This is specification. (1) parse `example` method and define `foo`. (2) In `eval` method, compile given string (`"foo"`) and defined `foo` was used (without any problem). So it is documentation issue. Can anyone write about it? ---------------------------------------- Bug #13337: Eval and Later Defined Local Variables https://bugs.ruby-lang.org/issues/13337#change-64914 * 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. -- https://bugs.ruby-lang.org/ Unsubscribe: