[erlang-patches] [PATCH] Fix -spec for file:write_file/3

Kostis Sagonas <>
Mon Feb 14 13:17:12 CET 2011


Magnus Henoch wrote:
> Change type for second parameter from binary() to iodata(), since the
> function explicitly takes steps to accept lists as well as binaries.

Let me add a comment, more FYI. The intention for specs in files is to 
correspond to the published OTP documentation.

So, actually in this case the change that Magnus suggested needs to 
happen not only for the reason he mentions, but primarily so that it 
corresponds to the published documentation which states iodata() for the 
second argument of this function.

Well spotted Magnus!  Please contribute more such patches when you 
notice some discrepancy between the spec of some function and its 
published documentation.

Kostis

> ---
>  lib/kernel/src/file.erl |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/lib/kernel/src/file.erl b/lib/kernel/src/file.erl
> index bc95359..a7a6e96 100644
> --- a/lib/kernel/src/file.erl
> +++ b/lib/kernel/src/file.erl
> @@ -240,7 +240,7 @@ write_file(Name, Bin) ->
>  %% when it is time to change file server protocol again.
>  %% Meanwhile, it is implemented here, slightly less efficient.
>  
> --spec write_file(Name :: name(), Bin :: binary(), Modes :: [mode()]) -> 
> +-spec write_file(Name :: name(), Bin :: iodata(), Modes :: [mode()]) -> 
>  	'ok' | {'error', posix()}.
>  
>  write_file(Name, Bin, ModeList) when is_list(ModeList) ->


More information about the erlang-patches mailing list