aboutsummaryrefslogtreecommitdiffstats
path: root/lib/dialyzer/src/dialyzer_plt.erl
diff options
context:
space:
mode:
authorHans Bolinder <[email protected]>2017-03-15 11:34:36 +0100
committerHans Bolinder <[email protected]>2017-06-13 13:40:25 +0200
commit020a8817caca2684f8241dc5f9c84a37d53b4ff7 (patch)
treed2a9e1e455a292777d9d90b17e21a1d5ec186e33 /lib/dialyzer/src/dialyzer_plt.erl
parentf05dd185fe56cccdefeca8bd3fa92ec6c0e7979d (diff)
downloadotp-020a8817caca2684f8241dc5f9c84a37d53b4ff7.tar.gz
otp-020a8817caca2684f8241dc5f9c84a37d53b4ff7.tar.bz2
otp-020a8817caca2684f8241dc5f9c84a37d53b4ff7.zip
dialyzer: Minor optimizations
Avoid some ETS-lookups. Marginal speed-ups.
Diffstat (limited to 'lib/dialyzer/src/dialyzer_plt.erl')
-rw-r--r--lib/dialyzer/src/dialyzer_plt.erl7
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/dialyzer/src/dialyzer_plt.erl b/lib/dialyzer/src/dialyzer_plt.erl
index f36a008739..fa242555c2 100644
--- a/lib/dialyzer/src/dialyzer_plt.erl
+++ b/lib/dialyzer/src/dialyzer_plt.erl
@@ -39,6 +39,7 @@
insert_types/2,
insert_exported_types/2,
lookup/2,
+ is_contract/2,
lookup_contract/2,
lookup_callbacks/2,
lookup_module/2,
@@ -156,6 +157,12 @@ insert_callbacks(#plt{callbacks = Callbacks} = Plt, Codeserver) ->
List = dialyzer_codeserver:get_callbacks(Codeserver),
Plt#plt{callbacks = table_insert_list(Callbacks, List)}.
+-spec is_contract(plt(), mfa()) -> boolean().
+
+is_contract(#mini_plt{contracts = ETSContracts},
+ {M, F, _} = MFA) when is_atom(M), is_atom(F) ->
+ ets:member(ETSContracts, MFA).
+
-spec lookup_contract(plt(), mfa_patt()) -> 'none' | {'value', #contract{}}.
lookup_contract(#mini_plt{contracts = ETSContracts},