From: "nobu (Nobuyoshi Nakada)" Date: 2012-05-03T21:10:21+09:00 Subject: [ruby-dev:45614] [ruby-trunk - Bug #6396][Rejected] instance_eval内での変数の扱いについて Issue #6396 has been updated by nobu (Nobuyoshi Nakada). Status changed from Open to Rejected ---------------------------------------- Bug #6396: instance_eval内での変数の扱いについて https://bugs.ruby-lang.org/issues/6396#change-26425 Author: uy (西行寺 うゆ) Status: Rejected Priority: Normal Assignee: Category: Target version: ruby -v: ruby 1.9.3p194 (2012-04-20) [i386-mingw32] =begin class O attr_accessor :x end o = O.new o.x = 99 o.instance_eval do p x #=> 99 if nil x = 2 # この記述があるとxがnilになる end p x #=> nil end これはバグでしょうか? o.instance_eval do p x #=> 99 p x += 1 end ((|x|))は値を見ることは出来ても、 値を変更しようとしたり、 (({if}))分岐を通らなくても、そういったコードを混ぜておくと ((|x|))が(({nil}))(新しい変数?)に置き換わっているようですが =end -- http://bugs.ruby-lang.org/