-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 ).