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.
This commit is contained in:
Yukihiro "Matz" Matsumoto
2025-02-18 07:46:56 +09:00
parent 3a56106d6c
commit ff6149dea7
2 changed files with 4 additions and 26 deletions
+2
View File
@@ -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 */
+2 -26
View File
@@ -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'