consider A-MIB imports from B-MIB:
rebar compile MUST FAIL if mib_first_files is ["mibs/A-MIB.mib"]
rebar compile MUST SUCCEED if mib_first_files is ["mibs/B-MIB.mib"]
- Added support to rebar_prv_xref for filtering out whole module. A
module may now be added to the list of xref_ignores in rebar.config or
via -ignore_xref() module attribute
- Added unit test for whole module filtering support to xref CT suite
The app data, when set by `rebar3_app_discover` basically does not
include the modules if it was derived from the .app.src file, even if at
a later point the modules were compiled.
Since there is currently no clear way to add that information reliably
across all compiler versions in all types of compilers, we simply clear
the cache and re-derive the information when required.
This might have a small performance cost, but is required for
correctness whenever an application's first build is run. Specifically,
this bug was detected when a plugin included lager's parse transform,
and the application itself also required it, but two distinct versions
were needed.
This patch finalizes fixing this issue.
Due to building dependencies with potential artifacts such as parse
transforms or macros, project builder plugins should be included in the
path, but _after_ deps are loaded.
Doing otherwise means that if any of the dependencies is required at
compile time, those of a plugin might get used first.
The old path handling routine would force loading a bunch of
applications, but it did not necessarily unload them aside from specific
calls that the other test handlers used to need to do, but no longer
needed under the updated path management of 3.7.0.
The leftover calls in the cover compilation bits caused some apps to be
loaded and to remain loaded before tests started.