From: nobu@... Date: 2014-02-20T13:29:29+00:00 Subject: [ruby-core:60908] [ruby-trunk - Bug #9443] [Rejected] Pepended methods are skipped if calling alias Issue #9443 has been updated by Nobuyoshi Nakada. Description updated Status changed from Open to Rejected It's a spec. Aliased methods share the body, so `alias_method_chain` can work. It's not related to `prepend`. ---------------------------------------- Bug #9443: Pepended methods are skipped if calling alias https://bugs.ruby-lang.org/issues/9443#change-45310 * Author: Brian Cardarella * Status: Rejected * Priority: Normal * Assignee: * Category: * Target version: * ruby -v: 2.1.0 * Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- I am unsure if this is related to https://bugs.ruby-lang.org/issues/7842 as that issue specifically mentions the user of "super" which my example code does not use. Anyway, here is the test to recreate: ```ruby require 'test/unit' module A def foo 'foo2' end end class B def foo 'foo1' end alias_method :bar, :foo end B.send(:prepend, A) class AliasTest < Test::Unit::TestCase def test_no_alias assert_equal 'foo2', B.new.foo end def test_with_alias assert_equal 'foo2', B.new.bar end end ``` `test_with_alias` fails and will only call the original "foo" method. I have confirmed this on Ruby 2.0.0-p353 & 2.1.0 -- http://bugs.ruby-lang.org/