diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | eval_error.c | 2 | ||||
-rw-r--r-- | test/ruby/test_exception.rb | 12 |
3 files changed, 20 insertions, 1 deletions
@@ -1,3 +1,10 @@ +Sat Oct 31 10:22:49 2015 yui-knk <spiketeika@gmail.com> + + * eval_error.c (undef_mesg_for): fix typo. Before this commit + `ArgumentError: malformed format string - %$` was raised when + `NameError#message` is called. [ruby-core:71282] [Bug #11640] + [Fix GH-1077] + Fri Oct 30 21:12:45 2015 Kazuki Tsujimoto <kazuki@callcc.net> * gems/bundled_gems: update to power_assert 0.2.5. diff --git a/eval_error.c b/eval_error.c index 395b9b0196..24bab9eab9 100644 --- a/eval_error.c +++ b/eval_error.c @@ -208,7 +208,7 @@ ruby_error_print(void) error_print(); } -#define undef_mesg_for(v, k) rb_fstring_cstr("undefined"v" method `%1$s' for "k" `%$s'") +#define undef_mesg_for(v, k) rb_fstring_cstr("undefined"v" method `%1$s' for "k" `%2$s'") #define undef_mesg(v) ( \ is_mod ? \ undef_mesg_for(v, "module") : \ diff --git a/test/ruby/test_exception.rb b/test/ruby/test_exception.rb index f8ddd9d3fa..d0ed477916 100644 --- a/test/ruby/test_exception.rb +++ b/test/ruby/test_exception.rb @@ -721,4 +721,16 @@ $stderr = $stdout; raise "\x82\xa0"') do |outs, errs, status| assert_raise(NameError) {a.instance_eval("foo")} assert_raise(NoMethodError, bug10969) {a.public_send("bar", true)} end + + def test_message_of_name_error + begin + Module.new do + module_function :foo + end + rescue => e + error = e + end + + assert_match /\Aundefined method `foo' for module `#<Module:.*>'\z/, error.message + end end |