diff options
author | Kostis Sagonas <[email protected]> | 2010-05-03 12:08:06 +0000 |
---|---|---|
committer | Erlang/OTP <[email protected]> | 2010-05-03 12:08:06 +0000 |
commit | 06ed4aab7ec48399a55323f0f605ba96db6d407f (patch) | |
tree | 8ea369428d21e75442adc2cc18b9398dfbddf572 /lib/hipe | |
parent | 3a68c36ca7aed71d643ea29460e36fec7e56817d (diff) | |
download | otp-06ed4aab7ec48399a55323f0f605ba96db6d407f.tar.gz otp-06ed4aab7ec48399a55323f0f605ba96db6d407f.tar.bz2 otp-06ed4aab7ec48399a55323f0f605ba96db6d407f.zip |
Add type info for erlang:load_nif/2
Diffstat (limited to 'lib/hipe')
-rw-r--r-- | lib/hipe/cerl/erl_bif_types.erl | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/lib/hipe/cerl/erl_bif_types.erl b/lib/hipe/cerl/erl_bif_types.erl index 213f98dcc0..be3073c0e6 100644 --- a/lib/hipe/cerl/erl_bif_types.erl +++ b/lib/hipe/cerl/erl_bif_types.erl @@ -1066,11 +1066,19 @@ type(erlang, list_to_pid, 1, Xs) -> strict(arg_types(erlang, list_to_pid, 1), Xs, fun (_) -> t_pid() end); type(erlang, list_to_tuple, 1, Xs) -> strict(arg_types(erlang, list_to_tuple, 1), Xs, fun (_) -> t_tuple() end); -type(erlang, loaded, 0, _) -> - t_list(t_atom()); type(erlang, load_module, 2, Xs) -> strict(arg_types(erlang, load_module, 2), Xs, fun ([Mod,_Bin]) -> t_code_load_return(Mod) end); +type(erlang, load_nif, 2, Xs) -> + strict(arg_types(erlang, load_nif, 2), Xs, + fun (_) -> + Reason = t_atoms(['load_failed', 'bad_lib', 'load', + 'reload', 'upgrade', 'old_code']), + RsnPair = t_tuple([Reason, t_string()]), + t_sup(t_atom('ok'), t_tuple([t_atom('error'), RsnPair])) + end); +type(erlang, loaded, 0, _) -> + t_list(t_atom()); type(erlang, localtime, 0, Xs) -> type(erlang, universaltime, 0, Xs); % same type(erlang, localtime_to_universaltime, 1, Xs) -> @@ -3572,10 +3580,12 @@ arg_types(erlang, list_to_pid, 1) -> [t_string()]; arg_types(erlang, list_to_tuple, 1) -> [t_list()]; -arg_types(erlang, loaded, 0) -> - []; arg_types(erlang, load_module, 2) -> [t_atom(), t_binary()]; +arg_types(erlang, load_nif, 2) -> + [t_string(), t_any()]; +arg_types(erlang, loaded, 0) -> + []; arg_types(erlang, localtime, 0) -> []; arg_types(erlang, localtime_to_universaltime, 1) -> |