From: fg@... Date: 2016-03-10T14:04:28+00:00 Subject: [ruby-core:74267] [Ruby trunk Bug#12164] Binding UnboundMethod to BasicObject Issue #12164 has been updated by Nikita Shilnikov. Nobuyoshi Nakada wrote: > Yes. Thank you! Well... a feature? ---------------------------------------- Bug #12164: Binding UnboundMethod to BasicObject https://bugs.ruby-lang.org/issues/12164#change-57398 * Author: Nikita Shilnikov * Status: Closed * Priority: Normal * Assignee: * ruby -v: ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15] * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- I tried to bind method from Object to BasicObject and I suddenly succeeded. For example: ``` $ irb 2.3.0 :001 > BasicObject.send :define_method, :methods, Object.instance_method(:methods) => :methods 2.3.0 :002 > BasicObject.new.methods => [:!, :==, :!=, :__send__, :equal?, :methods, :instance_eval, :instance_exec, :__id__] 2.3.0 :003 > ``` In earlier ruby versions such code would raise an exception: ``` $ irb 2.2.4 :001 > BasicObject.send :define_method, :methods, Object.instance_method(:methods) TypeError: bind argument must be a subclass of Object from (irb):1:in `define_method' from (irb):1 from /Users/gordon/.rvm/rubies/ruby-2.2.4/bin/irb:11:in `
' 2.2.4 :002 > ``` Is it a bug or a feature? Probably it is somehow related to https://bugs.ruby-lang.org/issues/11278 -- https://bugs.ruby-lang.org/ Unsubscribe: