mirror of
https://github.com/ruby/ruby.git
synced 2025-09-18 01:54:00 +02:00
constant.h: constant visibilities
* constant.h (RB_CONST_PRIVATE_P, RB_CONST_PUBLIC_P): macros to predicate constant visibilities. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47846 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
1ba17d0e91
commit
02fe713b46
2 changed files with 10 additions and 4 deletions
|
@ -1836,7 +1836,7 @@ rb_const_get_0(VALUE klass, ID id, int exclude, int recurse, int visibility)
|
|||
rb_const_entry_t *ce;
|
||||
|
||||
while ((ce = rb_const_lookup(tmp, id))) {
|
||||
if (visibility && ce->flag == CONST_PRIVATE) {
|
||||
if (visibility && RB_CONST_PRIVATE_P(ce)) {
|
||||
rb_name_error(id, "private constant %"PRIsVALUE"::%"PRIsVALUE" referenced",
|
||||
rb_class_name(klass), QUOTE_ID(id));
|
||||
}
|
||||
|
@ -2029,7 +2029,7 @@ list_i(st_data_t key, st_data_t value, VALUE ary)
|
|||
{
|
||||
ID sym = (ID)key;
|
||||
rb_const_entry_t *ce = (rb_const_entry_t *)value;
|
||||
if (ce->flag != CONST_PRIVATE) rb_ary_push(ary, ID2SYM(sym));
|
||||
if (RB_CONST_PUBLIC_P(ce)) rb_ary_push(ary, ID2SYM(sym));
|
||||
return ST_CONTINUE;
|
||||
}
|
||||
|
||||
|
@ -2093,7 +2093,7 @@ rb_const_defined_0(VALUE klass, ID id, int exclude, int recurse, int visibility)
|
|||
retry:
|
||||
while (tmp) {
|
||||
if ((ce = rb_const_lookup(tmp, id))) {
|
||||
if (visibility && ce->flag == CONST_PRIVATE) {
|
||||
if (visibility && RB_CONST_PRIVATE_P(ce)) {
|
||||
return (int)Qfalse;
|
||||
}
|
||||
if (ce->value == Qundef && !check_autoload_required(tmp, id, 0) && !rb_autoloading_value(tmp, id, 0))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue