Debug unexpectedly changed path

This commit is contained in:
Nobuyoshi Nakada 2024-05-26 20:14:18 +09:00
parent 0f9e50b8c5
commit bc50f2a3f1
No known key found for this signature in database
GPG Key ID: 3582D74E1FEE4465
2 changed files with 11 additions and 4 deletions

View File

@ -2719,8 +2719,10 @@ syntax_error_with_path(VALUE exc, VALUE path, VALUE *mesg, rb_encoding *enc)
rb_ivar_set(exc, id_i_path, path);
}
else {
if (rb_attr_get(exc, id_i_path) != path) {
rb_raise(rb_eArgError, "SyntaxError#path changed");
VALUE old_path = rb_attr_get(exc, id_i_path);
if (old_path != path) {
rb_raise(rb_eArgError, "SyntaxError#path changed: %+"PRIsVALUE"->%+"PRIsVALUE,
old_path, path);
}
VALUE s = *mesg = rb_attr_get(exc, idMesg);
if (RSTRING_LEN(s) > 0 && *(RSTRING_END(s)-1) != '\n')

View File

@ -640,11 +640,16 @@ class TestRubyLiteral < Test::Unit::TestCase
end
begin
r2 = eval(s)
rescue NameError, SyntaxError
rescue SyntaxError => e
r2 = :err
rescue NameError
r2 = :err
end
r2 = :err if Range === r2
assert_equal(r1, r2, "Float(#{s.inspect}) != eval(#{s.inspect})")
s = s.inspect
mesg = "Float(#{s}) != eval(#{s})"
mesg << ":" << e.message if e
assert_equal(r1, r2, mesg)
}
}
}