From db53705acda9b733be7fdf71996143caf7c8ae7a Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Tue, 5 Mar 2024 20:43:23 -0500 Subject: [ruby/prism] Implement singleton methods for ripper translation https://github.com/ruby/prism/commit/b7cd5c8e74 --- lib/prism/translation/ripper.rb | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/prism/translation/ripper.rb b/lib/prism/translation/ripper.rb index 0c2496fe80..a08f39afba 100644 --- a/lib/prism/translation/ripper.rb +++ b/lib/prism/translation/ripper.rb @@ -1044,6 +1044,13 @@ module Prism # def self.foo; end # ^^^^^^^^^^^^^^^^^ def visit_def_node(node) + receiver = visit(node.receiver) + operator = + if !node.operator_loc.nil? + bounds(node.operator_loc) + visit_token(node.operator) + end + bounds(node.name_loc) name = visit_token(node.name_loc.slice) @@ -1070,7 +1077,12 @@ module Prism on_bodystmt(body, nil, nil, nil) end - on_def(name, parameters, bodystmt) + bounds(node.location) + if receiver.nil? + on_def(name, parameters, bodystmt) + else + on_defs(receiver, operator, name, parameters, bodystmt) + end end # defined? a -- cgit v1.2.3