[前][次][番号順一覧][スレッド一覧][生データ]

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  ]