unnecessary_function_arguments (rebar3_hank v2.0.0)

View Source

A rule to detect unnecessary function arguments.

The rule emits a warning for each function argument that is consistently ignored in all function clauses.

To avoid this warning, remove the unused argument(s).

Note

This rule will not emit a warning if the function implements a NIF call (assuming that the stub function calls erlang:nif_error/1,2) or if it's a behaviour callback. In particular, the rule will not emit a warning for any exported function in modules that implement non-OTP behaviors or OTP behaviors that have dynamic callbacks, like gen_statem or ct_suite. It will also not emit a warning if the function is "known" even if not in a behaviour, like parse_transform/2.

Summary

Functions

Rule ignore specifications. Example

Functions

ignored/2

-spec ignored(hank_rule:ignore_pattern(), term()) -> boolean().

Rule ignore specifications. Example:

-hank([{unnecessary_function_arguments,
         %% You can give a list of multiple specs or a single one
         [%% Will ignore any unused argument from ignore_me/2 within the module
          {ignore_me, 2},
          %% Will ignore the 2nd argument from ignore_me_too/3 within the module
          {ignore_me_too, 3, 2},
          %% Will ignore any unused argument from any ignore_me_again/x
          %% within the module (no matter the function arity)
          ignore_me_again]}]).