Fixes issue #880
May break backwards compat with projects that manually called the
dialyzer formatter, but we never documented or expected this to be
exposed.
* exclude_apps - never use applications for PLT/analysis
* base_plt_mods - add modules to base PLT (overrules exclude_apps)
* plt_extra_mods - add modules to PLT (overrules exclude_apps)
* exclude_mods - never use modules for PLT/analysis (overrules all)
* All configuration is moved to `{dialyzer, PropList}`
* `dialyzer_warnings` renamed `warnings`
* `dialyzer_plt_warnings` renamed `get_warnings`
* `dialyzer_plt_apps` renamed `plt_extra_apps`
* `dialyzer_plt_dir` renamed `plt_location`
* `{plt_location, local}` uses profile base directory
* `dialyzer_plt` removed
* `dialyzer_plt_prefix` sets prefix of PLT name (default "rebar3")
* `dialyzer_base_plt_apps` renamed `base_plt_apps`
* `dialyzer_base_plt_dir` renamed `base_plt_location`
* `{base_plt_location, global}` uses rebar3's global cache directory
* `dialyzer_base_plt` removed
* `base_plt_prefix` sets prefix of PLT name (default "rebar3")
PLT files are always named `<prefix>_<otp_version>_plt` to match rebar.
`plt_prefix` and `base_plt_prefix` are not available in rebar, where the
prefix is always set to the project's top level application.
* Only include direct dependencies + base plt
* Error on missing direct dependency
* Always use beams in ebin instead of reading .app file (copying rebar2)
* Remove fake unknown warnings (will clash with unknown warning in 18.0)
* Remove redundant search for .app file (code path includes deps)
- Crashes in providers lib when no providers in a namespace are bare
- Making sure bareness matches semantics; i.e. a bare provider is
visible, a non-bare provider is hidden.
Previously dialyzer stored the project PLT in ./build/, which meant the
same PLT was used for all profiles. This could mean partial rebuilding
of a PLT when switching between profiles.
It is not convenient for everyone to handle unmatched_returns and
underspecs warnings. Extra default warnings are removed to match
dialyzer's behaviour.
When dialyzer_plt_warnings is false no warnings should be returned when
updating a PLT. Previously any callgraph warnings would be returned when
updating a PLT regardless of the get_warnings option.
code:lib_dir/1,2 can return archive directory for rebar escript archive
applications, rather than the application's directory in the project.
Add dependencies not listed in `applications` to `dialyzer_plt_apps`.