mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
iseq.c: child iseq encoding
* iseq.c (iseq_inspect): preserve the encoding of child iseqs. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61767 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
83ac2dfe0f
commit
64be4cfb5e
2 changed files with 7 additions and 2 deletions
4
iseq.c
4
iseq.c
|
@ -1780,8 +1780,8 @@ iseq_inspect(const rb_iseq_t *iseq)
|
||||||
return rb_sprintf("#<ISeq: uninitialized>");
|
return rb_sprintf("#<ISeq: uninitialized>");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return rb_sprintf("#<ISeq:%s@%s:%d (%d,%d)-(%d,%d)>",
|
return rb_sprintf("#<ISeq:%"PRIsVALUE"@%"PRIsVALUE":%d (%d,%d)-(%d,%d)>",
|
||||||
RSTRING_PTR(iseq->body->location.label), RSTRING_PTR(rb_iseq_path(iseq)),
|
iseq->body->location.label, rb_iseq_path(iseq),
|
||||||
iseq->body->location.code_location.beg_pos.lineno,
|
iseq->body->location.code_location.beg_pos.lineno,
|
||||||
iseq->body->location.code_location.beg_pos.lineno,
|
iseq->body->location.code_location.beg_pos.lineno,
|
||||||
iseq->body->location.code_location.beg_pos.column,
|
iseq->body->location.code_location.beg_pos.column,
|
||||||
|
|
|
@ -91,6 +91,11 @@ class TestISeq < Test::Unit::TestCase
|
||||||
asm = compile(src).disasm
|
asm = compile(src).disasm
|
||||||
assert_equal(src.encoding, asm.encoding)
|
assert_equal(src.encoding, asm.encoding)
|
||||||
assert_predicate(asm, :valid_encoding?)
|
assert_predicate(asm, :valid_encoding?)
|
||||||
|
|
||||||
|
obj = Object.new
|
||||||
|
name = "\u{2603 26a1}"
|
||||||
|
obj.instance_eval("def #{name}; tap {}; end")
|
||||||
|
assert_include(RubyVM::InstructionSequence.of(obj.method(name)).disasm, name)
|
||||||
end
|
end
|
||||||
|
|
||||||
LINE_BEFORE_METHOD = __LINE__
|
LINE_BEFORE_METHOD = __LINE__
|
||||||
|
|
Loading…
Add table
Reference in a new issue