mruby-metaprog: make #global_variables, #local_variables private

This commit is contained in:
Yukihiro "Matz" Matsumoto
2025-02-18 09:11:54 +09:00
parent 95b30a38dc
commit d7a4275dd1
2 changed files with 5 additions and 28 deletions
+2 -2
View File
@@ -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 */
+3 -26
View File
@@ -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