Permalink
Browse files

xref: allow multiple behaviours and ignore_xref pragmas

  • Loading branch information...
1 parent eaad535 commit 7bd318c219bc283d5df16a0401aae00546fc8eea @dLuna dLuna committed with tuncer Sep 13, 2012
Showing with 6 additions and 12 deletions.
  1. +6 −12 src/rebar_xref.erl
View
@@ -146,25 +146,19 @@ filter_away_ignored(UnusedExports) ->
%% any functions marked to ignore. We then use this list to mask any
%% functions marked as unused exports by xref
F = fun(Mod) ->
- Attrs = kf(attributes, Mod:module_info()),
- Ignore = kf(ignore_xref, Attrs),
- Callbacks =
- [B:behaviour_info(callbacks) || B <- kf(behaviour, Attrs)],
+ Attrs = Mod:module_info(attributes),
+ Ignore = keyall(ignore_xref, Attrs),
+ Callbacks = [B:behaviour_info(callbacks)
+ || B <- keyall(behaviour, Attrs)],
[{Mod, F, A} || {F, A} <- Ignore ++ lists:flatten(Callbacks)]
end,
AttrIgnore =
lists:flatten(
lists:map(F, lists:usort([M || {M, _, _} <- UnusedExports]))),
[X || X <- UnusedExports, not lists:member(X, AttrIgnore)].
-
-kf(Key, List) ->
- case lists:keyfind(Key, 1, List) of
- {Key, Value} ->
- Value;
- false ->
- []
- end.
+keyall(Key, List) ->
+ lists:flatmap(fun({K, L}) when Key =:= K -> L; (_) -> [] end, List).
display_mfas([], _Message) ->
ok;

0 comments on commit 7bd318c

Please sign in to comment.