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