From d7a4275dd1595a8e57cd0f6a7d23284293406200 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 18 Feb 2025 09:11:54 +0900 Subject: [PATCH] mruby-metaprog: make #global_variables, #local_variables private --- mrbgems/mruby-metaprog/src/metaprog.c | 4 ++-- mrbgems/mruby-metaprog/test/metaprog.rb | 29 +++---------------------- 2 files changed, 5 insertions(+), 28 deletions(-) diff --git a/mrbgems/mruby-metaprog/src/metaprog.c b/mrbgems/mruby-metaprog/src/metaprog.c index 19e66b997..a7838cdcf 100644 --- a/mrbgems/mruby-metaprog/src/metaprog.c +++ b/mrbgems/mruby-metaprog/src/metaprog.c @@ -677,8 +677,8 @@ mrb_mruby_metaprog_gem_init(mrb_state* mrb) struct RClass *krn = mrb->kernel_module; struct RClass *mod = mrb->module_class; - mrb_define_method_id(mrb, krn, MRB_SYM(global_variables), mrb_f_global_variables, MRB_ARGS_NONE()); /* 15.3.1.3.14 (15.3.1.2.4) */ - mrb_define_method_id(mrb, krn, MRB_SYM(local_variables), mrb_local_variables, MRB_ARGS_NONE()); /* 15.3.1.3.28 (15.3.1.2.7) */ + mrb_define_private_method_id(mrb, krn, MRB_SYM(global_variables), mrb_f_global_variables, MRB_ARGS_NONE()); /* 15.3.1.3.14 (15.3.1.2.4) */ + mrb_define_private_method_id(mrb, krn, MRB_SYM(local_variables), mrb_local_variables, MRB_ARGS_NONE()); /* 15.3.1.3.28 (15.3.1.2.7) */ mrb_define_method_id(mrb, krn, MRB_SYM(singleton_class), mrb_singleton_class, MRB_ARGS_NONE()); mrb_define_method_id(mrb, krn, MRB_SYM_Q(instance_variable_defined), mrb_obj_ivar_defined, MRB_ARGS_REQ(1)); /* 15.3.1.3.20 */ diff --git a/mrbgems/mruby-metaprog/test/metaprog.rb b/mrbgems/mruby-metaprog/test/metaprog.rb index 1df239278..896c792bf 100644 --- a/mrbgems/mruby-metaprog/test/metaprog.rb +++ b/mrbgems/mruby-metaprog/test/metaprog.rb @@ -89,10 +89,6 @@ assert('Kernel#singleton_methods', '15.3.1.3.45') do assert_equal singleton_methods.class, Array end -assert('Kernel.global_variables', '15.3.1.2.4') do - assert_equal Array, Kernel.global_variables.class -end - assert('Kernel#global_variables', '15.3.1.3.14') do variables1 = global_variables assert_equal Array, variables1.class @@ -104,6 +100,8 @@ assert('Kernel#global_variables', '15.3.1.3.14') do assert_equal(1, variables2.size - variables1.size) end +# Kernel.global_variables is not provided by mruby. '15.3.1.2.4' + assert('Kernel#local_variables', '15.3.1.3.28') do assert_equal Array, local_variables.class @@ -115,28 +113,7 @@ assert('Kernel#local_variables', '15.3.1.3.28') do assert_equal [:a], local_var_list end -assert('Kernel.local_variables', '15.3.1.2.7') do - a, b = 0, 1 - a += b - - vars = Kernel.local_variables.sort - assert_equal [:a, :b, :vars], vars - - assert_equal [:a, :b, :c, :vars], Proc.new { |a, b| - c = 2 - # Kernel#local_variables: 15.3.1.3.28 - local_variables.sort - }.call(-1, -2) - - a = Object.new - def a.hoge(vars, *, **) - Proc.new { - x, y = 1, 2 - local_variables.sort - } - end - assert_equal([:vars, :x, :y]) { a.hoge(0).call } -end +# Kernel.local_variables is not provided by mruby. '15.3.1.2.7' assert('Kernel#define_singleton_method') do o = Object.new