Open NJichev opened 4 months ago
similar to #437 , i think i would expect this work work as follows
defmodule Example do
def run(list) do
square = fn x -> x * x end
Enum.map(list, square)
end
end
refactors to
defmodule Example do
def run(list) do
square = &square/1
Enum.map(list, square)
end
defp square(x) do
x * x
end
end
this reduces complexity, and fits with the more intuitive (IMO) behavior if you were to transform an inline anonymous function, like this
defmodule Example do
def run(list) do
Enum.map(list, fn x -> x * x end)
end
end
refactors to
defmodule Example do
def run(list) do
Enum.map(list, &square/1)
end
defp square(x) do
x * x
end
end
A workspace command that extracts an anonymous function to a private one.
Example:
Hovering the variable of the anonymous function or the anonymous function definition and using the workspace command should result in:
Consider the following scenarios:
square.(3)
->square(3)