From 9be3eb277649695401bef21faf65639dc824ff95 Mon Sep 17 00:00:00 2001 From: Fred Snyder Date: Sun, 26 Apr 2020 16:37:45 -0400 Subject: [PATCH] Map parameters to updated module functions. --- .../legacy/node_processors/send_node.rb | 2 ++ spec/source_map/mapper_spec.rb | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/lib/solargraph/parser/legacy/node_processors/send_node.rb b/lib/solargraph/parser/legacy/node_processors/send_node.rb index bf59bbb65..dcb262721 100644 --- a/lib/solargraph/parser/legacy/node_processors/send_node.rb +++ b/lib/solargraph/parser/legacy/node_processors/send_node.rb @@ -153,6 +153,7 @@ def process_module_function location: ref.location, closure: ref.closure, name: ref.name, + parameters: ref.parameters, comments: ref.comments, scope: :class, visibility: :public, @@ -162,6 +163,7 @@ def process_module_function location: ref.location, closure: ref.closure, name: ref.name, + parameters: ref.parameters, comments: ref.comments, scope: :instance, visibility: :private, diff --git a/spec/source_map/mapper_spec.rb b/spec/source_map/mapper_spec.rb index 16ce496ac..0798fd9f3 100644 --- a/spec/source_map/mapper_spec.rb +++ b/spec/source_map/mapper_spec.rb @@ -1274,4 +1274,23 @@ def foo(bar); end )) expect(map.first_pin('#foo').explicit?).to be(false) end + + it 'maps parameters to updated module_function methods' do + map = Solargraph::SourceMap.load_string(%( + module Foo + def bar(baz) + end + + module_function :bar + end + )) + + cpin = map.first_pin('Foo.bar') + expect(cpin.parameters).to be_one + expect(cpin.parameters.first.name).to eq('baz') + + ipin = map.first_pin('Foo#bar') + expect(ipin.parameters).to be_one + expect(ipin.parameters.first.name).to eq('baz') + end end