Project

General

Profile

Bug #7993

Updated by nobu (Nobuyoshi Nakada) about 10 years ago

=begin 
 The owner of methods defined after using Module#prepend seems to be incorrect. 

 ```ruby 
 

  RUBY_DESCRIPTION # => "ruby 2.1.0dev (2013-03-01 trunk 39546) [x86_64-linux]" 

 
 
  class C 
   
    attr_reader :a 
   
    prepend Module.new 
   
    attr_reader :b 
 
  end 
 
  C.instance_method(:a).owner # => C 
 
  C.instance_method(:b).owner # => #<C:0x00000000a52300> 
 
  C.new.method(:a).owner        # => C 
 
  C.new.method(:b).owner        # => #<C:0x00000000a52300> 

 
 
  module M 
   
    attr_reader :a 
   
    prepend Module.new 
   
    attr_reader :b 
 
  end 
 
  M.instance_method(:a).owner # => M 
 
  M.instance_method(:b).owner # => 
 
  # ~> -:19:in `<main>': undefined method `class' for #<M:0x00000000a515b8> (NoMethodError) 
 ``` 
 =end

Back