yarv-dev:908
From: SASADA Koichi <ko1 atdot.net>
Date: Fri, 17 Feb 2006 02:17:23 +0900
Subject: [yarv-dev:908] $SAFE in Proc generated by Method
ささだです。
次のテストは ruby/test_proc.rb から抜粋したものですが、
require 'test/unit'
class TestSafe < Test::Unit::TestCase
def test_safe
safe = $SAFE
c = Class.new
x = c.new
p = proc {$SAFE += 1}
c.class_eval {define_method(:inc, p)}
assert_equal(safe + 1,
proc {x.method(:inc).to_proc.call; $SAFE}.call)
end
end
このテストが通るのは変ではないでしょうか。
x.method(:inc).to_proc.call の呼び出しを抜けても、$SAFE が 1 のまま、
ということですよね。1.8 ではテストに失敗するので、これは意図的なことなん
でしょうか。
--
// SASADA Koichi at atdot dot net
--
ML: yarv-dev quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml
-> 908 2006-02-17 02:17 [ko1 atdot.net ] $SAFE in Proc generated by Method 911 2006-02-17 11:15 ┗[matz ruby-lang.org ]