Issue #13028 has been reported by Dzianis Dashkevich.

----------------------------------------
Bug #13028: Binding#irb upon exiting makes _ retain the value of the last expression and never change it
https://bugs.ruby-lang.org/issues/13028

* Author: Dzianis Dashkevich
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.4.0rc1 (2016-12-12 trunk 57064) [x86_64-darwin15]
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
Given an open `irb` session. After exiting from `binding.irb` the `_`, which is the last value of the current context, somehow retains the value of the last expression evaluated in the context of `binding.irb` and then doesn't change it. This never happens to the `irb` subshell in an open `irb` session.

Steps to reproduce:

1. Fire up `irb`.
2. Type `binding.irb`.
3. Get out of the current context by pressing Ctrl-D.
4. Type anything simple like `1+3`.
5. Type `_` to see 4, receive `nil` instead.

Another example:

1. Fire up `irb`.
2. Type `binding.irb`.
3. Type any expression to evaluate like `1+3`.
4. Get out of the current context by pressing Ctrl-D.
5. Type anything simple like `1+4`.
6. Type `_` to see 5, receive 4 instead.



-- 
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>