summaryrefslogtreecommitdiff
path: root/tool/mk_builtin_loader.rb
diff options
context:
space:
mode:
authorTakashi Kokubun <takashikkbn@gmail.com>2022-09-20 07:38:18 +0900
committerTakashi Kokubun <takashikkbn@gmail.com>2022-09-20 07:38:58 +0900
commit76a0e81f409baf810411677e115bce4f4b05ba5e (patch)
tree8ec735906ee3f878f6f7bea14f00c12dcda86f1c /tool/mk_builtin_loader.rb
parentf8dad616c2ee2d83b3162da8d86865b0f2a782de (diff)
downloadruby-76a0e81f409baf810411677e115bce4f4b05ba5e.tar.gz
Support trailing commas in builtin
`foo(Primitive.cexpr!('Qnil'),)` causes SEGV without this change.
Diffstat (limited to 'tool/mk_builtin_loader.rb')
-rw-r--r--tool/mk_builtin_loader.rb7
1 files changed, 6 insertions, 1 deletions
diff --git a/tool/mk_builtin_loader.rb b/tool/mk_builtin_loader.rb
index 784dd30dc1..c5bbd79a80 100644
--- a/tool/mk_builtin_loader.rb
+++ b/tool/mk_builtin_loader.rb
@@ -87,7 +87,7 @@ def collect_builtin base, tree, name, bs, inlines, locals = nil
tree = tree[2]
next
when :method_add_arg
- _, mid, (_, (_, args)) = tree
+ _method_add_arg, mid, (_arg_paren, args) = tree
case mid.first
when :call
_, recv, sep, mid = mid
@@ -96,6 +96,11 @@ def collect_builtin base, tree, name, bs, inlines, locals = nil
else
mid = nil
end
+ # w/ trailing comma: [[:method_add_arg, ...]]
+ # w/o trailing comma: [:args_add_block, [[:method_add_arg, ...]]]
+ if args && args.first == :args_add_block
+ args = args[1]
+ end
when :vcall
_, mid = tree
when :command # FCALL