yarv-diff:159
From: ko1 atdot.net
Date: 19 Dec 2005 19:05:55 -0000
Subject: [yarv-diff:159] r318 - in trunk: . yarvtest
Author: ko1
Date: 2005-12-20 04:05:54 +0900 (Tue, 20 Dec 2005)
New Revision: 318
Modified:
trunk/ChangeLog
trunk/compile.c
trunk/test.rb
trunk/yarvtest/test_bin.rb
Log:
* compile.c : fix self::Const access
* yarvtest/test_bin.rb : add a test for above
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2005-12-19 16:59:26 UTC (rev 317)
+++ trunk/ChangeLog 2005-12-19 19:05:54 UTC (rev 318)
@@ -4,6 +4,13 @@
# from Mon, 03 May 2004 01:24:19 +0900
#
+2005-12-20(Tue) 04:04:45 +0900 Koichi Sasada <ko1 atdot.net>
+
+ * compile.c : fix self::Const access
+
+ * yarvtest/test_bin.rb : add a test for above
+
+
2005-12-20(Tue) 01:52:52 +0900 Koichi Sasada <ko1 atdot.net>
* insns.def : fix to expand VALUES value
Modified: trunk/compile.c
===================================================================
--- trunk/compile.c 2005-12-19 16:59:26 UTC (rev 317)
+++ trunk/compile.c 2005-12-19 19:05:54 UTC (rev 318)
@@ -2123,11 +2123,6 @@
debugi("compile_colon2 - colon2", node->nd_mid);
ADD_INSN1(body, nd_line(node), getconstant, ID2SYM(node->nd_mid));
break;
- case NODE_SELF:
- /* optimize for "self::..." */
- ADD_INSN(body, nd_line(node), pop);
- ADD_INSN(body, nd_line(node), putself);
- break;
default:
COMPILE(pref, "const colon2 prefix", node);
break;
Modified: trunk/test.rb
===================================================================
--- trunk/test.rb 2005-12-19 16:59:26 UTC (rev 317)
+++ trunk/test.rb 2005-12-19 19:05:54 UTC (rev 318)
@@ -1,3 +1,7 @@
+
+__END__
+
+
ary = [1, 2].partition {|n| n == 1 }
a, b = ary
p a
Modified: trunk/yarvtest/test_bin.rb
===================================================================
--- trunk/yarvtest/test_bin.rb 2005-12-19 16:59:26 UTC (rev 317)
+++ trunk/yarvtest/test_bin.rb 2005-12-19 19:05:54 UTC (rev 318)
@@ -235,6 +235,24 @@
}
end
}
+ ae %q{
+ class C
+ Const = 0
+ def self.foo()
+ self::Const
+ end
+ end
+
+ class D < C
+ Const = 1
+ end
+
+ class E < C
+ Const = 2
+ end
+
+ [C.foo, D.foo, E.foo]
+ }
end
def test_gvar
--
ML: yarv-diff quickml.atdot.net
Info: http://www.atdot.net/~ko1/quickml