> @spec word() :: boolean() Hi Boris, So if there is a function `word/0` how would you know this spec refers to word/1 and not word/0?
On Thu, 2 Jun 2022 17:16:45 +0300 Boris Kuznetsov <m...@achempion.com> wrote: > Currently, if you want to add spec to functions, you have to use > @spec with a function name to define all argument / response types: > > defmodule StringHelpers do > @spec long_word?(word()) :: boolean() > def long_word?(word) when is_binary(word) do > String.length(word) > 8 > end > end > > I think, it would be nice to reduce "visual noise" of spec definition > by allowing to omit the data we already know. > > defmodule StringHelpers do > @spec word() :: boolean() > def long_word?(word) when is_binary(word) do > String.length(word) > 8 > end > end > > With this syntax, we can define argument and response types and > automatically treat it as spec for following long_word?/1 function. > > What do you think? > > Also, in case of multiple arguments we can either wrap it in > parentheses or just use a comma for separation. > -- You received this message because you are subscribed to the Google Groups "elixir-lang-core" group. To unsubscribe from this group and stop receiving emails from it, send an email to elixir-lang-core+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/6299fc7e.1c69fb81.69283.7ad6SMTPIN_ADDED_MISSING%40gmr-mx.google.com.