yarv-dev:788
From: 雪見酒 <yukimi_sake mbi.nifty.com>
Date: Sun, 29 Jan 2006 17:31:36 +0900
Subject: [yarv-dev:788] open> probrem of module's scope
こんにちは。
同一名のクラスをネストさせるとおかしくなります。
#scopetest1.rb
module M
class A
def hoge
p "hoge"
end
end
end
class A
include M
def initialize
A.new.hoge
# instance_eval("A.new.hoge")
end
end
A.new
これはRubyでは"hoge"を返しますが、YARVでは
scopetest1:12:in `new': stack level too deep (SystemStackError
from scopetest1:12:in `initialize'
from scopetest1:12:in `new'
from scopetest1:12:in `initialize'
from scopetest1:12:in `new'
from scopetest1:12:in `initialize'
from scopetest1:12:in `new'
from scopetest1:12:in `initialize'
from scopetest1:12:in `new'
... 7461 levels...
from scopetest1:12:in `new'
from scopetest1:12:in `initialize'
from scopetest1:17:in `new'
from scopetest1:17:in `<main>'
になります。クラス内で直接ネストさせれば問題ありません。
日記ではinstance_evalすると無限ループすると書きましたが、そうではなくど
ちらもスタックエラーでした。
--
雪見酒
--
ML: yarv-dev quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml
-> 788 2006-01-29 17:31 [yukimi_sake mbi.nift] open> probrem of module's scope 792 2006-02-01 03:30 ┗[ko1 atdot.net ] 853 2006-02-13 20:39 ┗[ko1 atdot.net ] fixed>Re: open> probrem of module's scope