Current section
Files
Jump to
Current section
Files
src/internal@checker.erl
-module(internal@checker).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([not_used_functions/2, not_used_const/2]).
-spec not_used_functions(
internal@fs:files_dir(),
list({internal@fs:file_path(),
internal@ast:file_ast(),
internal@ast:another_files_ast()})
) -> list({internal@ast:public_member(), internal@fs:file_path()}).
not_used_functions(Dir, Ast_info) ->
gleam@list:flat_map(
Ast_info,
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
{ok, nil} ->
[];
{error, nil} ->
[{Public_fun, File_path}]
end
end
)
end
).
-spec not_used_const(
internal@fs:files_dir(),
list({internal@fs:file_path(),
internal@ast:file_ast(),
internal@ast:another_files_ast()})
) -> list({internal@ast:public_member(), internal@fs:file_path()}).
not_used_const(Dir, Ast_info) ->
gleam@list:flat_map(
Ast_info,
fun(_use0) ->
{File_path, File_ast, Another_files_ast} = _use0,
Public_const = internal@ast_const:public_const(File_ast),
gleam@list:flat_map(
Public_const,
fun(Public_const@1) ->
Is_public_const_used = internal@ast_const:is_pub_const_used(
Another_files_ast,
Public_const@1,
internal@fs:file_path_to_module_full_name(
Dir,
File_path
)
),
case Is_public_const_used of
{ok, nil} ->
[];
{error, nil} ->
[{Public_const@1, File_path}]
end
end
)
end
).