[#70257] [Ruby trunk - Feature #11420] [Open] Introduce ID key table into MRI — ko1@...

Issue #11420 has been reported by Koichi Sasada.

11 messages 2015/08/06

[ruby-core:70383] [Ruby trunk - Bug #10967] Is "warning: private attribute?" wrong?

From: nagachika00@...
Date: 2015-08-14 06:45:51 UTC
List: ruby-core #70383
Issue #10967 has been updated by Tomoyuki Chikanaga.

Backport changed from 2.0.0: WONTFIX, 2.1: REQUIRED, 2.2: REQUIRED to 2.0.0: WONTFIX, 2.1: REQUIRED, 2.2: WONTFIX

Hmm, I don't know it's a bug fix or a spec change, but I think it's a trivial issue. I decided to not to backport to 2.2. Please notice if any objections.

----------------------------------------
Bug #10967: Is "warning: private attribute?" wrong?
https://bugs.ruby-lang.org/issues/10967#change-53786

* Author: Santiago Pastorino
* Status: Closed
* Priority: Normal
* Assignee: 
* ruby -v: ruby 2.3.0dev (2015-03-01 trunk 49796) [x86_64-darwin14]
* Backport: 2.0.0: WONTFIX, 2.1: REQUIRED, 2.2: WONTFIX
----------------------------------------
The following code ...

```ruby
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 ...

```ruby
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/

In This Thread

Prev Next