I'd like to know the intention behind this warning.. but so far haven't
seen it.

Also, since this behavior was added in a minor release, we can't really
change it now until the next major.. IF we care about semver for this,
which may not be the case

On Thursday, March 12, 2015, <santiago / wyeworks.com> wrote:

> Issue #10967 has been updated by Santiago Pastorino.
>
>
> One possible fix (the one removing the warning) ...
> https://github.com/ruby/ruby/pull/849
>
> ----------------------------------------
> Bug #10967: Is "warning: private attribute?" wrong?
> https://bugs.ruby-lang.org/issues/10967#change-51839
>
> * Author: Santiago Pastorino
> * Status: Open
> * Priority: Normal
> * Assignee:
> * ruby -v: ruby 2.3.0dev (2015-03-01 trunk 49796) [x86_64-darwin14]
> * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
> ----------------------------------------
> The following code ...
>
> ```
> class Y
>   def initialize
>     @x = "ZOMG"
>   end
>
>   def print_x
>     puts x
>   end
>
>   private
>
>   attr_reader :x
> end
>
> Y.new.print_x
> ```
>
> outputs ...
>
> ```
> test.rb:12: warning: private attribute?
> ```
>
> I tend to think this warning is wrong, I was surprised by
> https://github.com/rack/rack/pull/811 and I think this is a completely
> valid use case.
>
> Also this code ...
>
> ```
> class Y
>   def initialize
>     @x = "ZOMG"
>   end
>
>   def print_x
>     puts x
>   end
>
>   def assign_x
>     self.x = "ZOMG ZOMG"
>   end
>
>   private
>
>   attr_accessor :x
> end
>
> y = Y.new
> y.assign_x
> y.print_x
> ```
>
> Works fine with warnings also. So a private writer works ok when the
> receiver is `self` because Ruby has a special case for it, this make me
> think that private writers were thought to be used.
>
> So ... am I wrong thinking that the warning should be removed or the self
> special case shouldn't work and be removed from Ruby code?. It doesn't make
> sense to me to have both things.
>
>
>
> --
> https://bugs.ruby-lang.org/
>