diff options
author | Hans Bolinder <[email protected]> | 2014-10-10 10:22:23 +0200 |
---|---|---|
committer | Hans Bolinder <[email protected]> | 2014-10-10 10:22:23 +0200 |
commit | e0c19922348abf28bff2a16ddb131d56b4e49cf0 (patch) | |
tree | 445bd114840d494227cb90f9018c202fd7a2aa11 | |
parent | 98082ac2e138619671bc895d548cfdc52bb0e213 (diff) | |
parent | 197a8467f465930372f31c8f8b7340f8339aa23a (diff) | |
download | otp-e0c19922348abf28bff2a16ddb131d56b4e49cf0.tar.gz otp-e0c19922348abf28bff2a16ddb131d56b4e49cf0.tar.bz2 otp-e0c19922348abf28bff2a16ddb131d56b4e49cf0.zip |
Merge branch 'maint'
* maint:
dialyzer: do a minor re-factoring
dialyzer: Ignore ERL_COMPILER_OPTIONS when compiling
dialyzer: fix bug concerning compiler option 'warnings_as_errors'
-rw-r--r-- | lib/dialyzer/src/dialyzer_utils.erl | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/lib/dialyzer/src/dialyzer_utils.erl b/lib/dialyzer/src/dialyzer_utils.erl index a60b912fd4..0817ea3a1d 100644 --- a/lib/dialyzer/src/dialyzer_utils.erl +++ b/lib/dialyzer/src/dialyzer_utils.erl @@ -98,7 +98,7 @@ get_abstract_code_from_src(File) -> {'ok', abstract_code()} | {'error', [string()]}. get_abstract_code_from_src(File, Opts) -> - case compile:file(File, [to_pp, binary|Opts]) of + case compile:noenv_file(File, [to_pp, binary|Opts]) of error -> {error, []}; {error, Errors, _} -> {error, format_errors(Errors)}; {ok, _, AbstrCode} -> {ok, AbstrCode} @@ -173,7 +173,7 @@ get_core_from_abstract_code(AbstrCode, Opts) -> AbstrCode1 = cleanup_parse_transforms(AbstrCode), %% Remove parse_transforms (and other options) from compile options. Opts2 = cleanup_compile_options(Opts), - try compile:forms(AbstrCode1, Opts2 ++ src_compiler_opts()) of + try compile:noenv_forms(AbstrCode1, Opts2 ++ src_compiler_opts()) of {ok, _, Core} -> {ok, Core}; _What -> error catch @@ -466,21 +466,18 @@ cleanup_parse_transforms([]) -> -spec cleanup_compile_options([compile:option()]) -> [compile:option()]. +cleanup_compile_options(Opts) -> + lists:filter(fun keep_compile_option/1, Opts). + %% Using abstract, not asm or core. -cleanup_compile_options([from_asm|Opts]) -> - Opts; -cleanup_compile_options([asm|Opts]) -> - Opts; -cleanup_compile_options([from_core|Opts]) -> - Opts; -%% The parse transform will already have been applied, may cause problems if it -%% is re-applied. -cleanup_compile_options([{parse_transform, _}|Opts]) -> - Opts; -cleanup_compile_options([Other|Opts]) -> - [Other|cleanup_compile_options(Opts)]; -cleanup_compile_options([]) -> - []. +keep_compile_option(from_asm) -> false; +keep_compile_option(asm) -> false; +keep_compile_option(from_core) -> false; +%% The parse transform will already have been applied, may cause +%% problems if it is re-applied. +keep_compile_option({parse_transform, _}) -> false; +keep_compile_option(warnings_as_errors) -> false; +keep_compile_option(_) -> true. -spec format_errors([{module(), string()}]) -> [string()]. |