[erlang-questions] Unlike behavior in -spec and type importing

Chris King colanderman@REDACTED
Sun Aug 11 17:27:19 CEST 2013


Hi Ivan,

On Sun, 11 Aug 2013 11:14:16 -0400, Ivan Carmenates García  
<co7eb@REDACTED> wrote:

>
>
>> I check the source of application module to see if the start_type()  
>> type was exported and it >is not.
>
> And my module compiles well, and even I changed to StartType ::  
> unknown_module: unknown_type>() type and it still compiles,
>
> It seems that there are no type checking outside of the module.

Are you using Dialyzer to check types?  The Erlang compiler itself does  
not perform typechecking.  You can run Dialyzer (included with OTP) on  
your source code like this:

$ dialyzer --src <source code directory>

or, if you compile your code with debugging enabled, you can run it like  
this:

$ dialyzer <object file directory>

In addition to inferring types, Dialyzer will check that code adheres to  
-spec declarations, and it will warn about unexported types.

Note that you have to run Dialyzer on *all* your modules, as it only sees  
the modules you tell it about, and those whose specifications have been  
explicitly stored in its "PLT" database (by default erts, kernel, and  
stdlib).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20130811/ca614133/attachment.htm>


More information about the erlang-questions mailing list