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

ruby-changes:12445

From: ko1 <ko1@a...>
Date: Thu, 16 Jul 2009 17:44:44 +0900 (JST)
Subject: [ruby-changes:12445] Ruby:r24145 (trunk): * vm_method.c (rb_alias): fix a case which try non-existing method alias.

ko1	2009-07-16 17:44:23 +0900 (Thu, 16 Jul 2009)

  New Revision: 24145

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

  Log:
    * vm_method.c (rb_alias): fix a case which try non-existing method alias.
    * test/ruby/test_alias.rb: add a test.

  Modified files:
    trunk/ChangeLog
    trunk/test/ruby/test_alias.rb
    trunk/vm_method.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 24144)
+++ ChangeLog	(revision 24145)
@@ -1,3 +1,9 @@
+Thu Jul 16 17:41:28 2009  Koichi Sasada  <ko1@a...>
+
+	* vm_method.c (rb_alias): fix a case which try non-existing method alias.
+
+	* test/ruby/test_alias.rb: add a test.
+
 Thu Jul 16 15:52:25 2009  Nobuyoshi Nakada  <nobu@r...>
 
 	* bignum.c (rb_big_new, rb_bigzero_p), range.c (rb_range_values):
Index: vm_method.c
===================================================================
--- vm_method.c	(revision 24144)
+++ vm_method.c	(revision 24145)
@@ -814,11 +814,10 @@
     if (!orig_me || orig_me->type == VM_METHOD_TYPE_UNDEF) {
 	if (TYPE(klass) == T_MODULE) {
 	    orig_me = search_method(rb_cObject, def);
-
-	    if (!orig_me || !orig_me->type == VM_METHOD_TYPE_UNDEF) {
-		rb_print_undef(klass, def, 0);
-	    }
 	}
+	if (!orig_me || !orig_me->type == VM_METHOD_TYPE_UNDEF) {
+	    rb_print_undef(klass, def, 0);
+	}
     }
     if (FL_TEST(klass, FL_SINGLETON)) {
 	singleton = rb_iv_get(klass, "__attached__");
Index: test/ruby/test_alias.rb
===================================================================
--- test/ruby/test_alias.rb	(revision 24144)
+++ test/ruby/test_alias.rb	(revision 24145)
@@ -61,4 +61,12 @@
     }.call
     assert_raise(SecurityError) { d.mm }
   end
+
+  def test_nonexistmethod
+    assert_raise(NameError){
+      Class.new{
+        alias_method :foobarxyzzy, :barbaz
+      }
+    }
+  end
 end

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

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