summaryrefslogtreecommitdiffhomepage
path: root/test/t/kernel.rb
diff options
context:
space:
mode:
authordearblue <[email protected]>2021-11-24 23:34:31 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2021-11-26 12:18:41 +0900
commit668b12e7566282f6c0165252e2b2f5432964020a (patch)
treee8d2cd84b26ed6980f3c83b5ee7a2ef83225083b /test/t/kernel.rb
parentb631c226eb3e59a813224183bbc9ddc2a01acd0e (diff)
downloadmruby-668b12e7566282f6c0165252e2b2f5432964020a.tar.gz
mruby-668b12e7566282f6c0165252e2b2f5432964020a.zip
Check more `MRB_ARGS_NONE()`
The `__id__` method implemented in the C function has `MRB_ARGS_NONE()` specified, but it is also effective in the following cases. ```ruby p nil.__id__ opts: 1 rescue p :a p nil.method(:__id__).call 1 rescue p :b p nil.method(:__id__).call opts: 1 rescue p :c p nil.method(:__id__).to_proc.call 1 rescue p :d p nil.method(:__id__).to_proc.call opts: 1 rescue p :e p nil.method(:__id__).unbind.bind_call nil, 1 rescue p :f p nil.method(:__id__).unbind.bind_call nil, opts: 1 rescue p :g p nil.__send__ :__id__, 1 rescue p :h p nil.__send__ :__id__, opts: 1 rescue p :i ``` After applying this patch, all items will output symbols in the same way as CRuby. For this purpose, add `MRB_PROC_NOARG` to `struct RProc::flags`.
Diffstat (limited to 'test/t/kernel.rb')
-rw-r--r--test/t/kernel.rb3
1 files changed, 3 insertions, 0 deletions
diff --git a/test/t/kernel.rb b/test/t/kernel.rb
index 0a70ec0d2..06551ae88 100644
--- a/test/t/kernel.rb
+++ b/test/t/kernel.rb
@@ -95,6 +95,9 @@ assert('Kernel#__send__', '15.3.1.3.4') do
args = [:respond_to?, :nil?]
assert_true __send__(*args)
assert_equal [:respond_to?, :nil?], args
+
+ assert_raise(ArgumentError) { nil.__send__(:__id__, 1) }
+ assert_raise(ArgumentError) { nil.__send__(:__id__, opts: 1) }
end
assert('Kernel#block_given?', '15.3.1.3.6') do