From e7b8d32e166815f2e7edebf32aa178915d191b8c Mon Sep 17 00:00:00 2001 From: Yusuke Endoh Date: Fri, 16 Dec 2022 07:31:27 +0900 Subject: Stop using receiver#inspect for "undefined method" errors ``` 42.time #=> undefined method `time' for object Integer (NoMethodError) class Foo privatee #=> undefined local variable or method 'privatee' for class Foo (NoMethodError) end s = "" def s.foo = nil s.bar #=> undefined method `bar' for extended object String (NoMethodError) ``` [Feature #18285] --- vm_eval.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'vm_eval.c') diff --git a/vm_eval.c b/vm_eval.c index 1caa76000b..f91d7d75cd 100644 --- a/vm_eval.c +++ b/vm_eval.c @@ -933,7 +933,7 @@ rb_make_no_method_exception(VALUE exc, VALUE format, VALUE obj, VALUE name = argv[0]; if (!format) { - format = rb_fstring_lit("undefined method `%s' for %s%s%s"); + format = rb_fstring_lit("undefined method `%1$s' for %3$s%4$s"); } if (exc == rb_eNoMethodError) { VALUE args = rb_ary_new4(argc - 1, argv + 1); @@ -965,17 +965,17 @@ raise_method_missing(rb_execution_context_t *ec, int argc, const VALUE *argv, VA stack_check(ec); if (last_call_status & MISSING_PRIVATE) { - format = rb_fstring_lit("private method `%s' called for %s%s%s"); + format = rb_fstring_lit("private method `%1$s' called for %3$s%4$s"); } else if (last_call_status & MISSING_PROTECTED) { - format = rb_fstring_lit("protected method `%s' called for %s%s%s"); + format = rb_fstring_lit("protected method `%1$s' called for %3$s%4$s"); } else if (last_call_status & MISSING_VCALL) { - format = rb_fstring_lit("undefined local variable or method `%s' for %s%s%s"); + format = rb_fstring_lit("undefined local variable or method `%1$s' for %3$s%4$s"); exc = rb_eNameError; } else if (last_call_status & MISSING_SUPER) { - format = rb_fstring_lit("super: no superclass method `%s' for %s%s%s"); + format = rb_fstring_lit("super: no superclass method `%1$s' for %3$s%4$s"); } { -- cgit v1.2.1