ruby-changes:21019
From: sorah <ko1@a...>
Date: Thu, 25 Aug 2011 13:14:04 +0900 (JST)
Subject: [ruby-changes:21019] sorah:r33068 (ruby_1_9_3): * backport r33045 from trunk.
sorah 2011-08-25 13:13:53 +0900 (Thu, 25 Aug 2011) New Revision: 33068 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=33068 Log: * backport r33045 from trunk. * insns.def (defined): fix to checking class variable. A patch by Magnus Holm <judofyr@g...>. Thanks! * test/ruby/test_variable.rb: add a test for above. Modified files: branches/ruby_1_9_3/ChangeLog branches/ruby_1_9_3/insns.def branches/ruby_1_9_3/test/ruby/test_variable.rb Index: ruby_1_9_3/ChangeLog =================================================================== --- ruby_1_9_3/ChangeLog (revision 33067) +++ ruby_1_9_3/ChangeLog (revision 33068) @@ -1,3 +1,12 @@ +Wed Aug 24 09:49:10 2011 Koichi Sasada <ko1@a...> + + * backport r33045 from trunk. + + * insns.def (defined): fix to checking class variable. + A patch by Magnus Holm <judofyr@g...>. Thanks! + + * test/ruby/test_variable.rb: add a test for above. + Thu Aug 25 09:43:16 2011 Eric Hodel <drbrain@s...> * backport r33066 from trunk. Index: ruby_1_9_3/insns.def =================================================================== --- ruby_1_9_3/insns.def (revision 33067) +++ ruby_1_9_3/insns.def (revision 33068) @@ -773,11 +773,14 @@ } break; case DEFINED_CVAR: - klass = vm_get_cbase(GET_ISEQ(), GET_LFP(), GET_DFP()); + { + NODE *cref = vm_get_cref(GET_ISEQ(), GET_LFP(), GET_DFP()); + klass = vm_get_cvar_base(cref); if (rb_cvar_defined(klass, SYM2ID(obj))) { expr_type = "class variable"; } break; + } case DEFINED_CONST: klass = v; if (vm_get_ev_const(th, GET_ISEQ(), klass, SYM2ID(obj), 1)) { Index: ruby_1_9_3/test/ruby/test_variable.rb =================================================================== --- ruby_1_9_3/test/ruby/test_variable.rb (revision 33067) +++ ruby_1_9_3/test/ruby/test_variable.rb (revision 33068) @@ -55,6 +55,11 @@ assert_equal("Cronus", atlas.ruler0) assert_equal("Zeus", atlas.ruler3) assert_equal("Cronus", atlas.ruler4) + assert_nothing_raised do + class << Gods + defined?(@@rule) && @@rule + end + end end def test_local_variables -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/