{if_var_true, elixir, {d, 'ELIXIR_ENABLED'}},
{if_var_true, erlang_deprecated_types, {d, 'ERL_DEPRECATED_TYPES'}},
{if_version_above, "18", {d, 'STRONG_RAND_BYTES'}},
+ {if_version_above, "17", {d, 'GB_SETS_ITERATOR_FROM'}},
{if_var_true, hipe, native},
{src_dirs, [asn1, src,
{if_var_true, tools, tools},
Acc.
sets_bare_member({U, S, <<"">>} = LBJID, Set) ->
- case ?SETS:next(?SETS:iterator_from(LBJID, Set)) of
+ case ?SETS:next(sets_iterator_from(LBJID, Set)) of
{{U, S, _}, _} -> true;
_ -> false
end.
+-ifdef(GB_SETS_ITERATOR_FROM).
+sets_iterator_from(Element, Set) ->
+ ?SETS:iterator_from(Element, Set).
+-else.
+%% Copied from gb_sets.erl
+%% TODO: Remove after dropping R17 support
+sets_iterator_from(S, {_, T}) ->
+ iterator_from(S, T, []).
+
+iterator_from(S, {K, _, T}, As) when K < S ->
+ iterator_from(S, T, As);
+iterator_from(_, {_, nil, _} = T, As) ->
+ [T | As];
+iterator_from(S, {_, L, _} = T, As) ->
+ iterator_from(S, L, [T | As]);
+iterator_from(_, nil, As) ->
+ As.
+-endif.
+
depends(_Host, _Opts) ->
[].