Skip to content

Commit

Permalink
Improve unused includes diagnostic runtime
Browse files Browse the repository at this point in the history
...By considering only those POIs relevant for this diagnostic, e.g.
POIs which MAY potentially be defined in headers. This often
significantly cuts number of POIs to iterate over which
directly speed up diagnostic.
  • Loading branch information
keynslug committed Jun 21, 2021
1 parent 8367a34 commit db3e22d
Showing 1 changed file with 14 additions and 6 deletions.
20 changes: 14 additions & 6 deletions apps/els_lsp/src/els_unused_includes_diagnostics.erl
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,7 @@ run(Uri) ->
{error, _Error} ->
[];
{ok, Document} ->
Includes = els_dt_document:pois(Document, [include, include_lib]),
UnusedIncludes = find_unused_includes(Document, Includes),
UnusedIncludes = find_unused_includes(Document),
[ els_diagnostics:make_diagnostic(
els_protocol:range(inclusion_range(UI, Document))
, <<"Unused file: ", (filename:basename(UI))/binary>>
Expand All @@ -52,15 +51,24 @@ source() ->
%%==============================================================================
%% Internal Functions
%%==============================================================================
-spec find_unused_includes(els_dt_document:item(), [poi()]) -> [uri()].
find_unused_includes(#{uri := Uri} = Document, Includes) ->
-spec find_unused_includes(els_dt_document:item()) -> [uri()].
find_unused_includes(#{uri := Uri} = Document) ->
Graph = expand_includes(Document),
POIs = els_dt_document:pois(Document),
POIs = els_dt_document:pois(Document,
[ application
, implicit_fun
, import_entry
, macro
, record_expr
, record_field
, type_application
, export_type_entry
]),
IncludedUris = els_diagnostics_utils:included_uris(Document),
Fun = fun(POI, Acc) ->
update_unused(Graph, Uri, POI, Acc)
end,
UnusedIncludes = lists:foldl(Fun, IncludedUris, POIs -- Includes),
UnusedIncludes = lists:foldl(Fun, IncludedUris, POIs),
digraph:delete(Graph),
UnusedIncludes.

Expand Down

0 comments on commit db3e22d

Please sign in to comment.