[#25936] [Bug:1.9] [rubygems] $LOAD_PATH includes bin directory — Nobuyoshi Nakada <nobu@...>

Hi,

10 messages 2009/10/05

[#25943] Disabling tainting — Tony Arcieri <tony@...>

Would it make sense to have a flag passed to the interpreter on startup that

16 messages 2009/10/05

[#26028] [Bug #2189] Math.atanh(1) & Math.atanh(-1) should not raise an error — Marc-Andre Lafortune <redmine@...>

Bug #2189: Math.atanh(1) & Math.atanh(-1) should not raise an error

14 messages 2009/10/10

[#26222] [Bug #2250] IO::for_fd() objects' finalization dangerously closes underlying fds — Mike Pomraning <redmine@...>

Bug #2250: IO::for_fd() objects' finalization dangerously closes underlying fds

11 messages 2009/10/22

[#26244] [Bug #2258] Kernel#require inside rb_require() inside rb_protect() inside SysV context fails — Suraj Kurapati <redmine@...>

Bug #2258: Kernel#require inside rb_require() inside rb_protect() inside SysV context fails

24 messages 2009/10/22

[#26361] [Feature #2294] [PATCH] ruby_bind_stack() to embed Ruby in coroutine — Suraj Kurapati <redmine@...>

Feature #2294: [PATCH] ruby_bind_stack() to embed Ruby in coroutine

42 messages 2009/10/27

[#26371] [Bug #2295] segmentation faults — tomer doron <redmine@...>

Bug #2295: segmentation faults

16 messages 2009/10/27

[ruby-core:25911] [Feature #2170] Visibility Predicates for Method Objects

From: Marc-Andre Lafortune <redmine@...>
Date: 2009-10-03 04:24:14 UTC
List: ruby-core #25911
Issue #2170 has been updated by Marc-Andre Lafortune.

Assigned to set to Yukihiro Matsumoto

I'm trying to see how that could be useful, to understand your goal.

Once you have a Method (or an Unbound one), the visibility is no longer relevant. What I mean is that the visibility affects only the calls like my_obj.some_method, but if one obtains that method, there is no problem calling it even if it was private (similar to using send which ignores accessibility). Since this accessibility has no consequence once you have your Method object, I wonder why it could be useful to call method.private?

Moreover I see problems with defining it. The original method could have changed of accessibility or no longer exist. method#private? returns the accessibility at the moment the Method was created, which seems even less useful. 

Similarly, results with aliases can be counterintuive.

Code example:

class X
  def f; foo; end
  alias_method :g, :f
  private :f
end
x = X.new
f = x.method(:f)
g = x.method(:g)
class X
  private :g
end
g2 = x.method(:g)
f == g  # ==> true
g == g2  # ==> true
f.private? == g.private?  # ==> false
g.private? == g2.private?  # ==> false

----------------------------------------
http://redmine.ruby-lang.org/issues/show/2170

----------------------------------------
http://redmine.ruby-lang.org

In This Thread