Project

General

Profile

Actions

Bug #1215

closed

irb doesn't finish evaluate on !false => false

Added by no6v (Nobuhiro IMAI) about 15 years ago. Updated about 13 years ago.

Status:
Rejected
Assignee:
-
Target version:
-
ruby -v:
ruby 1.9.2dev (2009-02-25 trunk 22626) [i686-linux]
Backport:
[ruby-dev:38087]

Description

=begin
$ irb1.9 -f
irb(main):001:0> RUBY_DESCRIPTION
=> "ruby 1.9.2dev (2009-02-25 trunk 22626) [i686-linux]"
irb(main):002:0> false
=> false
irb(main):003:0> false.define_singleton_method(:!){p "!false"; false}
=> #<Proc:0x8dd716c@(irb):3 (lambda)>
irb(main):004:0> false
"!false"
"!false"
irb(main):005:0>
irb(main):006:0*
irb(main):007:0*
irb(main):008:0* irb(main):008:0> => false

!false が false を返すような状況だと、irb が式を評価した結果を返さないようです。
手元では、^D を何度か押すと評価した結果が返りました。上の例では、005 から 007 までは
Enter を、008 のところでは ^D を 2 回入力しています。

るりまには、

主に論理式の評価に伴って副作用を引き起こすことを目的に
再定義するものと想定されています。

と書かれているので、バグと言えるのかは微妙な気もしますが、
irb 側で何とかならないものでしょうか?
=end

Actions

Also available in: Atom PDF

Like0
Like0Like0