From: "jeremyevans0 (Jeremy Evans)" Date: 2022-02-22T22:21:27+00:00 Subject: [ruby-core:107726] [Ruby master Bug#18600] Aliased method visibility issue on Ruby 3.1 Issue #18600 has been updated by jeremyevans0 (Jeremy Evans). I've submitted a pull request to fix this: https://github.com/ruby/ruby/pull/5592 ---------------------------------------- Bug #18600: Aliased method visibility issue on Ruby 3.1 https://bugs.ruby-lang.org/issues/18600#change-96649 * Author: gmcgibbon (Gannon McGibbon) * Status: Open * Priority: Normal * ruby -v: 3.1.0 * Backport: 2.6: DONTNEED, 2.7: DONTNEED, 3.0: DONTNEED, 3.1: REQUIRED ---------------------------------------- It seems methods on classes that were originally private in the parent and made public in the child can no longer be aliased correctly: ``` class C public :system alias_method :bar, :system alias_method :system, :bar end p RUBY_VERSION p [C.new.respond_to?(:system), C.new.respond_to?(:system, true)] ``` On Ruby <= 3.0.3, this returns `[true, true]`, but on Ruby >= 3.1.0 this returns `[false, true]`. The aliased method seems to revert visibility to the parent. -- https://bugs.ruby-lang.org/ Unsubscribe: