Re: Type Specification of net:getnameinfo()

Nicolas Martyanoff <[email protected]>
Newsgroups gmane.comp.lang.erlang.general
Message-ID <YBBEvBt+wdpa6P1i@valhala>
On 2021-01-26 21:46, Nalin Ranjan wrote:
> 2. In this particular case of type specification, the only difference is in
> one of the parameters of the function. I was also wondering if we could
> have used a union instead to write the same type spec, it would have been
> simpler?
> For example,
> Instead of writing a type spec like this
> 
> -ifdef(SOME_PRAGMA_CONDITION)
>           SomeVar :: xxx_type().
> -else
>          SomeVar :: yyy_type().
> 
> We could specify the same type spec as:
>         SomeVar :: xxx_type() | yyy_type().
> 
> Any reason we preferred the former over the latter?

If Erlang is compiled without socket support, some types will not exist at
all. Using the preprocessor[1] makes it possible to provide specifications
with types which actually exist, with or without socket support.

[1] https://erlang.org/doc/reference_manual/macros.html

-- 
Nicolas Martyanoff
http://snowsyn.net
[email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.