Current section

Files

Jump to
cleam src internal@checker.erl
Raw

src/internal@checker.erl

-module(internal@checker).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([not_used_functions/2]).
-spec not_used_functions(
internal@fs:files_dir(),
gleam@option:option(internal@fs:files_dir())
) -> list({internal@ast_fun:public_fun(), internal@fs:file_path()}).
not_used_functions(Dir, Test_dir) ->
Fp_with_ast = internal@ast:files_paths_with_ast(Dir, Test_dir),
gleam@list:flat_map(
Fp_with_ast,
fun(_use0) ->
{File_path, File_ast, Another_files_ast} = _use0,
Public_funs = internal@ast_fun:public_funs(File_ast),
gleam@list:flat_map(
Public_funs,
fun(Public_fun) ->
Is_public_fun_used = internal@ast_fun:is_pub_fun_used(
Another_files_ast,
Public_fun,
internal@fs:file_path_to_module_full_name(
Dir,
File_path
)
),
case Is_public_fun_used of
true ->
[];
false ->
[{Public_fun, File_path}]
end
end
)
end
).