Actions
Bug #12121
closed異なる名前空間にある同名の定数により Module.constans の結果の並びが変わる
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.4.0dev (2016-02-27 trunk 53957) [x86_64-darwin13]
Backport:
Description
Ruby 2.4.0-dev で、Ruby 2.3.0 以前と変わっている振る舞いについてです。
自身のモジュール定義の前に、異なる名前空間で同名の定数が定義されていると
Module.constants の結果の並びに影響を与える振る舞いに変わっているように見えます。
module M1
module A end
end
module M2
module B end
module A end
end
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin13] での実行結果です。
p M2.constants # => [:B, :A]
ruby 2.4.0dev (2016-02-27 trunk 53957) [x86_64-darwin13] での実行結果です。
p M2.constants # => [:A, :B]
依存する異なるライブラリで、自身が使おうとする定数と同名の定数が定義されていると、
Module.constants の結果が Ruby 2.3.0 以前と異なる順序で返って困るということがありました。
Actions
Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0