diff --git a/lib/stdlib/src/binary.erl b/lib/stdlib/src/binary.erl index 6231552f851e..bf84737b93ec 100644 --- a/lib/stdlib/src/binary.erl +++ b/lib/stdlib/src/binary.erl @@ -948,6 +948,7 @@ _Example:_ """. -doc(#{since => <<"OTP 27.0">>}). -spec join([binary()], binary()) -> binary(). +join([], _Separator) -> <<>>; join([H], _Separator) -> H; join([H | T], Separator) -> join(T, Separator, H). diff --git a/lib/stdlib/test/binary_module_SUITE.erl b/lib/stdlib/test/binary_module_SUITE.erl index f9abc6e0177c..2a527837eaf9 100644 --- a/lib/stdlib/test/binary_module_SUITE.erl +++ b/lib/stdlib/test/binary_module_SUITE.erl @@ -1588,6 +1588,7 @@ do_hex_roundtrip(Bytes) -> join(Config) when is_list(Config) -> <<"a, b, c">> = binary:join([<<"a">>, <<"b">>, <<"c">>], <<", ">>), <<"a">> = binary:join([<<"a">>], <<", ">>), + <<>> = binary:join([], <<", ">>), badarg = ?MASK_ERROR(binary:join([<<"a">>], ", ")), badarg = ?MASK_ERROR(binary:join([], <<",">>)).