@@ -2,6 +2,19 @@ defmodule ElixirScript.FindUsed do
22 @ moduledoc false
33 alias ElixirScript.State , as: ModuleState
44
5+ @ erlang_modules [
6+ :erlang ,
7+ :maps ,
8+ :lists ,
9+ :gen ,
10+ :elixir_errors ,
11+ :supervisor ,
12+ :application ,
13+ :code ,
14+ :elixir_utils ,
15+ :file
16+ ]
17+
518 @ doc """
619 Takes a list of entry modules and finds modules they use along with
720 documenting the functions used. The data collected about used functions
@@ -127,7 +140,8 @@ defmodule ElixirScript.FindUsed do
127140 do_execute ( module , state . pid )
128141 end
129142 end
130- Enum . each ( params , & walk ( & 1 , state ) )
143+
144+ walk ( params , state )
131145 end
132146
133147 defp walk ( { :for , _ , generators } , state ) do
@@ -181,11 +195,11 @@ defmodule ElixirScript.FindUsed do
181195
182196 if rescue_block do
183197 Enum . each ( rescue_block , fn
184- { :-> , _ , [ [ { :in , _ , [ param , names ] } ] , body ] } ->
185- walk ( { [ ] , [ param ] , [ { { :. , [ ] , [ Enum , :member? ] } , [ ] , [ param , names ] } ] , body } , state )
186- { :-> , _ , [ [ param ] , body ] } ->
187- walk ( { [ ] , [ param ] , [ ] , body } , state )
188- end )
198+ { :-> , _ , [ [ { :in , _ , [ param , names ] } ] , body ] } ->
199+ walk ( { [ ] , [ param ] , [ { { :. , [ ] , [ Enum , :member? ] } , [ ] , [ param , names ] } ] , body } , state )
200+ { :-> , _ , [ [ param ] , body ] } ->
201+ walk ( { [ ] , [ param ] , [ ] , body } , state )
202+ end )
189203 end
190204
191205 if catch_block do
@@ -205,15 +219,8 @@ defmodule ElixirScript.FindUsed do
205219 Enum . each ( clauses , & walk ( & 1 , state ) )
206220 end
207221
208- defp walk ( { { :. , _ , [ :erlang , _ ] } , _ , _ } , _state ) do
209- nil
210- end
211-
212- defp walk ( { { :. , _ , [ :lists , _ ] } , _ , _ } , _state ) do
213- nil
214- end
215-
216- defp walk ( { { :. , _ , [ :maps , _ ] } , _ , _ } , _state ) do
222+ defp walk ( { { :. , _ , [ module , function ] } , _ , params } , _state ) when module in @ erlang_modules do
223+ IO . inspect { module , function , length ( params ) }
217224 nil
218225 end
219226
0 commit comments