[ruby-core:80375] [Ruby trunk Bug#11964] __callee__ in aliased methods defined in a module returns an incorrect value

From: nagachika00@...
Date: 2017-03-27 11:25:25 UTC
List: ruby-core #80375
Issue #11964 has been updated by nagachika (Tomoyuki Chikanaga).

Backport changed from 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: DONTNEED, 2.3: REQUIRED to 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: DONTNEED, 2.3: DONE

ruby_2_3 r58148 merged revision(s) 56592.

----------------------------------------
Bug #11964: __callee__ in aliased methods defined in a module returns an incorrect value
https://bugs.ruby-lang.org/issues/11964#change-63855

* Author: sinuhe (Sinuhe Hardegree)
* Status: Closed
* Priority: Normal
* Assignee: ko1 (Koichi Sasada)
* Target version: 
* ruby -v: ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]
* Backport: 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: DONTNEED, 2.3: DONE
----------------------------------------
With Ruby 2.3, instead of following snippet printing bar (as it does with ruby 2.2.4) it prints foo. 
If the methods are defined within the class instead of an included module, the snippet prints bar.

~~~ruby
module Mod
  def foo
    __callee__
  end
  alias_method :bar, :foo
end

class Klass
  include Mod
end

a = Klass.new
p a.bar
~~~


This appears to be the behavior for both 2.3.0 and ruby 2.3.0dev (2015-11-12 trunk 52550) [x86_64-linux]



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

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next