@@ -97,6 +97,7 @@ defmodule ElixirScript.FindUsedModules do
9797 ModuleState . put_module ( pid , module , % { protocol: true , impls: impls , functions: functions } )
9898
9999 Enum . each ( implementations , fn { impl , info } ->
100+ ModuleState . add_used_module ( pid , module , impl )
100101 walk_module ( impl , info , pid )
101102 end )
102103 end
@@ -136,6 +137,7 @@ defmodule ElixirScript.FindUsedModules do
136137 defp walk ( form , state ) when is_atom ( form ) and form not in [ BitString , Function , PID , Port , Reference , Any , Elixir ] do
137138 if ElixirScript.Translate.Module . is_elixir_module ( form ) and ! ElixirScript.Translate.Module . is_js_module ( form , state ) do
138139 if ModuleState . get_module ( state . pid , form ) == nil do
140+ ModuleState . add_used_module ( state . pid , state . module , form )
139141 do_execute ( form , state . pid )
140142 end
141143 end
@@ -165,6 +167,7 @@ defmodule ElixirScript.FindUsedModules do
165167 defp walk ( { :% , _ , [ module , params ] } , state ) do
166168 if ElixirScript.Translate.Module . is_elixir_module ( module ) and ! ElixirScript.Translate.Module . is_js_module ( module , state ) do
167169 if ModuleState . get_module ( state . pid , module ) == nil do
170+ ModuleState . add_used_module ( state . pid , state . module , module )
168171 do_execute ( module , state . pid )
169172 end
170173 end
@@ -300,6 +303,7 @@ defmodule ElixirScript.FindUsedModules do
300303 cond do
301304 ElixirScript.Translate.Module . is_elixir_module ( module ) ->
302305 if ModuleState . get_module ( state . pid , module ) == nil do
306+ ModuleState . add_used_module ( state . pid , state . module , module )
303307 do_execute ( module , state . pid )
304308 end
305309 true ->
0 commit comments