[前][次][番号順一覧][スレッド一覧][生データ]

yarv-diff:261

From: ko1 atdot.net
Date: 15 Feb 2006 11:08:06 -0000
Subject: [yarv-diff:261] r424 - in trunk: . yarvtest

Author: ko1
Date: 2006-02-15 20:08:05 +0900 (Wed, 15 Feb 2006)
New Revision: 424

Modified:
   trunk/
   trunk/ChangeLog
   trunk/eval_method.h
   trunk/test.rb
   trunk/yarvtest/test_method.rb
Log:
 r636@lermite:  ko1 | 2006-02-15 20:04:12 +0900
 	* eval_method.h : duplicate NODE_METHOD at make an alias
 
 	* yarvtest/test_method.rb : add a test for above
 



Property changes on: trunk
___________________________________________________________________
Name: svk:merge
   - 81cd9672-7512-7e48-ae48-6936450e977d:/local/yarv/trunk:635
   + 81cd9672-7512-7e48-ae48-6936450e977d:/local/yarv/trunk:636

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2006-02-15 11:06:59 UTC (rev 423)
+++ trunk/ChangeLog	2006-02-15 11:08:05 UTC (rev 424)
@@ -4,6 +4,13 @@
 #  from Mon, 03 May 2004 01:24:19 +0900
 #
 
+2006-02-15(Wed) 20:03:21 +0900  Koichi Sasada  <ko1 atdot.net>
+
+	* eval_method.h : duplicate NODE_METHOD at make an alias
+
+	* yarvtest/test_method.rb : add a test for above
+
+
 2006-02-15(Wed) 19:48:59 +0900  Minero Aoki  <aamine loveruby.net>
 
 	* test/rss: imported from Ruby CVS trunk HEAD.

Modified: trunk/eval_method.h
===================================================================
--- trunk/eval_method.h	2006-02-15 11:06:59 UTC (rev 423)
+++ trunk/eval_method.h	2006-02-15 11:08:05 UTC (rev 424)
@@ -542,7 +542,10 @@
     }
 
     st_insert(RCLASS(klass)->m_tbl, name,
-	      (st_data_t) NEW_FBODY(orig_fbody->nd_body, def));
+	      (st_data_t) NEW_FBODY(
+		  NEW_METHOD(orig_fbody->nd_body->nd_body,
+			     orig_fbody->nd_body->nd_clss,
+			     orig_fbody->nd_body->nd_noex), def));
 
     if (singleton) {
 	rb_funcall(singleton, singleton_added, 1, ID2SYM(name));

Modified: trunk/test.rb
===================================================================
--- trunk/test.rb	2006-02-15 11:06:59 UTC (rev 423)
+++ trunk/test.rb	2006-02-15 11:08:05 UTC (rev 424)
@@ -1,3 +1,6 @@
+
+__END__
+
 class C
   def m
   end
@@ -6,6 +9,7 @@
 end
 
 p C.new.m   # private method `m' called for #<C:0x00002a95eae8c0> (NoMethodError)
+p C.new.mm
 
 __END__
 

Modified: trunk/yarvtest/test_method.rb
===================================================================
--- trunk/yarvtest/test_method.rb	2006-02-15 11:06:59 UTC (rev 423)
+++ trunk/yarvtest/test_method.rb	2006-02-15 11:08:05 UTC (rev 424)
@@ -490,5 +490,28 @@
       C.test
     }
   end
+
+  def test_alias_and_private
+    ae %q{ # [yarv-dev:899]
+      $ans = []
+      class C
+        def m
+          $ans << "OK"
+        end
+      end
+      C.new.m
+      class C
+        alias mm m
+        private :mm
+      end
+      C.new.m
+      begin
+        C.new.mm
+      rescue NoMethodError
+        $ans << "OK!"
+      end
+      $ans
+    }
+  end
 end
 


-- 
ML: yarv-diff quickml.atdot.net
Info: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]