diff options
author | Niclas Axelsson <[email protected]> | 2011-03-11 12:04:20 +0100 |
---|---|---|
committer | Niclas Axelsson <[email protected]> | 2011-03-11 12:04:56 +0100 |
commit | c114083eeae4b98f30a6b2091e6839aee7573ddc (patch) | |
tree | adeea5841668dfc2e4b7ec37e01bd6f307d8457e /lib/dialyzer/src/dialyzer_plt.erl | |
parent | 1f07334d042e478d385caa0d7634ebfa6703f27a (diff) | |
parent | 8c563c842e1966391c4dfbced4426a2ce2e9e7cb (diff) | |
download | otp-c114083eeae4b98f30a6b2091e6839aee7573ddc.tar.gz otp-c114083eeae4b98f30a6b2091e6839aee7573ddc.tar.bz2 otp-c114083eeae4b98f30a6b2091e6839aee7573ddc.zip |
Merge branch 'ks/dialyzer-r14b02-final-touches' into dev
* ks/dialyzer-r14b02-final-touches:
Release notes and new version for R14B02
More descriptive warning when a tuple pattern matches a typed record
Better blame assignment when a spec is erroneous
Generate better warnings for failing guards
Fix an erroneous warning
Refactoring so that a flat string() is returned
Renamed error/1 function and added specs
Renamed error/1 function and added specs
OTP-9126
Diffstat (limited to 'lib/dialyzer/src/dialyzer_plt.erl')
-rw-r--r-- | lib/dialyzer/src/dialyzer_plt.erl | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/lib/dialyzer/src/dialyzer_plt.erl b/lib/dialyzer/src/dialyzer_plt.erl index a7ba270c41..807c9af44f 100644 --- a/lib/dialyzer/src/dialyzer_plt.erl +++ b/lib/dialyzer/src/dialyzer_plt.erl @@ -28,8 +28,6 @@ %%%------------------------------------------------------------------- -module(dialyzer_plt). -%% Avoid warning for local function error/1 clashing with autoimported BIF. --compile({no_auto_import,[error/1]}). -export([check_plt/3, compute_md5_from_files/1, contains_mfa/2, @@ -56,8 +54,7 @@ plt_and_info_from_file/1, get_specs/1, get_specs/4, - to_file/4 - ]). + to_file/4]). %% Debug utilities -export([pp_non_returning/0, pp_mod/1]). @@ -68,6 +65,8 @@ -type mod_deps() :: dict(). +-type deep_string() :: string() | [deep_string()]. + %% The following are used for searching the PLT when using the GUI %% (e.g. in show or search PLT contents). The user might be searching %% with a partial specification, in which case the missing items @@ -203,8 +202,8 @@ get_default_plt() -> false -> case os:getenv("HOME") of false -> - error("The HOME environment variable needs to be set " ++ - "so that Dialyzer knows where to find the default PLT"); + plt_error("The HOME environment variable needs to be set " ++ + "so that Dialyzer knows where to find the default PLT"); HomeDir -> filename:join(HomeDir, ".dialyzer_plt") end; UserSpecPlt -> UserSpecPlt @@ -226,7 +225,7 @@ from_file(FileName, ReturnInfo) -> case check_version(Rec) of error -> Msg = io_lib:format("Old PLT file ~s\n", [FileName]), - error(Msg); + plt_error(Msg); ok -> Plt = #plt{info = Rec#file_plt.info, types = Rec#file_plt.types, @@ -241,8 +240,9 @@ from_file(FileName, ReturnInfo) -> end end; {error, Reason} -> - error(io_lib:format("Could not read PLT file ~s: ~p\n", - [FileName, Reason])) + Msg = io_lib:format("Could not read PLT file ~s: ~p\n", + [FileName, Reason]), + plt_error(Msg) end. -type err_rsn() :: 'not_valid' | 'no_such_file' | 'read_error'. @@ -518,7 +518,9 @@ expand_args([ArgType|Left]) -> end ++ ","|expand_args(Left)]. -error(Msg) -> +-spec plt_error(deep_string()) -> no_return(). + +plt_error(Msg) -> throw({dialyzer_error, lists:flatten(Msg)}). %%--------------------------------------------------------------------------- |