Issue #12216 has been updated by Nobuyoshi Nakada.

Description updated
Status changed from Open to Rejected

Expected behavior.
In the `inherited` method, `self` and `klass` are `A` and `B` respectively, which are instances of `Class`.
Protected methods can be called from a same class instance.

----------------------------------------
Bug #12216: Class inherited Singleton method exclude argument from protected method accessing
https://bugs.ruby-lang.org/issues/12216#change-57668

* Author: Adam Luzsi
* Status: Rejected
* Priority: Normal
* Assignee: 
* ruby -v: 1.8.7-p375 && 1.9 && 2.+
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
Dear Ruby Lang developers.

I would like to ask about why the following code can work? 

Or is it a valid scenario and "as expected" behavior to ignore public call on a protected method. 

Thank you guys for the brilliant!

```ruby
class A
  class << self
    def inherited(klass)
      p klass.protected_method_call
    end

    protected
    def protected_method_call
      self.to_s
    end
  end
end

class B < A
end

# output: "B"
```




-- 
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>