[#97536] [Ruby master Bug#16694] JIT vs hardened GCC with PCH — v.ondruch@...
Issue #16694 has been reported by vo.x (Vit Ondruch).
11 messages
2020/03/18
[ruby-core:97422] [Ruby master Feature#16615] Group style access scope for macros
From:
daniel@...42.com
Date:
2020-03-09 14:39:09 UTC
List:
ruby-core #97422
Issue #16615 has been updated by Dan0042 (Daniel DeLorme).
Description updated
Maybe a more concrete example would be helpful:
```ruby
def defc
define_method(:c){ }
end
class Foo
private
def a; end
attr_accessor :b
defc
end
Foo.new.a #=> NoMethodError (private method `a' called)
Foo.new.b #=> NoMethodError (private method `b' called)
Foo.new.c #=> nil
```
Having `c` be declared as private may be desirable... but there's sure to be a compatibility impact.
Is that why you added the condition that this should only happen if the meta-method (bar / defc) returns the instance method name (baz / c) as a symbol?
----------------------------------------
Feature #16615: Group style access scope for macros
https://bugs.ruby-lang.org/issues/16615#change-84556
* Author: ted (Ted Johansson)
* Status: Open
* Priority: Normal
----------------------------------------
Given a method `.bar`, which defines an instance method `#baz` on a class, and returns the defined method's name as a symbol (`:baz`).
```
class Foo
private
# On evaluation defines a method and returns its name.
# In current Ruby, that method will be public. The suggested
# behaviour is to make it private, since the class method
# which defines the instance method is in the private scope.
#
bar :baz
end
```
it would be neat if the dynamically defined instance method respected the scope in which its definition originated. (In this particular case `private`.)
Essentially the request is to extend the special powers of `attr_*` (being able to define methods that honour visibility scopes) to any method.
Note: I am aware that inline access scopes already work for dynamically defined methods, as they merely accept a symbol as an argument.
Edit: Changed `macro` to `bar` so people don't get hung up on the name of the method (which has no importance to the proposal.)
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>