summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-02-06 06:50:40 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-02-06 06:50:40 +0000
commitc27ef66dd7dc00fa22dce416dd2080f5da501a47 ()
treeb009347de3cc64e15b080506249a52e6db7a7b2b
parent42ce75cdff741d69927e407ac57b68dd58408111 (diff)
* compile.c (iseq_compile_each): fix setting is_local flag.
* yarvtest/test_class.rb: add a test for class local isntance variable. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11640 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog6
-rw-r--r--compile.c2
-rw-r--r--yarvtest/test_class.rb21
3 files changed, 28 insertions, 1 deletions
@@ -1,3 +1,9 @@
Tue Feb 6 14:15:34 2007 Koichi Sasada <[email protected]>
* compile.c, insns.def: remove (get|set)instancevariable2 and add a
@@ -3325,7 +3325,7 @@ iseq_compile_each(yarv_iseq_t *iseq, LINK_ANCHOR *ret, NODE * node, int poped)
}
case NODE_IASGN:
case NODE_IASGN2:{
- int is_local = (nd_type(node) == NODE_IVAR2) ? 1 : 0;
COMPILE(ret, "lvalue", node->nd_value);
if (!poped) {
ADD_INSN(ret, nd_line(node), dup);
@@ -754,6 +754,27 @@ class TestClass < YarvTestBase
ae %q{
class C
def initialize
@_c = 1
end
end