Issue #13028 has been updated by jeremyevans0 (Jeremy Evans).

Status changed from Open to Closed

This appears to have been fixed between 2.5 and 2.6:

```
$ irb25
irb(main):001:0> binding.irb
irb(main):001:0> 1+3
=> 4
irb(main):002:0> exit
=> 0
irb(main):002:0> 1+4
=> 5
irb(main):003:0> _
=> 4

$ irb26
irb(main):001:0> binding.irb
irb(main):001:0> 1+3
=> 4
irb(main):002:0> exit
=> 0
irb(main):002:0> 1+4
=> 5
irb(main):003:0> _
=> 5
```



----------------------------------------
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#change-78854

* Author: dskecse (Dzianis Dashkevich)
* Status: Closed
* 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>