[#84867] [Ruby trunk Bug#14357] thread_safe tests suite segfaults — v.ondruch@...

Issue #14357 has been reported by vo.x (Vit Ondruch).

11 messages 2018/01/15

[#84980] [Ruby trunk Feature#13618][Assigned] [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid — hsbt@...

Issue #13618 has been updated by hsbt (Hiroshi SHIBATA).

10 messages 2018/01/23
[#85012] Re: [Ruby trunk Feature#13618][Assigned] [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid — Eric Wong <normalperson@...> 2018/01/23

hsbt@ruby-lang.org wrote:

[ruby-core:84967] [Ruby trunk Feature#14382] Make public access of a private constant call const_missing

From: merch-redmine@...
Date: 2018-01-22 14:41:53 UTC
List: ruby-core #84967
Issue #14382 has been updated by jeremyevans0 (Jeremy Evans).


Eregon (Benoit Daloze) wrote:
> Isn't Module#deprecate_constant specifically for this usage?

`Module#deprecate_constant` deprecates all usage of the constant, both public and private.  If you want to keep a constant but change the visibility from public to private, it isn't appropriate.

----------------------------------------
Feature #14382: Make public access of a private constant call const_missing
https://bugs.ruby-lang.org/issues/14382#change-69678

* Author: jeremyevans0 (Jeremy Evans)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
Calling `obj.foo` where `foo` is a private method of `obj` calls `method_missing`. You would expect `klass::FOO` where `FOO` is a private constant of `klass` to call `const_missing`, but currently it doesn't.  This makes a small change so that `const_missing` will be called in such cases.
    
In addition to similarity to `method_missing`, the main reason for doing this is it offers a way to deprecate public constants.  Currently, if you have a public constant and want to make it a private constant, you can't do it without breaking possible callers.  With this patch, you can make it a private constant, then override `const_missing` in the class, and have `const_missing` print a deprecation warning and then return the value of the constant.

---Files--------------------------------
0001-Make-public-access-of-a-private-constant-call-const_.patch (2.68 KB)


-- 
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>

In This Thread

Prev Next