From: akr@... Date: 2014-10-13T06:43:11+00:00 Subject: [ruby-dev:48620] [ruby-trunk - Bug #10276] [Feedback] nil/true/false に singleton メソッドを定義できてしまう Issue #10276 has been updated by Akira Tanaka. Status changed from Open to Feedback 開発者会議のときに、奇妙だがそういうものとしようということになった覚えがあります。 ---------------------------------------- Bug #10276: nil/true/false に singleton メソッドを定義できてしまう https://bugs.ruby-lang.org/issues/10276#change-49375 * Author: Kazuhiro NISHIYAMA * Status: Feedback * Priority: Normal * Assignee: * 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 が frozen object なのに singleton メソッドを定義できてしまいます。 ~~~ % 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, #] true [1, #] true true true true [#, #] ~~~ -- https://bugs.ruby-lang.org/