Current section
Files
Jump to
Current section
Files
src/typelib.hrl
%% convenience guards
%% same as typechecker:is_int_type/2 but can be used as a guard
-define(is_int_type(T),
(tuple_size(T) =:= 4 andalso
element(1, T) =:= type andalso
(element(3, T) =:= integer orelse
element(3, T) =:= pos_integer orelse
element(3, T) =:= neg_integer orelse
element(3, T) =:= non_neg_integer orelse
element(3, T) =:= range))
orelse
(tuple_size(T) =:= 3 andalso
(element(1, T) =:= integer orelse
element(1, T) =:= char))).
%% same as typechecker:is_list_type/1 but can be used as a guard
-define(is_list_type(T),
(tuple_size(T) =:= 4 andalso
element(1, T) =:= type andalso
(element(3, T) =:= list orelse
element(3, T) =:= nil orelse
element(3, T) =:= nonempty_list orelse
element(3, T) =:= maybe_improper_list orelse
element(3, T) =:= nonempty_improper_list))).
%% Checks if an operator is a comparison operator
-define(is_comp_op(OP),
(OP =:= '>' orelse OP =:= '>=' orelse
OP =:= '<' orelse OP =:= '=<' orelse
OP =:= '==' orelse OP =:= '/=' orelse
OP =:= '=:=' orelse OP =:= '=/=')).