summaryrefslogtreecommitdiff
path: root/vm.c
diff options
context:
space:
mode:
authorKazuki Tsujimoto <kazuki@callcc.net>2021-08-15 09:38:24 +0900
committerKazuki Tsujimoto <kazuki@callcc.net>2021-08-15 09:38:24 +0900
commit4568ba071107a139b9f02fc17aa12f998181abf1 (patch)
tree60cf779325ad60621661e4fcaa40680cbd1c6a59 /vm.c
parent147bdcc436c888a56f81e190d192cd9312015836 (diff)
Show verbose error messages when single pattern match fails
[0] => [0, *, a] #=> [0] length mismatch (given 1, expected 2+) (NoMatchingPatternError) Ignore test failures of typeprof caused by this change for now.
Diffstat (limited to 'vm.c')
-rw-r--r--vm.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/vm.c b/vm.c
index 307c5952f4..f349094190 100644
--- a/vm.c
+++ b/vm.c
@@ -3318,6 +3318,12 @@ f_lambda(VALUE _)
}
static VALUE
+f_sprintf(int c, const VALUE *v, VALUE _)
+{
+ return rb_f_sprintf(c, v);
+}
+
+static VALUE
vm_mtbl(VALUE self, VALUE obj, VALUE sym)
{
vm_mtbl_dump(CLASS_OF(obj), RTEST(sym) ? SYM2ID(sym) : 0);
@@ -3371,6 +3377,7 @@ Init_VM(void)
rb_define_method_id(klass, id_core_hash_merge_ptr, m_core_hash_merge_ptr, -1);
rb_define_method_id(klass, id_core_hash_merge_kwd, m_core_hash_merge_kwd, 2);
rb_define_method_id(klass, id_core_raise, f_raise, -1);
+ rb_define_method_id(klass, id_core_sprintf, f_sprintf, -1);
rb_define_method_id(klass, idProc, f_proc, 0);
rb_define_method_id(klass, idLambda, f_lambda, 0);
rb_define_method(klass, "make_shareable", m_core_make_shareable, 1);