[ruby-dev:48569] [ruby-trunk - Bug #10276] [Open] nil/true/false に singleton メソッドを定義できてしまう

From: zn@...
Date: 2014-09-21 09:37:02 UTC
List: ruby-dev #48569
Issue #10276 has been reported by Kazuhiro NISHIYAMA.

----------------------------------------
Bug #10276: nil/true/false =E3=81=AB singleton =E3=83=A1=E3=82=BD=E3=83=83=
=E3=83=89=E3=82=92=E5=AE=9A=E7=BE=A9=E3=81=A7=E3=81=8D=E3=81=A6=E3=81=97=E3=
=81=BE=E3=81=86
https://bugs.ruby-lang.org/issues/10276

* Author: Kazuhiro NISHIYAMA
* Status: Open
* Priority: Normal
* Assignee:=20
* Category: core
* Target version: current: 2.2.0
* ruby -v: ruby 2.2.0dev (2014-09-21 trunk 47672) [x86_64-linux]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
nil/true/false =E3=81=8C frozen object =E3=81=AA=E3=81=AE=E3=81=AB singleto=
n =E3=83=A1=E3=82=BD=E3=83=83=E3=83=89=E3=82=92=E5=AE=9A=E7=BE=A9=E3=81=A7=
=E3=81=8D=E3=81=A6=E3=81=97=E3=81=BE=E3=81=84=E3=81=BE=E3=81=99=E3=80=82

~~~
% cat /tmp/f.rb
def d(o)
  p o.frozen?
  def o.m; end
rescue
  p [o, $!]
end
d(:sym)
d(1)
d(nil)
d(true)
d(false)
d(Object.new.freeze)
% ruby -v /tmp/f.rb
ruby 2.2.0dev (2014-09-21 trunk 47672) [x86_64-linux]
true
[:sym, #<TypeError: can't define singleton>]
true
[1, #<TypeError: can't define singleton>]
true
true
true
true
[#<Object:0x00000002706730>, #<RuntimeError: can't modify frozen object>]
~~~



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

In This Thread

Prev Next