1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* compile.c (iseq_compile_each): fix to allow self.x=

if x= is private.
* bootstraptest/test_method.rb: add a test for above.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13093 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
ko1 2007-08-18 05:07:07 +00:00
parent 3f025d2078
commit 0c031468fe
3 changed files with 18 additions and 0 deletions

View file

@ -1,3 +1,10 @@
Sat Aug 18 13:55:58 2007 Koichi Sasada <ko1@atdot.net>
* compile.c (iseq_compile_each): fix to allow self.x=
if x= is private.
* bootstraptest/test_method.rb: add a test for above.
Sat Aug 18 14:05:34 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
* parse.y (reg_compile_gen): obtain error info from errinfo.

View file

@ -906,3 +906,13 @@ assert_equal %q{[:ok, :ok, :ok, :ok, :ok, :ok, :ng, :ng]}, %q{
$ans
}
assert_equal 'ok', %q{
class C
def x=(n)
end
def m
self.x = :ok
end
end
C.new.m
}

View file

@ -4359,6 +4359,7 @@ iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE * node, int poped)
argc = setup_args(iseq, args, node->nd_args, &flag);
if (node->nd_recv == (NODE *) 1) {
flag |= VM_CALL_FCALL_BIT;
ADD_INSN(recv, nd_line(node), putself);
}
else {