From ff6149dea738ded10080e0ec4b08993ca1b29d22 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 18 Feb 2025 07:46:56 +0900 Subject: [PATCH] kernel.c: removed some Kernel singleton methods Since virtually no one calls `Kernel.block_given?` but just `block_given?`. For the cases `raise` is redefined (like Ruby/Tk), `Kernel.raise` is kept. --- src/kernel.c | 2 ++ test/t/kernel.rb | 28 ++-------------------------- 2 files changed, 4 insertions(+), 26 deletions(-) diff --git a/src/kernel.c b/src/kernel.c index dc108aa19..834c78cbc 100644 --- a/src/kernel.c +++ b/src/kernel.c @@ -576,8 +576,10 @@ mrb_init_kernel(mrb_state *mrb) struct RClass *krn; mrb->kernel_module = krn = mrb_define_module_id(mrb, MRB_SYM(Kernel)); /* 15.3.1 */ +#if 0 mrb_define_class_method_id(mrb, krn, MRB_SYM_Q(block_given), mrb_f_block_given_p_m, MRB_ARGS_NONE()); /* 15.3.1.2.2 */ mrb_define_class_method_id(mrb, krn, MRB_SYM_Q(iterator), mrb_f_block_given_p_m, MRB_ARGS_NONE()); /* 15.3.1.2.5 */ +#endif mrb_define_class_method_id(mrb, krn, MRB_SYM(raise), mrb_f_raise, MRB_ARGS_OPT(2)); /* 15.3.1.2.12 */ mrb_define_method_id(mrb, krn, MRB_OPSYM(eqq), mrb_eqq_m, MRB_ARGS_REQ(1)); /* 15.3.1.3.2 */ diff --git a/test/t/kernel.rb b/test/t/kernel.rb index ceb2cebc2..934d9aaba 100644 --- a/test/t/kernel.rb +++ b/test/t/kernel.rb @@ -5,35 +5,11 @@ assert('Kernel', '15.3.1') do assert_equal Module, Kernel.class end -assert('Kernel.block_given?', '15.3.1.2.2') do - def bg_try(&b) - if Kernel.block_given? - yield - else - "no block" - end - end - - assert_false Kernel.block_given? - # test without block - assert_equal "no block", bg_try - # test with block - assert_equal "block" do - bg_try { "block" } - end - # test with block - assert_equal "block" do - bg_try do - "block" - end - end -end +# Kernel.block_given? is not provided by mruby. '15.3.1.2.2' # Kernel.eval is provided by the mruby-eval mrbgem. '15.3.1.2.3' -assert('Kernel.iterator?', '15.3.1.2.5') do - assert_false Kernel.iterator? -end +# Kernel.iterator? is not provided by mruby. '15.3.1.2.5' # Kernel.lambda is not provided by mruby. '15.3.1.2.6'