diff options
author | Kiko Fernandez-Reyes <kiko@erlang.org> | 2023-03-10 09:59:05 +0100 |
---|---|---|
committer | Kiko Fernandez-Reyes <kiko@erlang.org> | 2023-03-13 15:42:41 +0100 |
commit | 72cf16fe5aaff4f98931c52f2cc7d272107c8b16 (patch) | |
tree | f3238dff2cf94a8e59a7924814b1bcac76e8adb3 /lib/dialyzer | |
parent | 8c9f8942e80442f9db7d0908d5c27c90843c19e8 (diff) | |
download | erlang-72cf16fe5aaff4f98931c52f2cc7d272107c8b16.tar.gz |
dialyzer: remove creation of object
Diffstat (limited to 'lib/dialyzer')
-rw-r--r-- | lib/dialyzer/src/dialyzer_analysis_callgraph.erl | 24 | ||||
-rw-r--r-- | lib/dialyzer/src/dialyzer_cl.erl | 4 | ||||
-rw-r--r-- | lib/dialyzer/src/dialyzer_codeserver.erl | 48 |
3 files changed, 41 insertions, 35 deletions
diff --git a/lib/dialyzer/src/dialyzer_analysis_callgraph.erl b/lib/dialyzer/src/dialyzer_analysis_callgraph.erl index 65fd069484..6d163c2cf9 100644 --- a/lib/dialyzer/src/dialyzer_analysis_callgraph.erl +++ b/lib/dialyzer/src/dialyzer_analysis_callgraph.erl @@ -152,18 +152,18 @@ analysis_start(Parent, Analysis, LegalWarnings) -> send_analysis_done(Parent, Plt4, DocPlt). create_analysis_state({Plt, Analysis, Parent}, LegalWarnings, CServer) -> - #analysis_state{ codeserver = CServer - , analysis_type = Analysis#analysis.type - , defines = Analysis#analysis.defines - , doc_plt = Analysis#analysis.doc_plt - , include_dirs = Analysis#analysis.include_dirs - , plt = Plt - , parent = Parent - , legal_warnings = LegalWarnings - , start_from = Analysis#analysis.start_from - , use_contracts = Analysis#analysis.use_contracts - , timing_server = Analysis#analysis.timing_server - , solvers = Analysis#analysis.solvers }. + #analysis_state{ codeserver = CServer, + analysis_type = Analysis#analysis.type, + defines = Analysis#analysis.defines, + doc_plt = Analysis#analysis.doc_plt, + include_dirs = Analysis#analysis.include_dirs, + plt = Plt, + parent = Parent, + legal_warnings = LegalWarnings, + start_from = Analysis#analysis.start_from, + use_contracts = Analysis#analysis.use_contracts, + timing_server = Analysis#analysis.timing_server, + solvers = Analysis#analysis.solvers }. remote_type_postprocessing(TmpCServer, Args) -> diff --git a/lib/dialyzer/src/dialyzer_cl.erl b/lib/dialyzer/src/dialyzer_cl.erl index 4eb60d38c7..732873056e 100644 --- a/lib/dialyzer/src/dialyzer_cl.erl +++ b/lib/dialyzer/src/dialyzer_cl.erl @@ -685,8 +685,8 @@ unknown_warnings_by_module(#cl_state{legal_warnings = LegalWarnings} = State) -> unknown_functions(#cl_state{ external_calls = Calls , code_server = CodeServer}) -> - [{Mod, {?WARN_UNKNOWN, WarningInfo, {unknown_function, MFA}}} || {MFA, WarningInfo = {_, _, {Mod, _, _}=WarnMFA}} <- Calls, - {ok, [{nowarn_function, func}]} =/= dialyzer_codeserver:lookup_meta_info(WarnMFA, CodeServer)]. + [{Mod, {?WARN_UNKNOWN, WarningInfo, {unknown_function, MFA}}} || { MFA, WarningInfo = {_, _, {Mod, _, _}=WarnMFA}} <- Calls + , not dialyzer_codeserver:is_member_meta_info(WarnMFA, CodeServer)]. unknown_types(#cl_state{external_types = Types}) -> [{Mod, {?WARN_UNKNOWN, WarningInfo, {unknown_type, MFA}}} || diff --git a/lib/dialyzer/src/dialyzer_codeserver.erl b/lib/dialyzer/src/dialyzer_codeserver.erl index b9d81d0975..7c0abd6451 100644 --- a/lib/dialyzer/src/dialyzer_codeserver.erl +++ b/lib/dialyzer/src/dialyzer_codeserver.erl @@ -22,40 +22,41 @@ -module(dialyzer_codeserver). -export([delete/1, - store_temp_contracts/4, + store_temp_contracts/4, give_away/2, - finalize_contracts/1, + finalize_contracts/1, finalize_exported_types/2, - finalize_records/1, - get_contracts/1, - get_callbacks/1, + finalize_records/1, + get_contracts/1, + get_callbacks/1, get_exported_types_table/1, extract_exported_types/1, - get_exports/1, - get_records_table/1, + get_exports/1, + get_records_table/1, extract_records/1, - get_next_core_label/1, + get_next_core_label/1, get_temp_contracts/2, all_temp_modules/1, store_contracts/4, get_temp_exported_types/1, get_temp_records_table/1, - lookup_temp_mod_records/2, - insert/3, - insert_exports/2, + lookup_temp_mod_records/2, + insert/3, + insert_exports/2, insert_temp_exported_types/2, insert_fun_meta_info/2, - is_exported/2, - lookup_mod_code/2, - lookup_mfa_code/2, - lookup_mfa_var_label/2, - lookup_mod_records/2, - lookup_mod_contracts/2, - lookup_mfa_contract/2, + is_exported/2, + is_member_meta_info/2, + lookup_mod_code/2, + lookup_mfa_code/2, + lookup_mfa_var_label/2, + lookup_mod_records/2, + lookup_mod_contracts/2, + lookup_mfa_contract/2, lookup_meta_info/2, - new/0, - set_next_core_label/2, - store_temp_records/3, + new/0, + set_next_core_label/2, + store_temp_records/3, translate_fake_file/3]). -export_type([codeserver/0, fun_meta_info/0, contracts/0]). @@ -329,6 +330,11 @@ lookup_mfa_contract(MFA, #codeserver{contracts = ContDict}) -> lookup_meta_info(MorMFA, #codeserver{fun_meta_info = FunMetaInfo}) -> ets_dict_find(MorMFA, FunMetaInfo). +-spec is_member_meta_info(module() | mfa(), codeserver()) -> boolean(). + +is_member_meta_info(MorMFA, #codeserver{fun_meta_info = FunMetaInfo}) -> + ets_set_is_element(MorMFA, FunMetaInfo). + -spec get_contracts(codeserver()) -> dict:dict(mfa(), dialyzer_contracts:file_contract()). |