aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hipe/cerl/erl_bif_types.erl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/hipe/cerl/erl_bif_types.erl')
-rw-r--r--lib/hipe/cerl/erl_bif_types.erl43
1 files changed, 41 insertions, 2 deletions
diff --git a/lib/hipe/cerl/erl_bif_types.erl b/lib/hipe/cerl/erl_bif_types.erl
index 845df0ca61..0c2e846010 100644
--- a/lib/hipe/cerl/erl_bif_types.erl
+++ b/lib/hipe/cerl/erl_bif_types.erl
@@ -2,7 +2,7 @@
%%
%% %CopyrightBegin%
%%
-%% Copyright Ericsson AB 2003-2011. All Rights Reserved.
+%% Copyright Ericsson AB 2003-2012. All Rights Reserved.
%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
@@ -241,6 +241,7 @@ type(erl_ddll, try_unload, 2, Xs) ->
%%-- erlang -------------------------------------------------------------------
type(erlang, halt, 0, _) -> t_none();
type(erlang, halt, 1, _) -> t_none();
+type(erlang, halt, 2, _) -> t_none();
type(erlang, exit, 1, _) -> t_none();
%% Note that exit/2 sends an exit signal to another process.
type(erlang, exit, 2, _) -> t_atom('true');
@@ -709,6 +710,27 @@ type(erlang, display_nl, 0, _) ->
t_atom('true');
type(erlang, dist_exit, 3, Xs) ->
strict(arg_types(erlang, dist_exit, 3), Xs, fun (_) -> t_atom('true') end);
+type(erlang, dt_append_vm_tag_data, 1, Xs) ->
+ strict(arg_types(erlang, dt_append_vm_tag_data, 1),
+ Xs,
+ fun(_) -> t_iodata() end);
+type(erlang, dt_get_tag, 0, _) ->
+ t_sup(t_binary(), t_atom('undefined'));
+type(erlang, dt_get_tag_data, 0, _) ->
+ t_sup(t_binary(), t_atom('undefined'));
+type(erlang, dt_prepend_vm_tag_data, 1, Xs) ->
+ strict(arg_types(erlang, dt_prepend_vm_tag_data, 1),
+ Xs,
+ fun(_) -> t_iodata() end);
+type(erlang, dt_put_tag, 1, Xs) ->
+ strict(arg_types(erlang, dt_put_tag, 1), Xs,
+ fun(_) -> t_sup(t_binary(), t_atom('undefined')) end);
+type(erlang, dt_restore_tag, 1, Xs) ->
+ strict(arg_types(erlang, dt_restore_tag, 1), Xs, fun(_) -> t_atom('true') end);
+type(erlang, dt_spread_tag, 1, Xs) ->
+ strict(arg_types(erlang, dt_spread_tag, 1), Xs,
+ fun(_) -> t_sup(t_tuple([t_non_neg_integer(), t_sup(t_binary(), t_nil())]),
+ t_atom('true')) end);
type(erlang, element, 2, Xs) ->
strict(arg_types(erlang, element, 2), Xs,
fun ([X1, X2]) ->
@@ -3494,6 +3516,20 @@ arg_types(erlang, display_string, 1) ->
[t_string()];
arg_types(erlang, dist_exit, 3) ->
[t_pid(), t_dist_exit(), t_sup(t_pid(), t_port())];
+arg_types(erlang, dt_append_vm_tag_data, 1) ->
+ [t_iodata()];
+arg_types(erlang, dt_get_tag, 0) ->
+ [];
+arg_types(erlang, dt_get_tag_data, 0) ->
+ [];
+arg_types(erlang, dt_prepend_vm_tag_data, 1) ->
+ [t_iodata()];
+arg_types(erlang, dt_put_tag, 1) ->
+ [t_sup(t_binary(), t_atom('undefined'))];
+arg_types(erlang, dt_restore_tag, 1) ->
+ [t_sup(t_tuple([t_non_neg_integer(), t_sup(t_binary(), t_nil())]), t_atom('true'))];
+arg_types(erlang, dt_spread_tag, 1) ->
+ [t_boolean()];
arg_types(erlang, element, 2) ->
[t_pos_fixnum(), t_tuple()];
arg_types(erlang, erase, 0) ->
@@ -3553,7 +3589,10 @@ arg_types(erlang, group_leader, 2) ->
arg_types(erlang, halt, 0) ->
[];
arg_types(erlang, halt, 1) ->
- [t_sup(t_non_neg_fixnum(), t_string())];
+ [t_sup([t_non_neg_fixnum(), t_atom('abort'), t_string()])];
+arg_types(erlang, halt, 2) ->
+ [t_sup([t_non_neg_fixnum(), t_atom('abort'), t_string()]),
+ t_list(t_tuple([t_atom('flush'), t_boolean()]))];
arg_types(erlang, hash, 2) ->
[t_any(), t_integer()];
arg_types(erlang, hd, 1) ->