Project

General

Profile

Actions

Bug #10967

closed

Is "warning: private attribute?" wrong?

Bug #10967: Is "warning: private attribute?" wrong?

Added by spastorino (Santiago Pastorino) over 10 years ago. Updated about 10 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.3.0dev (2015-03-01 trunk 49796) [x86_64-darwin14]
[ruby-core:<unknown>]

Description

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.

Actions

Also available in: PDF Atom