We looked at this issue in today's developer meeting.
Koichi pointed out that you have to consider redefinition of
String#-@. You need to take care about such situation, like
we do already for #freeze.
Oops, I already committed r57828 before this message.
opt_str_freeze insn already takes care of redefinition in
insns.def; so extra check for compile.c won't be affected.
Oops, I already committed r57828 before this message.
opt_str_freeze insn already takes care of redefinition in
insns.def; so extra check for compile.c won't be affected.
now it checks only 'freeze' redefinition (*1). I'll fix it before 2.5
release (maybe with new a instruction (*2), which replace existing
opt_str_freeze).
*1:
class String
def -@
p :redef
self
end
end
p -'foo'
*2:
opt_str_freeze "foo"
->
opt_frozen "foo", label # jump if String#freeze or String#-@
Oops, I already committed r57828 before this message.
opt_str_freeze insn already takes care of redefinition in
insns.def; so extra check for compile.c won't be affected.
now it checks only 'freeze' redefinition (*1). I'll fix it before 2.5
release (maybe with new a instruction (*2), which replace existing
opt_str_freeze).
You're absolutely right; sorry about that. I will fix simply, for now.