[前][次][番号順一覧][スレッド一覧]

ruby-changes:2525

From: ko1@a...
Date: 26 Nov 2007 10:31:33 +0900
Subject: [ruby-changes:2525] matz - Ruby:r14016 (trunk): * test/ruby/test_eval.rb (TestEval::test_instance_eval_cvar):

matz	2007-11-26 10:31:20 +0900 (Mon, 26 Nov 2007)

  New Revision: 14016

  Modified files:
    trunk/ChangeLog
    trunk/insns.def
    trunk/test/ruby/test_eval.rb

  Log:
    * test/ruby/test_eval.rb (TestEval::test_instance_eval_cvar):
      updated not to modify class variable of Object class.

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=14016&r2=14015
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/test/ruby/test_eval.rb?r1=14016&r2=14015
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/insns.def?r1=14016&r2=14015

Index: insns.def
===================================================================
--- insns.def	(revision 14015)
+++ insns.def	(revision 14016)
@@ -184,8 +184,7 @@
 ()
 (VALUE val)
 {
-    VALUE klass = vm_get_cvar_base(th, GET_ISEQ());
-    val = rb_cvar_get(klass, id);
+    val = rb_cvar_get(vm_get_cvar_base(th, GET_ISEQ()), id);
 }
 
 /**
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 14015)
+++ ChangeLog	(revision 14016)
@@ -16,6 +16,11 @@
 
 	* lib/rubygems*: Import RubyGems r1516.
 
+Sat Nov 24 23:25:52 2007  Yukihiro Matsumoto  <matz@r...>
+
+	* test/ruby/test_eval.rb (TestEval::test_instance_eval_cvar):
+	  updated not to modify class variable of Object class.
+
 Fri Nov 23 17:34:24 2007  Koichi Sasada  <ko1@a...>
 
 	* io.c: add rb_read_internal() as blocking function.
Index: test/ruby/test_eval.rb
===================================================================
--- test/ruby/test_eval.rb	(revision 14015)
+++ test/ruby/test_eval.rb	(revision 14016)
@@ -118,12 +118,9 @@
   end
 
   def forall_TYPE(mid)
-    objects = [Object.new, [], nil, true, false, 77, ] #:sym] # TODO: check
+    objects = [Object.new, [], nil, true, false, 77, :sym] # TODO: check
     objects.each do |obj|
       obj.instance_variable_set :@ivar, 12
-      obj.class.class_variable_set :@@cvar, 13
-          # Use same value with env. See also test_instance_variable_cvar.
-      obj.class.const_set :Const, 15 unless obj.class.const_defined?(:Const)
       send mid, obj
     end
   end
@@ -142,11 +139,7 @@
 
     assert_equal 11,    o.instance_eval("11")
     assert_equal 12,    o.instance_eval("@ivar")
-    begin
-      assert_equal 13,    o.instance_eval("@@cvar")
-    rescue => err
-      assert false, "cannot get cvar from #{o.class}"
-    end
+    assert_equal 13,    o.instance_eval("@@cvar")
     assert_equal 14,    o.instance_eval("$gvar__eval")
     assert_equal 15,    o.instance_eval("Const")
     assert_equal 16,    o.instance_eval("7 + 9")
@@ -194,16 +187,13 @@
 
   def test_instance_eval_cvar
     env = @@cvar
-    cls = "class"
-    [Object.new, [], 7, ].each do |obj| # TODO: check :sym
-      obj.class.class_variable_set :@@cvar, cls
+    [Object.new, [], 7, :sym].each do |obj| # TODO: check :sym
       assert_equal env, obj.instance_eval("@@cvar")
       assert_equal env, obj.instance_eval { @@cvar }
     end
     [true, false, nil].each do |obj|
-      obj.class.class_variable_set :@@cvar, cls
-      assert_equal cls, obj.instance_eval("@@cvar")
-      assert_equal cls, obj.instance_eval { @@cvar }
+      assert_equal env, obj.instance_eval("@@cvar")
+      assert_equal env, obj.instance_eval { @@cvar }
     end
   end
 

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧]