summaryrefslogtreecommitdiff
path: root/src/rebar_prv_dialyzer.erl
Commit message (Collapse)AuthorAgeFilesLines
* Abstracted path managementFred Hebert2018-10-111-2/+3
| | | | | | | | | | | | | | | | Move path management out of rebar_utils manual code path function handling (which we leave there for backwards compat), and centralize them to allow easier coordination of paths between plugins and deps. On top of path handling, do a check of loaded modules to only purge and reload those that actually need it done in order to prevent all kinds of weird interaction and accidental purge kills. It also allows the possible cohabitation of both at once, with a "in case of conflict pick X" as a policy Changing path handling in providers also highlighted a bunch of bugs in some tests and appears to fix some in other providers, specifically around plugins.
* OTP-21 readiness, Full Unicode supportFred Hebert2017-11-161-1/+1
| | | | | | | | | | | | This replaces all deprecated function usage by alternative ones based on a version switch enacted at compile time, preventing all warnings. This will likely introduce some possible runtime errors in using a Rebar3 compiled on OTP-20 or OTP-21 back in versions 19 and earlier, but we can't really work around that. A bunch of dependencies have been updated to support OTP-21 without warnings as well.
* Unicode support in all the placesFred Hebert2017-08-061-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is done through 3 main change groups: - replacing `~s` by `~ts` in format strings, so that strings that contain unicode are properly printed rather than crashing - adding the `unicode` argument to all function of the `re` module to ensure transformations on strings containing unicode data are valid instead of crashing (see issue #1302) - replacing `ec_cnv:to_binary/1` and `ec_cnv:to_list/1` with matching functions in `rebar_utils`. The last point has been done, rather than modifying and updating erlware commons, because binary and list conversions can be a contentious subject. For example, if what is being handled is actually bytes from a given binary stream, then forcing a byte-oriented interpretation of the data can corrupt it. As such, it does not appear safe to modify erlware commons' conversion functions since it may not be safe for all its users. Instead, rebar3 reimplements a subset of them (only converting atoms and chardata, ignoring numbers) with the explicit purpose of handling unicode string data. Tests were left as unchanged as possible. This may impact the ability to run rebar3's own suites in a unicode path, but respects a principle of least change for such a large patch.
* Fix typo, occured -> occurredLuis Rascao2017-04-121-1/+1
|
* Enable path reformatting for DialyzerFred Hebert2017-01-211-3/+4
| | | | | | | | 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.
* Add exclude_apps/mods, plt_extra_mods, base_plt_mods configJames Fish2016-11-031-57/+105
| | | | | | | * 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)
* Fix return error on `not_valid` to force .plt file regenerationGuillaume Bour2016-07-301-2/+1
|
* Fix support for `not_valid` dialyzer errorGuillaume Bour2016-07-221-0/+3
|
* Avoid PLT rebuild when files deleted on new dialyzerJames Fish2016-07-111-3/+16
|
* Don't error when analyzing empty appJames Fish2016-07-111-4/+7
|
* Handle empty PLTsJames Fish2016-07-111-1/+12
|
* rebranding: update links rebar/rebar3 -> erlang/rebar3Pierre Fenoll2016-03-191-1/+1
|
* Ignore unknown warning when dialyzer < 2.8James Fish2016-02-021-1/+22
|
* Rebuild PLT when beams no longer existJames Fish2015-10-311-5/+16
|
* Return legnth of the original warnings no the formated onesHeinz N. Gies2015-09-291-1/+1
|
* Group dialyzer warnings by file and concentrate outputHeinz N. Gies2015-09-291-5/+1
|
* Write original messages not fancy ones to diskHeinz N. Gies2015-09-221-2/+2
|
* Colorize the first dialyzer messageHeinz N. Gies2015-09-211-12/+2
|
* Merge pull request #783 from sile/dialyzer_include_all_deps_optionFred Hebert2015-09-151-11/+47
|\ | | | | Add plt_include_all_deps dialyzer option
| * Change option name from "plt_include_all_deps" to "plt_apps"Takeru Ohta2015-09-121-16/+17
| |
| * Fix error handlings for unknown applicationsTakeru Ohta2015-09-121-2/+2
| |
| * Add `plt_include_all_deps` dialyzer config optionTakeru Ohta2015-09-081-1/+36
| |
* | fix dialyzer warningsTristan Sloughter2015-09-091-1/+1
|/
* Some fixes after reviewViacheslav V. Kovalev2015-06-261-2/+1
|
* Fix dialyzer tests on windowsViacheslav V. Kovalev2015-06-261-1/+1
|
* Fix dialyzer tests on windowsViacheslav V. Kovalev2015-06-261-0/+9
|
* Use the same dialyzer rebar.config options as rebarJames Fish2015-06-061-35/+58
| | | | | | | | | | | | | | | | | | | | * 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.
* Include same files in PLT as rebar2James Fish2015-06-021-99/+39
| | | | | | | | * 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)
* fix bareness issuesFred Hebert2015-05-311-1/+1
| | | | | | - 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.
* print and format error message for bad .app files and all bad configsTristan Sloughter2015-05-221-2/+2
|
* Write dialyzer warnings to fileJames Fish2015-04-281-56/+95
|
* Error on dialyzer unknown warnings like rebar2James Fish2015-04-281-67/+86
|
* real bootstrappingTristan Sloughter2015-04-221-1/+1
|
* track and cleanup code paths for different contextsTristan Sloughter2015-04-211-0/+3
|
* use PRV_ERROR for formattable errorsFred Hebert2015-03-161-2/+3
| | | | Also expose it in rebar_api
* Store base PLT in ~/.cache/rebar3/James Fish2015-03-121-2/+2
|
* update all examples in providers to use rebar3Tristan Sloughter2015-03-071-1/+1
|
* Merge pull request #227 from fishcakez/dialyzer_pltTristan Sloughter2015-03-051-20/+3
|\ | | | | Change PLT name and directory
| * Shorten default PLT nameJames Fish2015-03-051-1/+1
| |
| * Fix dialyzer active otp release detectionJames Fish2015-03-051-18/+1
| |
| * Change default project PLT location to base directoryJames Fish2015-03-051-2/+2
| | | | | | | | | | | | 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.
* | Add debug statements to dialyzer providerJames Fish2015-03-051-1/+5
|/
* Do not automatically check pltJames Fish2015-03-031-2/+7
|
* follow xdg standard. fixes #122Tristan Sloughter2015-02-191-2/+1
|
* Remove extra default warningsJames Fish2015-02-161-7/+1
| | | | | | It is not convenient for everyone to handle unmatched_returns and underspecs warnings. Extra default warnings are removed to match dialyzer's behaviour.
* Fix dialyzer when only updating pltJames Fish2015-02-151-1/+1
| | | | Previously dialyzer would crash when not doing success typing analysis.
* Fix {dialyzer_plt_warnings, false} returning warningsJames Fish2015-02-141-6/+26
| | | | | | 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.
* Merge pull request #132 from fishcakez/dialyzer_failTristan Sloughter2015-02-081-28/+51
|\ | | | | Dialyzer fails if any warnings
| * Fix dialyzer plt checking typoJames Fish2015-02-071-1/+1
| |
| * Display full path in dialyzer warningssJames Fish2015-02-071-1/+1
| |