diff options
author | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-08-11 18:39:06 +0000 |
---|---|---|
committer | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-08-11 18:39:06 +0000 |
commit | 717f31e0756ac0f7c1e0c47c7a91356d0cbccc71 (patch) | |
tree | 086d847be1de409dc6c769b1ace3d9d4fa980330 | |
parent | c20b07d5357d7cb73226b149431a658cde54a697 (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_3@55868 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 @@ +Fri Aug 12 03:30:59 2016 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * variable.c (rb_local_constants_i): exclude private constants + when excluding inherited constants too. [Bug #12345] + Fri Aug 12 03:00:05 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 1e5e5a428d..06744b5249 100644 --- a/test/ruby/test_module.rb +++ b/test/ruby/test_module.rb @@ -1425,6 +1425,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 1a18c379fd..3690c1bddd 100644 --- a/variable.c +++ b/variable.c @@ -2376,7 +2376,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.3.2" #define RUBY_RELEASE_DATE "2016-08-12" -#define RUBY_PATCHLEVEL 148 +#define RUBY_PATCHLEVEL 149 #define RUBY_RELEASE_YEAR 2016 #define RUBY_RELEASE_MONTH 8 |