aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2022-05-31 14:46:46 +0200
committerLoïc Hoguin <[email protected]>2022-05-31 14:46:46 +0200
commitbf7a194b0b473186d14193eefdab9b65fa927443 (patch)
tree91454feb9f45103b2383441697d56a753bf2af90
parent9e7c9f9e0628ee9d84ade4b4de85c2a5e7af7452 (diff)
downloaderlang.mk-bf7a194b0b473186d14193eefdab9b65fa927443.tar.gz
erlang.mk-bf7a194b0b473186d14193eefdab9b65fa927443.tar.bz2
erlang.mk-bf7a194b0b473186d14193eefdab9b65fa927443.zip
xref: Also ignore targets where applicable
-rw-r--r--plugins/xref.mk9
-rw-r--r--test/plugin_xref.mk20
2 files changed, 17 insertions, 12 deletions
diff --git a/plugins/xref.mk b/plugins/xref.mk
index 27d66d2..0ecace2 100644
--- a/plugins/xref.mk
+++ b/plugins/xref.mk
@@ -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)
@@ -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,
diff --git a/test/plugin_xref.mk b/test/plugin_xref.mk
index 06b145b..0246e23 100644
--- a/test/plugin_xref.mk
+++ b/test/plugin_xref.mk
@@ -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"
@@ -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"
@@ -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"