Skip to content

Commit 0c06fa3

Browse files
committed
fix: handling function lookup if call is followed by pipe
1 parent c69eb01 commit 0c06fa3

File tree

2 files changed

+32
-2
lines changed

2 files changed

+32
-2
lines changed

lib/refactorex/refactor/function.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@ defmodule Refactorex.Refactor.Function do
2626
def find_definitions(%{node: {:/, _, _}} = zipper),
2727
do: find_definitions(Z.down(zipper))
2828

29-
def find_definitions(%{node: {name, _, args}} = zipper) do
29+
def find_definitions(%{node: {name, _, args} = node} = zipper) do
3030
num_args =
3131
case Z.up(zipper) do
3232
%{node: {:/, _, [_, {:__block__, _, [num_args]}]}} ->
3333
num_args
3434

35-
%{node: {:|>, _, _}} ->
35+
%{node: {:|>, _, [_, ^node]}} ->
3636
length(args) + 1
3737

3838
_ ->

test/refactor/function/rename_function_test.exs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,36 @@ defmodule Refactorex.Refactor.Function.RenameFunctionTest do
103103
)
104104
end
105105

106+
test "renames function call followed by pipe" do
107+
assert_refactored(
108+
RenameFunction,
109+
"""
110+
defmodule Foo do
111+
def foo() do
112+
# v
113+
extracted_function(zipper, aliases)
114+
# ^
115+
|> IO.inspect()
116+
end
117+
118+
def extracted_function(a, b) do
119+
end
120+
end
121+
""",
122+
"""
123+
defmodule Foo do
124+
def foo() do
125+
#{placeholder()}(zipper, aliases)
126+
|> IO.inspect()
127+
end
128+
129+
def #{placeholder()}(a, b) do
130+
end
131+
end
132+
"""
133+
)
134+
end
135+
106136
test "renames the selected public function with multiple definitions" do
107137
assert_refactored(
108138
RenameFunction,

0 commit comments

Comments
 (0)