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

ruby-changes:10706

From: nobu <ko1@a...>
Date: Fri, 13 Feb 2009 00:49:26 +0900 (JST)
Subject: [ruby-changes:10706] Ruby:r22269 (trunk): * insns.def (defineclass): try to autoload const to be overridden.

nobu	2009-02-13 00:48:44 +0900 (Fri, 13 Feb 2009)

  New Revision: 22269

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=22269

  Log:
    * insns.def (defineclass): try to autoload const to be overridden.

  Modified files:
    trunk/ChangeLog
    trunk/bootstraptest/test_autoload.rb
    trunk/insns.def

Index: insns.def
===================================================================
--- insns.def	(revision 22268)
+++ insns.def	(revision 22269)
@@ -888,6 +888,7 @@
 	vm_check_if_namespace(cbase);
 
 	/* find klass */
+	rb_autoload_load(cbase, id);
 	if (rb_const_defined_at(cbase, id)) {
 	    /* already exist */
 	    klass = rb_const_get_at(cbase, id);
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 22268)
+++ ChangeLog	(revision 22269)
@@ -1,3 +1,7 @@
+Fri Feb 13 00:48:42 2009  Nobuyoshi Nakada  <nobu@r...>
+
+	* insns.def (defineclass): try to autoload const to be overridden.
+
 Thu Feb 12 23:22:29 2009  Tanaka Akira  <akr@f...>
 
 	* test/socket/test_socket.rb (test_udp_server): filter out unreachable
Index: bootstraptest/test_autoload.rb
===================================================================
--- bootstraptest/test_autoload.rb	(revision 22268)
+++ bootstraptest/test_autoload.rb	(revision 22269)
@@ -67,3 +67,12 @@
   end
 }, '[ruby-core:21696]'
 
+assert_equal 'A::C', %q{
+  open("zzz.rb", "w") {}
+  class A
+    autoload :C, "zzz"
+    class C
+    end
+    C
+  end
+}

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

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