[#44757] [ruby-trunk - Bug #5533][Assigned] Pathname's raising "invalid sequence" — Shyouhei Urabe <shyouhei@...>
5 messages
2011/11/01
[#44775] [ruby-trunk - Feature #5549][Open] Comparable#min, Comparable#max — Tsuyoshi Sawada <sawadatsuyoshi@...>
4 messages
2011/11/02
[#44796] [Backport93 - Backport #5565][Open] STDOUT.puts writes LF (not CR+LF) in textmode — Usaku NAKAMURA <redmine@...>
6 messages
2011/11/03
[#44800] [ruby-trunk - Bug #5576][Open] [Universal Newline]改行コードが"\r\n"で出力されない — pegacorn jp <subscriber.jp+ruby-redmine@...>
8 messages
2011/11/06
[#44817] [ruby-trunk - Feature #5584][Open] Array#sample! — Masaki Matsushita <glass.saga@...>
12 messages
2011/11/07
[#44837] [ruby-trunk - Bug #5593][Open] Windows上で \\.\ から始まるデバイスをopenするとクラッシュ — 宗介 相良 <snowjail@...>
5 messages
2011/11/08
[#44850] [ruby-trunk - Feature #5606][Open] String#each_match(regexp) — Tomoaki Nishiyama <tomoakin@...>
5 messages
2011/11/10
[#44853] [ruby-trunk - Bug #5608][Open] make -j 16 sometimes fail — Tomoaki Nishiyama <tomoakin@...>
5 messages
2011/11/10
[#44870] Re: [ruby-cvs:40906] kosaki:r33728 (trunk): * test/ruby/test_io.rb (test_fcntl_dupfd): skip if Fcntl::DUPFD — Tanaka Akira <akr@...>
2011/11/13 <kosaki@ruby-lang.org>:
3 messages
2011/11/14
[#44899] Re: [ruby-cvs:41015] kosaki:r33837 (trunk): * configure.in: turn on PIE if --enable-shared is not specified. — Tanaka Akira <akr@...>
2011/11/25 <kosaki@ruby-lang.org>:
3 messages
2011/11/27
[#44904] [ruby-trunk - Bug #5688][Open] Solaris10 で spawn を繰り返すとメモリリークする — okkez _ <redmine@...>
14 messages
2011/11/29
[#44922] [ruby-trunk - Bug #5688] Solaris10 で spawn を繰り返すとメモリリークする
— okkez _ <redmine@...>
2011/12/02
[#44906] [ruby-trunk - Bug #5689][Open] class variables inside of instance methods inside of "class_eval" — Shyouhei Urabe <shyouhei@...>
5 messages
2011/11/30
[ruby-dev:44907] [ruby-trunk - Bug #5689] class variables inside of instance methods inside of "class_eval"
From:
Shugo Maeda <redmine@...>
Date:
2011-11-30 04:14:05 UTC
List:
ruby-dev #44907
Issue #5689 has been updated by Shugo Maeda.
Shyouhei Urabe wrote:
> インスタンスメソッドの中から他のクラスのクラス変数が見えるというのはいかにもまずそうに思うのですが、以下の挙動は意図的ですか。
>
> zsh % ~/target/trunk/bin/ruby -ve'
> class Klass
> @@cvar = "Klass"
> end
>
> Klass.module_eval do
> def cvar
> @@cvar
> end
> end
>
> @@cvar = "main"
> puts Klass.new.cvar'
module_evalは定数同様にクラス変数の探索にも影響しないので、意図的では
あるんじゃないでしょうか。
定数探索の動作を1.8と同じに戻した時の議論で、クラス変数をどうするかも
議論した上で、合わせて1.8の動作に戻したように記憶しています。
ただ、今の動作が望ましいかどうかは議論の余地があると思います。
----------------------------------------
Bug #5689: class variables inside of instance methods inside of "class_eval"
http://redmine.ruby-lang.org/issues/5689
Author: Shyouhei Urabe
Status: Open
Priority: Normal
Assignee:
Category: core
Target version: 2.0.0
ruby -v: ruby 2.0.0dev (2011-11-30 trunk 33904) [x86_64-linux]
インスタンスメソッドの中から他のクラスのクラス変数が見えるというのはいかにもまずそうに思うのですが、以下の挙動は意図的ですか。
zsh % ~/target/trunk/bin/ruby -ve'
class Klass
@@cvar = "Klass"
end
Klass.module_eval do
def cvar
@@cvar
end
end
@@cvar = "main"
puts Klass.new.cvar'
ruby 2.0.0dev (2011-11-30 trunk 33904) [x86_64-linux]
-e:12: warning: class variable access from toplevel
-e:8: warning: class variable access from toplevel
main
--
http://redmine.ruby-lang.org