diff options
author | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-08-16 05:56:26 +0000 |
---|---|---|
committer | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-08-16 05:56:26 +0000 |
commit | caec808f74a7545cc2b6930dbfa629071315f065 (patch) | |
tree | f65c273b5395df1fb633730972351f8cadc2b06e | |
parent | 0d09e1af49b8523a13bc6e5e054000195114b4f0 (diff) |
merge revision(s) 55705: [Backport #12345]
* variable.c (rb_local_constants_i): exclude private constants
when excluding inherited constants too. [Bug #12345]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@55930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | test/ruby/test_module.rb | 2 | ||||
-rw-r--r-- | variable.c | 2 | ||||
-rw-r--r-- | version.h | 2 |
4 files changed, 9 insertions, 2 deletions
@@ -1,3 +1,8 @@ +Tue Aug 16 14:54:14 2016 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * variable.c (rb_local_constants_i): exclude private constants + when excluding inherited constants too. [Bug #12345] + Tue Aug 16 14:43:00 2016 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp> * lib/drb/timeridconv.rb: don't use keeper thread. [Bug #12342] diff --git a/test/ruby/test_module.rb b/test/ruby/test_module.rb index b70e6666ff..3aecccabed 100644 --- a/test/ruby/test_module.rb +++ b/test/ruby/test_module.rb @@ -1360,6 +1360,8 @@ class TestModule < Test::Unit::TestCase def test_constants_with_private_constant assert_not_include(::TestModule.constants, :PrivateClass) + assert_not_include(::TestModule.constants(true), :PrivateClass) + assert_not_include(::TestModule.constants(false), :PrivateClass) end def test_toplevel_private_constant diff --git a/variable.c b/variable.c index 2c85ae155d..1b875e543c 100644 --- a/variable.c +++ b/variable.c @@ -1999,7 +1999,7 @@ sv_i(st_data_t k, st_data_t v, st_data_t a) static int rb_local_constants_i(st_data_t const_name, st_data_t const_value, st_data_t ary) { - if (rb_is_const_id(const_name)) { + if (rb_is_const_id(const_name) && !RB_CONST_PRIVATE_P((rb_const_entry_t *)const_value)) { rb_ary_push((VALUE)ary, ID2SYM((ID)const_name)); } return ST_CONTINUE; @@ -1,6 +1,6 @@ #define RUBY_VERSION "2.2.6" #define RUBY_RELEASE_DATE "2016-08-16" -#define RUBY_PATCHLEVEL 358 +#define RUBY_PATCHLEVEL 359 #define RUBY_RELEASE_YEAR 2016 #define RUBY_RELEASE_MONTH 8 |