diff options
Diffstat (limited to 'lib/dialyzer/src/dialyzer_codeserver.erl')
-rw-r--r-- | lib/dialyzer/src/dialyzer_codeserver.erl | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/lib/dialyzer/src/dialyzer_codeserver.erl b/lib/dialyzer/src/dialyzer_codeserver.erl index 0472e2c128..9b8a165dd0 100644 --- a/lib/dialyzer/src/dialyzer_codeserver.erl +++ b/lib/dialyzer/src/dialyzer_codeserver.erl @@ -29,7 +29,7 @@ finalize_records/1, get_contracts/1, get_callbacks/1, - get_exported_types/1, + get_exported_types_table/1, extract_exported_types/1, get_exports/1, get_records_table/1, @@ -122,7 +122,7 @@ ets_set_insert_list(List, Table) -> ets_set_to_set(Table) -> Fold = fun({E}, Set) -> sets:add_element(E, Set) end, - ets:foldl(Fold, sets:new(), Table). + ets:foldl(Fold, sets:new([{version, 2}]), Table). %%-------------------------------------------------------------------- @@ -132,12 +132,15 @@ new() -> CodeOptions = [compressed, public, {read_concurrency, true}], Code = ets:new(dialyzer_codeserver_code, CodeOptions), ReadOptions = [compressed, {read_concurrency, true}], - [Contracts, Callbacks, Records, ExportedTypes] = + [Records, ExportedTypes] = [ets:new(Name, ReadOptions) || - Name <- [dialyzer_codeserver_contracts, - dialyzer_codeserver_callbacks, - dialyzer_codeserver_records, + Name <- [dialyzer_codeserver_records, dialyzer_codeserver_exported_types]], + ReadWriteOptions = [public | ReadOptions], + [Contracts, Callbacks] = + [ets:new(Name, ReadWriteOptions) || + Name <- [dialyzer_codeserver_contracts, + dialyzer_codeserver_callbacks]], TempOptions = [public, {write_concurrency, true}], [Exports, FunMetaInfo, TempExportedTypes, TempRecords, TempContracts, TempCallbacks] = @@ -211,10 +214,10 @@ insert_fun_meta_info(List, #codeserver{fun_meta_info = FunMetaInfo} = CS) -> is_exported(MFA, #codeserver{exports = Exports}) -> ets_set_is_element(MFA, Exports). --spec get_exported_types(codeserver()) -> sets:set(mfa()). +-spec get_exported_types_table(codeserver()) -> map_ets(). -get_exported_types(#codeserver{exported_types = ExpTypes}) -> - ets_set_to_set(ExpTypes). +get_exported_types_table(#codeserver{exported_types = ExpTypes}) -> + ExpTypes. -spec extract_exported_types(codeserver()) -> {codeserver(), set_ets()}. |