From 65e0e5bbd30183a45929deb88260fa32823f7c97 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 12 Nov 2024 06:37:03 +0900 Subject: [PATCH] class.c (mrb_method_missing): add receiver's class to clarify We needed to modify a lot of test code that expected the old style. --- mrbgems/mruby-bin-mirb/bintest/mirb.rb | 2 +- mrbgems/mruby-bin-mruby/bintest/mruby.rb | 4 ++-- src/class.c | 2 +- test/t/kernel.rb | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/mrbgems/mruby-bin-mirb/bintest/mirb.rb b/mrbgems/mruby-bin-mirb/bintest/mirb.rb index 57f8dc8f4..1650444af 100644 --- a/mrbgems/mruby-bin-mirb/bintest/mirb.rb +++ b/mrbgems/mruby-bin-mirb/bintest/mirb.rb @@ -54,5 +54,5 @@ a = 5 A.call TESTCODE - assert_kind_of Integer, o =~ /\bundefined method 'a' \(NoMethodError\).*=> 5\b.*=> 1\b/m + assert_kind_of Integer, o =~ /\bundefined method 'a' .*\(NoMethodError\).*=> 5\b.*=> 1\b/m end diff --git a/mrbgems/mruby-bin-mruby/bintest/mruby.rb b/mrbgems/mruby-bin-mruby/bintest/mruby.rb index a626a13cd..27283d3d9 100644 --- a/mrbgems/mruby-bin-mruby/bintest/mruby.rb +++ b/mrbgems/mruby-bin-mruby/bintest/mruby.rb @@ -166,8 +166,8 @@ assert('top level local variables are in file scope') do system "#{cmd('mrbc')} -g -o #{amrb.path} #{arb.path}" File.write brb.path, 'p a' system "#{cmd('mrbc')} -g -o #{bmrb.path} #{brb.path}" - assert_mruby("", /:1: undefined method 'a' \(NoMethodError\)\n\z/, false, ["-r", arb.path, brb.path]) - assert_mruby("", /:1: undefined method 'a' \(NoMethodError\)\n\z/, false, ["-b", "-r", amrb.path, bmrb.path]) + assert_mruby("", /:1: undefined method 'a' .*\(NoMethodError\)\n\z/, false, ["-r", arb.path, brb.path]) + assert_mruby("", /:1: undefined method 'a' .*\(NoMethodError\)\n\z/, false, ["-b", "-r", amrb.path, bmrb.path]) File.write crb.path, 'a, b, c = 1, 2, 3; A = -> { b = -2; [a, b, c] }' system "#{cmd('mrbc')} -g -o #{cmrb.path} #{crb.path}" diff --git a/src/class.c b/src/class.c index 6c82ad218..10cb09751 100644 --- a/src/class.c +++ b/src/class.c @@ -2844,7 +2844,7 @@ mrb_value mrb_obj_id_m(mrb_state *mrb, mrb_value self); mrb_noreturn void mrb_method_missing(mrb_state *mrb, mrb_sym name, mrb_value self, mrb_value args) { - mrb_no_method_error(mrb, name, args, "undefined method '%n'", name); + mrb_no_method_error(mrb, name, args, "undefined method '%n' for %T", name, self); } /* 15.3.1.3.30 */ diff --git a/test/t/kernel.rb b/test/t/kernel.rb index 0a70ec0d2..dd473fdb8 100644 --- a/test/t/kernel.rb +++ b/test/t/kernel.rb @@ -352,7 +352,7 @@ assert('Kernel#method_missing', '15.3.1.3.30') do end a = String.new - msg = "undefined method 'no_method_named_this'" + msg = "undefined method 'no_method_named_this' for String" assert_raise_with_message(NoMethodError, msg) do a.no_method_named_this end