Skip to content

Commit

Permalink
xref: Also ignore targets where applicable
Browse files Browse the repository at this point in the history
  • Loading branch information
essen committed May 31, 2022
1 parent 9e7c9f9 commit bf7a194
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 12 deletions.
9 changes: 5 additions & 4 deletions plugins/xref.mk
Original file line number Diff line number Diff line change
Expand Up @@ -107,9 +107,9 @@ define xref.erl
true -> Res0;
false ->
lists:filter(fun(R) ->
{Mod, MFA} = case R of
{MFA0 = {M, _, _}, _} -> {M, MFA0};
{M, _, _} -> {M, R}
{Mod, InMFA, MFA} = case R of
{InMFA0 = {M, _, _}, MFA0} -> {M, InMFA0, MFA0};
{M, _, _} -> {M, R, R}
end,
Attrs = try
Mod:module_info(attributes)
Expand Down Expand Up @@ -147,7 +147,8 @@ define xref.erl
true -> [$(XREF_IGNORE)]
end,
Ignores = InlineIgnores ++ BuiltinIgnores ++ CallbackIgnores ++ WideIgnores,
not (lists:member(MFA, Ignores)
not (lists:member(InMFA, Ignores)
orelse lists:member(MFA, Ignores)
orelse lists:member({Mod, '_', '_'}, Ignores))
end, Res0)
end,
Expand Down
20 changes: 12 additions & 8 deletions test/plugin_xref.mk
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ xref-ignore-inline-fa: init
"-module(bad)." \
"-export([f/0])." \
"-ignore_xref([{f,0}])." \
"f() -> this_module:does_not_exist()." \
"f() -> f_module:f_not_exist()." \
> $(APP)/src/bad.erl

$i "Run the Xref plugin, expect success"
Expand All @@ -228,12 +228,14 @@ xref-ignore-inline-mfa: init
$t cp ../erlang.mk $(APP)/
$t $(MAKE) -C $(APP) -f erlang.mk bootstrap $v

$i "Create a module with an undefined function call and an inline ignore"
$i "Create a module with undefined function calls and inline ignores"
$t printf "%s\n" \
"-module(bad)." \
"-export([f/0])." \
"-export([f/0, g/0])." \
"-ignore_xref([{bad,f,0}])." \
"f() -> this_module:does_not_exist()." \
"-ignore_xref({g_module,g_not_exist,0})." \
"f() -> f_module:f_not_exist()." \
"g() -> g_module:g_not_exist()." \
> $(APP)/src/bad.erl

$i "Run the Xref plugin, expect success"
Expand All @@ -246,12 +248,14 @@ xref-ignore-inline-mod: init
$t cp ../erlang.mk $(APP)/
$t $(MAKE) -C $(APP) -f erlang.mk bootstrap $v

$i "Create a module with an undefined function call and an inline ignore"
$i "Create a module with undefined function calls and inline ignores"
$t printf "%s\n" \
"-module(bad)." \
"-export([f/0])." \
"-ignore_xref(?MODULE)." \
"f() -> this_module:does_not_exist()." \
"-export([f/0, g/0])." \
"-ignore_xref([?MODULE])." \
"-ignore_xref(g_module)." \
"f() -> f_module:f_not_exist()." \
"g() -> g_module:g_not_exist()." \
> $(APP)/src/bad.erl

$i "Run the Xref plugin, expect success"
Expand Down

0 comments on commit bf7a194

Please sign in to comment.