Actions
Bug #10967
closedIs "warning: private attribute?" wrong?
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.3.0dev (2015-03-01 trunk 49796) [x86_64-darwin14]
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
Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0