single_use_hrl_attrs (rebar3_hank v2.0.0)
View SourceA rule to detect hrl attributes used in just one module: Attributes supported:
-define-record
It will suggest to place those attributes inside the module to avoid having (and including) a hrl file.
Note
This rule assumes that hrl files will not be used outside your project. If you are writing a library that requires your clients to use some of your header files and attributes, you can add an ignore rule in
rebar.configfor it.
Summary
Functions
This builds a list of header files with its attributes. Then, it traverses the file ASTs mapping their macros and records and checks whether they were used just once.
Rule ignore specifications. Example
Functions
-spec analyze(hank_rule:asts(), hank_context:t()) -> [hank_rule:result()].
This builds a list of header files with its attributes. Then, it traverses the file ASTs mapping their macros and records and checks whether they were used just once.
-spec ignored(hank_rule:ignore_pattern(), term()) -> boolean().
Rule ignore specifications. Example:
-hank([{single_use_hrl_attrs,
["ALL", %% Will ignore ?ALL, ?ALL() and ?ALL(X)
{"ZERO", 0}, %% Will ignore ?ZERO() but not ?ZERO(X) nor ?ZERO
{"ONE", 1}, %% Will ignore ?ONE(X) but not ?ONE() nor ?ONE
{"NONE", none}, %% Will ignore ?NONE but not ?NONE(X) nor ?NONE()
record_name %% Will ignore #record_name
]},