summaryrefslogtreecommitdiff
path: root/src/rebar_prv_dialyzer.erl
diff options
context:
space:
mode:
authorJames Fish <james@fishcakez.com>2014-11-21 21:55:35 +0000
committerJames Fish <james@fishcakez.com>2014-11-21 21:55:35 +0000
commit16c9a232120524515c4db088a3ba03f6478f189e (patch)
tree01214e871bd1be93454b47cf4ad912839d16c147 /src/rebar_prv_dialyzer.erl
parentc948769512e495105d2d748d3876fb0f28964590 (diff)
Cleanup dialyzer provider
Diffstat (limited to 'src/rebar_prv_dialyzer.erl')
-rw-r--r--src/rebar_prv_dialyzer.erl75
1 files changed, 38 insertions, 37 deletions
diff --git a/src/rebar_prv_dialyzer.erl b/src/rebar_prv_dialyzer.erl
index 6b6464c..93893cc 100644
--- a/src/rebar_prv_dialyzer.erl
+++ b/src/rebar_prv_dialyzer.erl
@@ -157,36 +157,6 @@ app_member(AppName, Apps) ->
false
end.
-apps_to_files(Apps) ->
- lists:flatmap(fun app_to_files/1, Apps).
-
-app_to_files(App) ->
- AppName = ec_cnv:to_atom(rebar_app_info:name(App)),
- {_, Files} = app_name_to_info(AppName),
- Files.
-
-modules_to_files(Modules, EbinDir) ->
- Ext = code:objfile_extension(),
- Mod2File = fun(Module) -> module_to_file(Module, EbinDir, Ext) end,
- rebar_utils:filtermap(Mod2File, Modules).
-
-module_to_file(Module, EbinDir, Ext) ->
- File = filename:join(EbinDir, atom_to_list(Module) ++ Ext),
- case filelib:is_file(File) of
- true ->
- {true, File};
- false ->
- ?CONSOLE("Unknown module ~s", [Module]),
- false
- end.
-
-app_names_to_files(AppNames) ->
- ToFiles = fun(AppName) ->
- {_, Files} = app_name_to_info(AppName),
- Files
- end,
- lists:flatmap(ToFiles, AppNames).
-
app_name_to_info(AppName) ->
case code:lib_dir(AppName) of
{error, _} ->
@@ -212,6 +182,21 @@ app_dir_to_info(AppDir, AppName) ->
throw({dialyzer_error, Error})
end.
+modules_to_files(Modules, EbinDir) ->
+ Ext = code:objfile_extension(),
+ Mod2File = fun(Module) -> module_to_file(Module, EbinDir, Ext) end,
+ rebar_utils:filtermap(Mod2File, Modules).
+
+module_to_file(Module, EbinDir, Ext) ->
+ File = filename:join(EbinDir, atom_to_list(Module) ++ Ext),
+ case filelib:is_file(File) of
+ true ->
+ {true, File};
+ false ->
+ ?CONSOLE("Unknown module ~s", [Module]),
+ false
+ end.
+
read_plt(_State, Plt) ->
case dialyzer:plt_info(Plt) of
{ok, Info} ->
@@ -259,13 +244,6 @@ run_plt(State, Plt, Analysis, Files) ->
{files, Files}],
run_dialyzer(State, Opts).
-build_plt(State, Plt, Files) ->
- ?INFO("Adding ~b files to ~p...", [length(Files), Plt]),
- Opts = [{analysis_type, plt_build},
- {output_plt, Plt},
- {files, Files}],
- run_dialyzer(State, Opts).
-
build_proj_plt(State, Plt, Files) ->
BasePlt = get_base_plt_location(State),
BaseFiles = get_base_plt_files(State),
@@ -292,6 +270,13 @@ get_base_plt_files(State) ->
default_plt_apps()),
app_names_to_files(BasePltApps).
+app_names_to_files(AppNames) ->
+ ToFiles = fun(AppName) ->
+ {_, Files} = app_name_to_info(AppName),
+ Files
+ end,
+ lists:flatmap(ToFiles, AppNames).
+
update_base_plt(State, BasePlt, BaseFiles) ->
?INFO("Updating base plt...", []),
case read_plt(State, BasePlt) of
@@ -302,6 +287,13 @@ update_base_plt(State, BasePlt, BaseFiles) ->
build_plt(State, BasePlt, BaseFiles)
end.
+build_plt(State, Plt, Files) ->
+ ?INFO("Adding ~b files to ~p...", [length(Files), Plt]),
+ Opts = [{analysis_type, plt_build},
+ {output_plt, Plt},
+ {files, Files}],
+ run_dialyzer(State, Opts).
+
succ_typings(State, Plt, Apps) ->
{Args, _} = rebar_state:command_parsed_args(State),
case proplists:get_value(succ_typings, Args) of
@@ -321,6 +313,14 @@ do_succ_typings(State, Plt, Apps) ->
{init_plt, Plt}],
run_dialyzer(State, Opts).
+apps_to_files(Apps) ->
+ lists:flatmap(fun app_to_files/1, Apps).
+
+app_to_files(App) ->
+ AppName = ec_cnv:to_atom(rebar_app_info:name(App)),
+ {_, Files} = app_name_to_info(AppName),
+ Files.
+
run_dialyzer(State, Opts) ->
Warnings = rebar_state:get(State, dialyzer_warnings, default_warnings()),
Opts2 = [{get_warnings, true},
@@ -340,6 +340,7 @@ dialyzer_format_warning(Warning) ->
Warning2 ->
Warning2
end.
+
default_warnings() ->
[error_handling,
unmatched_returns,