Project

General

Profile

Actions

Bug #4971

closed

Module#class_variables

Added by shugo (Shugo Maeda) over 13 years ago. Updated about 12 years ago.

Status:
Closed
Target version:
ruby -v:
-
Backport:
[ruby-dev:44034]

Description

Ruby 1.9だとModule#class_variablesはスーパークラスのクラス変数を返しませんが、仕様でしょうか?

class Foo
@@foo = 123
end

class Bar < Foo
@@bar = 456
end

p Bar.class_variables #=> 1.8では["@@bar", "@@foo"], 1.9では[:@@bar]

commit logには

* variable.c (rb_mod_class_variables): class variables are no longer
  inherited.  [ruby-dev:23808]

と書いてあるのですが、当時のクラス変数の仕様って今の1.8とも1.9とも違う
仕様だったりするでしょうか。
Bar.class_variable_get(:@@foo)で値は取れるので、class_variablesで:@@fooを
返してもよい気がするのですが。


Files

class_variables.diff (4.06 KB) class_variables.diff shugo (Shugo Maeda), 07/16/2011 08:50 PM
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0